updated idl and use UpperCamelCase for set operations
[profile/ivi/wrt-plugins-ivi.git] / src / Vehicle / Vehicle.idl
1 /**
2
3
4 Details. 
5
6 \def-api-feature http://tizen.org/api/vehicle 
7 \brief Allows access to the vehicle API 
8
9
10
11 */
12
13 module Vehicle {
14
15 partial interface Navigator   { 
16          attribute Vehicle vehicle;
17 };
18
19 [NoInterfaceObject]
20 interface VehiclePropertyType: Event { 
21         /** /brief time at which the vehicle generated the property
22          **/
23          attribute DOMTimeStamp time;
24 };
25
26 [NoInterfaceObject]
27 interface VehiclePropertyError   { 
28         const unsigned short PERMISSION_DENIED = 1; 
29         const unsigned short PROPERTY_UNAVAILABLE = 2; 
30         const unsigned short TIMEOUT = 3; 
31         const unsigned short UNKNOWN = 10;
32         
33         /**  code
34          *   MUST return error code. 
35          **/
36          attribute unsigned short code;
37
38         /**  message
39          *   MUST return error message 
40          **/
41          attribute DOMString message;
42 };
43
44 callback VehiclePropertyCallback = void (VehiclePropertyType value); 
45
46 callback VehiclePropertyErrorCallback = void (VehiclePropertyError error); 
47
48 callback VehiclePropertyListCallback = void (sequence<VehiclePropertyType> values); 
49
50 callback SupportedPropertiesCallback = void (sequence<DOMString> properties);
51
52
53 [NoInterfaceObject]
54 interface Vehicle  { 
55
56         /**  
57          *  \brief returns supported object types
58          **/
59         sequence<DOMString> supported();
60
61         /**  
62          *  \brief fetch the current value for 'objectType'.  
63          *  \arg DOMString objectType is the requested property to be retrieved.
64          *  \returns object representing the requested 'objectType'
65          **/
66         any get(DOMString objectType);  
67
68         /** \brief subscribe to the given property and get callbacks when it changes
69          *  \arg DOMString property property to set      
70          *  \arg VehiclePropertyCallback successCallback callback if operation is successfull   
71          *  \arg VehiclePropertyErrorCallback errorCallback callback if error has been called.
72          **/
73
74         subscribe(DOMString property, VehiclePropertyCallback successCallback, optional VehiclePropertyErrorCallback errorCallback);
75         
76         /**  
77          *  \brief set the given property to value  
78          *  \arg DOMString property property to set  
79          *  \arg VehiclePropertyType value value to set  
80          *  \arg VehiclePropertyCallback successCallback callback if operation is successfull
81          *  \arg VehiclePropertyErrorCallback errorCallback callback if error has been called.  
82          **/
83         set(DOMString property, VehiclePropertyType value, optional VehiclePropertyErrorCallback errorCallback);
84         
85         /**  
86          *  \brief get values for a given property within a certain past time period between 'startTime' and 'endTime'  
87          *  \arg DOMString property property to request  
88          *  \arg Date startTime, starting period of time.  
89          *  \arg Date endTime, ending period of time.  
90          *  \arg VehiclePropertyListCallback successCallback. Callback with the result of the method call  
91          *  \arg VehiclePropertyErrorCallback errorCallback. Callback if an error has occurred.  
92         **/
93         getHistory(DOMString property, Date startTime, Date endTime, VehiclePropertyListCallback successCallback, optional VehiclePropertyErrorCallback errorCallback);  
94 };
95
96 [NoInterfaceObject]
97 interface VehicleSpeed : VehiclePropertyType  { 
98
99         /**  VehicleSpeed
100          *   \brief  Must return Vehicle Speed in kilometers per hour.    
101          **/
102          attribute unsigned long vehicleSpeed;
103 };
104
105 [NoInterfaceObject]
106 interface EngineSpeed : VehiclePropertyType  { 
107
108         /**  EngineSpeed
109          *   \brief  Must return Engine Speed in rotations per minute.    
110          **/
111          attribute unsigned long engineSpeed;
112 };
113
114 [NoInterfaceObject]
115 interface VehiclePowerMode : VehiclePropertyType  { 
116         const unsigned short VEHICLEPOWERMODE_OFF = 0,    
117         const unsigned short VEHICLEPOWERMODE_ACCESSORY1 = 1,    
118         const unsigned short VEHICLEPOWERMODE_ACCESSORY2 = 2,    
119         const unsigned short VEHICLEPOWERMODE_RUN = 3;    
120
121         /**  VehiclePowerMode
122          *   \brief  Must return Vehicle Power mode (see VEHICLEPOWERMODE)    
123          **/
124          attribute octet vehiclePowerMode;
125 };
126
127 [NoInterfaceObject]
128 interface TripMeter : VehiclePropertyType  { 
129
130         /**  TripMeters
131          *   \brief  Must return trip meters.  Changing any items in the array will reset the item's value to '0'.
132          **/
133          attribute sequence<unsigned long> tripMeters;
134 };
135
136 [NoInterfaceObject]
137 interface Acceleration : VehiclePropertyType  { 
138
139         /**  X
140          *   \brief  Must return acceleration on the "X" axis as 1/1000 G (gravitational force).    
141          **/
142          attribute unsigned long x;
143
144         /**  Y
145          *   \brief  Must return acceleration on the "Y" axis as 1/1000 G (gravitational force).    
146          **/
147          attribute unsigned long y;
148
149         /**  Z
150          *   \brief  Must return acceleration on the "Z" axis as 1/1000 G (gravitational force).    
151          **/
152          attribute unsigned long z;
153 };
154
155 [NoInterfaceObject]
156 interface Transmission : VehiclePropertyType  { 
157         const unsigned short TRANSMISSIONPOSITION_NEUTRAL = 0;    
158         const unsigned short TRANSMISSIONPOSITION_FIRST = 1;    
159         const unsigned short TRANSMISSIONPOSITION_SECOND = 2;    
160         const unsigned short TRANSMISSIONPOSITION_THIRD = 3;    
161         const unsigned short TRANSMISSIONPOSITION_FORTH = 4;    
162         const unsigned short TRANSMISSIONPOSITION_FIFTH = 5;    
163         const unsigned short TRANSMISSIONPOSITION_SIXTH = 6;    
164         const unsigned short TRANSMISSIONPOSITION_SEVENTH = 7;    
165         const unsigned short TRANSMISSIONPOSITION_EIGHTH = 8;    
166         const unsigned short TRANSMISSIONPOSITION_NINTH = 9;    
167         const unsigned short TRANSMISSIONPOSITION_TENTH = 10;    
168         const unsigned short TRANSMISSIONPOSITION_CVT = 64;    
169         const unsigned short TRANSMISSIONPOSITION_REVERSE = 128;    
170         const unsigned short TRANSMISSIONPOSITION_PARK = 255;    
171         const unsigned short TRANSMISSIONMODE_NORMAL = 0;    
172         const unsigned short TRANSMISSIONMODE_SPORT = 1;    
173         const unsigned short TRANSMISSIONMODE_ECONOMY = 2;    
174         const unsigned short TRANSMISSIONMODE_OEMCUSTOM1 = 3;    
175         const unsigned short TRANSMISSIONMODE_OEMCUSTOM2 = 4;    
176
177         /**  GearPosition
178          *   \brief  Must return transmission gear position (see TRANSMISSIONPOSITION)    
179          **/
180          attribute octet gearPosition;
181
182         /**  Mode
183          *   \brief  Must return transmission Mode (see 
184          **/
185          attribute octet mode;
186 };
187
188 [NoInterfaceObject]
189 interface CruiseControlStatus : VehiclePropertyType  { 
190
191         /**  Activated
192          *   \brief  Must return whether or not the Cruise Control system is active (true) or inactive (false)    
193          **/
194          attribute boolean activated;
195
196         /**  Speed
197          *   \brief  Must return target Cruise Control speed in kilometers per hour (kph).    
198          **/
199          attribute unsigned short speed;
200 };
201
202 [NoInterfaceObject]
203 interface WheelBrake : VehiclePropertyType  { 
204
205         /**  Engaged
206          *   \brief  Must return Wheel Brake status: Engaged = true, disengaged = false    
207          **/
208          attribute boolean engaged;
209 };
210
211 [NoInterfaceObject]
212 interface LightStatus : VehiclePropertyType  { 
213
214         /**  Head
215          *   \brief  Must return headlight status: on = true, off = false.    
216          **/
217          attribute boolean head;
218
219         /**  RightTurn
220          *   \brief  Must return right turn signal status: on = true, off = false.    
221          **/
222          attribute boolean rightTurn;
223
224         /**  LeftTurn
225          *   \brief  Must return left turn signal status: on = true, off = false.    
226          **/
227          attribute boolean leftTurn;
228
229         /**  Brake
230          *   \brief  Must return  brake signal light status: on = true, off = false.    
231          **/
232          attribute boolean brake;
233
234         /**  Fog
235          *   \brief  Must return fog light status: on = true, off = false.    
236          **/
237          attribute boolean fog;
238
239         /**  Hazard
240          *   \brief  Must return hazard light status: on = true, off = false.    
241          **/
242          attribute boolean hazard;
243
244         /**  Parking
245          *   \brief  Must return parking light status: on = true, off = false.    
246          **/
247          attribute boolean parking;
248
249         /**  HighBeam
250          *   \brief  Must return high beam status: on = true, off = false.    
251          **/
252          attribute boolean highBeam;
253 };
254
255 [NoInterfaceObject]
256 interface InteriorLightStatus : VehiclePropertyType  { 
257
258         /**  Passenger
259          *   \brief  Must return passenger interior light status: on = true, off = false    
260          **/
261          attribute boolean passenger;
262
263         /**  Driver
264          *   \brief  Must return driver interior light status: on = true, off = false    
265          **/
266          attribute boolean driver;
267
268         /**  Center
269          *   \brief  Must return center interior light status: on = true, off = false    
270          **/
271          attribute boolean center;
272 };
273
274 [NoInterfaceObject]
275 interface Horn : VehiclePropertyType  { 
276
277         /**  On
278          *   \brief  Must return horn status: on = true, off = false    
279          **/
280          attribute boolean on;
281 };
282
283 [NoInterfaceObject]
284 interface Fuel : VehiclePropertyType  { 
285
286         /**  Level
287          *   \brief  Must return fuel level as a percentage of fullness.    
288          **/
289          attribute unsigned short level;
290
291         /**  Range
292          *   \brief  Must return estimated fuel range in kilometers.    
293          **/
294          attribute unsigned short range;
295
296         /**  InstantConsumption
297          *   \brief  Must return instant fuel consumption in milliliters of fuel per second.    
298          **/
299          attribute unsigned short instantConsumption;
300
301         /**  InstantEconomy
302          *   \brief  Must return instant fuel 'economy' in kilometers per liter of fuel.    
303          **/
304          attribute unsigned short instantEconomy;
305
306         /**  AverageEconomy
307          *   \brief  Must return average fuel 'economy' in kilometers per liter of fuel since last reset.  Setting this to any value should reset the counter to '0'    
308          **/
309          attribute unsigned short averageEconomy;
310 };
311
312 [NoInterfaceObject]
313 interface EngineOil : VehiclePropertyType  { 
314
315         /**  Remaining
316          *   \brief  Must return remaining engine oil as percentage of fullness.    
317          **/
318          attribute unsigned short remaining;
319
320         /**  Temperature
321          *   \brief  Must return Engine Oil Temperature in Celcius.    
322          **/
323          attribute long temperature;
324
325         /**  Pressure
326          *   \brief  Must return Engine Oil Pressure in kPa.    
327          **/
328          attribute unsigned short pressure;
329 };
330
331 [NoInterfaceObject]
332 interface Location : VehiclePropertyType  { 
333
334         /**  Latitude
335          *   \brief  Must return latitude in Deg.Min (-180, +180)    
336          **/
337          attribute double latitude;
338
339         /**  Longitude
340          *   \brief  Must return longitude in Deg.Min (-90, +90)    
341          **/
342          attribute double longitude;
343
344         /**  Altitude
345          *   \brief  Must return altitude in meters above sea-level (0).    
346          **/
347          attribute double altitude;
348
349         /**  Direction
350          *   \brief  Must return direction in Degrees  (0-360)    
351          **/
352          attribute unsigned short direction;
353 };
354
355 [NoInterfaceObject]
356 interface ExteriorBrightness : VehiclePropertyType  { 
357
358         /**  ExteriorBrightness
359          *   \brief Must return the brightness outside the vehicle in lux.    
360          **/
361          attribute unsigned long exteriorBrightness;
362 };
363
364 [NoInterfaceObject]
365 interface Temperature : VehiclePropertyType  { 
366
367         /**  Interior
368          *   \brief Must return the temperature of the interior of the vehicle in celcius.    
369          **/
370          attribute signed short interior;
371
372         /**  Exterior
373          *   \brief Must return the temperature of the exterior of the vehicle in celcius.    
374          **/
375          attribute signed short exterior;
376 };
377
378 [NoInterfaceObject]
379 interface RainSensor : VehiclePropertyType  { 
380
381         /**  RainSensor
382          *   \brief Must return level of rain intensity 0: No Rain - 10: Heaviest Rain.    
383          **/
384          attribute unsigned short rainSensor;
385 };
386
387 [NoInterfaceObject]
388 interface WindshieldWiper : VehiclePropertyType  { 
389         const unsigned short WIPERSPEED_OFF = 0;    
390         const unsigned short WIPERSPEED_SLOWEST= 1;    
391         const unsigned short WIPERSPEED_FASTEST = 5;    
392         const unsigned short WIPERSPEED_AUTO = 10;    
393
394         /**  WindshieldWiper
395          *   \brief Must return Level of windshield whiper speed (see WIPERSPEED)    
396          **/
397          attribute unsigned short windshieldWiper;
398 };
399
400 dictionary DefrostDictionary {
401         unsigned short window;
402         boolean defrost;
403 }
404
405 [NoInterfaceObject]
406 interface HVAC : VehiclePropertyType  { 
407         const unsigned short AIRFLOWDIRECTION_FRONTPANEL = 0;    
408         const unsigned short AIRFLOWDIRECTION_FLOORDUCT= 1;    
409         const unsigned short AIRFLOWDIRECTION_FRONT = 0x02;    
410         const unsigned short AIRFLOWDIRECTION_DEFROSTER = 0x04;    
411
412         /**  AirflowDirection
413          *   \brief Must return airflow direction.  See 
414          **/
415         attribute unsigned short airflowDirection;
416
417         /**  FanSpeed
418          *   \brief Must return speed of the fan (0-7)    
419          **/
420         attribute unsigned short fanSpeed;
421
422         /**  TargetTemperature
423          *   \brief Must return target desired temperature in celcius.    
424          **/
425         attribute unsigned short targetTemperature;
426
427         /**  AirConditioning
428          *   \brief Must return air conditioning on (true) / off (false).    
429          **/
430         attribute boolean airConditioning;
431
432         /**  AirRecirculation
433          *   \brief Must return air recirculation on (true) / off (false).    
434          **/
435         readwrite attribute boolean airRecirculation;
436
437         /**  Heater
438          *   \brief Must return heater on (true) / off (false).    
439          **/
440         attribute boolean heater;
441
442         /**  Defrost
443          *   \brief Must return the defrost status of all windows equiped with defrosters.  This will return a dictionary of DefrostDictionary that represents    
444          *   \brief each window and its defrost status.    
445          **/
446         attribute DefrostDictionary defrost;
447
448         /**  SteeringWheelHeater
449          *   \brief Must return air recirculation on (true) / off (false).    
450          **/
451         attribute boolean steeringWheelHeater;
452
453         /**  SeatHeater
454          *   \brief Must return seat heater status: on (true) / off (false).    
455          **/
456         attribute boolean seatHeater;
457
458         /**  SeatCooler
459          *   \brief Must return seat heater status: on (true) / off (false).    
460          **/
461         attribute boolean seatCooler;
462 };
463
464 [NoInterfaceObject]
465 interface WindowStatus : VehiclePropertyType  { 
466         const unsigned short WINDOWLOCATION_DRIVER= 0;    
467         const unsigned short WINDOWLOCATION_PASSENGER = 1;    
468         const unsigned short WINDOWLOCATION_LEFTREAR = 2;    
469         const unsigned short WINDOWLOCATION_RIGHTREAR = 3;    
470         const unsigned short WINDOWLOCATION_REAR = 4;    
471
472         /**  WindowStatus
473          *   \brief Must return window status for each window location.  object returned is a    
474          *   dictionary { unsigned short windowlocation, unsigned short percentage opened }    
475          **/
476         readwrite attribute object WindowStatus;
477 };
478
479 [NoInterfaceObject]
480 interface Sunroof : VehiclePropertyType  { 
481
482         /**  Openness
483          *   \brief Must return window status for sunroof openness percentage.    
484          **/
485         readwrite attribute unsigned short openness;
486
487         /**  Tilt
488          *   \brief Must return tilt status for sunroof percentage.    
489          **/
490         readwrite attribute unsigned short tilt;
491 };
492
493 [NoInterfaceObject]
494 interface ConvertibleRoof : VehiclePropertyType  { 
495
496         /**  Openness
497          *   \brief Must return window status for sunroof openness percentage.    
498          **/
499         readwrite attribute unsigned short openness;
500 };
501
502 [NoInterfaceObject]
503 interface VehicleId : VehiclePropertyType  { 
504
505         /**  WMI
506          *   \brief MUST return World Manufacturer Identifier (WMI)    
507          *   WMI is defined by SAE ISO 3780:2009.  3 characters.    
508          **/
509          attribute DOMString WMI;
510
511         /**  VIN
512          *   \brief MUST return Vehicle Identification Number (VIN) as defined by ISO 3779. 17 characters.    
513          **/
514          attribute DOMString VIN;
515 };
516
517 [NoInterfaceObject]
518 interface Size : VehiclePropertyType  { 
519
520         /**  Width
521          *   \brief MUST return width of vehicle in mm    
522          **/
523          attribute unsigned long width;
524
525         /**  Height
526          *   \brief MUST return height of vehicle in mm    
527          **/
528          attribute unsigned long height;
529
530         /**  Length
531          *   \brief MUST return length of vehicle in mm    
532          **/
533          attribute unsigned long length;
534 };
535
536 [NoInterfaceObject]
537 interface FuelInfo : VehiclePropertyType  { 
538         const unsigned short FUELTYPE_GASOLINE = 0;    
539         const unsigned short FUELTYPE_HIGH_OCTANE= 1;    
540         const unsigned short FUELTYPE_DIESEL = 2;    
541         const unsigned short FUELTYPE_ELECTRIC = 3;    
542         const unsigned short FUELTYPE_HYDROGEN = 4;    
543         const unsigned short REFUELPOSITION_LEFT = 0;    
544         const unsigned short REFUELPOSITION_RIGHT= 1;    
545         const unsigned short REFUELPOSITION_FRONT = 2;    
546         const unsigned short REFUELPOSITION_REAR = 3;    
547
548         /**  Type
549          *   \brief MUST return type of fuel.  integer 0-4 (see 
550          **/
551          attribute unsigned short type;
552
553         /**  RefuelPosition
554          *   \brief MUST return position of refuling (see 
555          **/
556          attribute unsigned short refuelPosition;
557 };
558
559 [NoInterfaceObject]
560 interface VehicleType : VehiclePropertyType  { 
561         const unsigned short VEHICLETYPE_SEDAN = 0;    
562         const unsigned short VEHICLETYPE_COUPE= 1;    
563         const unsigned short VEHICLETYPE_CABRIOLE = 2;    
564         const unsigned short VEHICLETYPE_ROADSTER = 3;    
565         const unsigned short VEHICLETYPE_SUV = 4;    
566         const unsigned short VEHICLETYPE_TRUCK = 5;    
567
568         /**  Type
569          *   \brief MUST return type of Vehicle.  Integer 0-5 (see 
570          **/
571          attribute unsigned short type;
572 };
573
574 [NoInterfaceObject]
575 interface Doors : VehiclePropertyType  { 
576
577         /**  DoorsPerRow
578          *   \brief MUST return Number of doors in each row.  The index represents the row.  Position '0'    
579          *   represents the first row, '1' the second row etc.    
580          *   Example a common mini-van may have Doors[0] = 2 doors,    
581          *   Doors[1] = 1 (side door), Doors[2] = 1 (trunk).    
582          **/
583          attribute sequence<unsigned short> doorsPerRow;
584 };
585
586 [NoInterfaceObject]
587 interface TransmissionGearType : VehiclePropertyType  { 
588         const unsigned short TRANSMISSIONGEARTYPE_AUTO=0;    
589         const unsigned short TRANSMISSIONGEARTYPE_MANUAL=1;    
590         const unsigned short TRANSMISSIONGEARTYPE_CV=2;    
591
592         /**  TransmissionGearType
593          *   \brief MUST return transmission gear type of either Automatic, Manual or Constant Variable (CV).  See 
594          **/
595          attribute unsigned short transmissionGearType;
596 };
597
598 [NoInterfaceObject]
599 interface WheelInformation : VehiclePropertyType  { 
600
601         /**  FrontWheelRadius
602          *   \brief MUST return Radius of Front Wheel(s) in mm.    
603          **/
604          attribute unsigned short frontWheelRadius;
605
606         /**  RearWheelRadius
607          *   \brief MUST return Radius of Rear Wheel(s) in mm.    
608          **/
609          attribute unsigned short rearWheelRadius;
610
611         /**  WheelTrack
612          *   \brief MUST return Wheel Track in mm.    
613          **/
614          attribute unsigned long wheelTrack;
615
616         /**  ABS
617          *   \brief MUST return Antilock Brake System status: on = true, off = false.    
618          **/
619          attribute boolean ABS;
620 };
621
622 [NoInterfaceObject]
623 interface Odometer : VehiclePropertyType  { 
624
625         /**  Odometer
626          *   \brief MUST return Distance traveled in km    
627          **/
628          attribute unsigned long odometer;
629 };
630
631 [NoInterfaceObject]
632 interface Fluid : VehiclePropertyType  { 
633
634         /**  Transmission
635          *   \brief MUST return Transmission fluid level percentage. 0-100.    
636          **/
637          attribute unsigned short transmission;
638
639         /**  Brake
640          *   \brief MUST return Brake fluid level percentage. 0-100.    
641          **/
642          attribute unsigned short brake;
643
644         /**  Washer
645          *   \brief MUST return Washer fluid level percentage. 0-100.    
646          **/
647          attribute unsigned short washer;
648 };
649
650 [NoInterfaceObject]
651 interface Battery : VehiclePropertyType  { 
652
653         /**  Voltage
654          *   \brief MUST return battery voltage.    
655          **/
656          attribute double voltage;
657
658         /**  Current
659          *   \brief MUST return battery current in Amperes    
660          **/
661          attribute double current;
662 };
663
664 [NoInterfaceObject]
665 interface TirePressure : VehiclePropertyType  { 
666
667         /**  LeftFront
668          *   \brief MUST return left front tire pressure in kPa.    
669          **/
670          attribute double leftFront;
671
672         /**  RightFront
673          *   \brief MUST return right front tire pressure in kPa.    
674          **/
675          attribute double rightFront;
676
677         /**  LeftRear
678          *   \brief MUST return left rear tire pressure in kPa.    
679          **/
680          attribute double leftRear;
681
682         /**  RightRear
683          *   \brief MUST return right rear tire pressure in kPa.    
684          **/
685          attribute double rightRear;
686 };
687
688 [NoInterfaceObject]
689 interface TireTemperature : VehiclePropertyType  { 
690
691         /**  LeftFront
692          *   \brief MUST return left front tire temperature in Celcius.    
693          **/
694          attribute double leftFront;
695
696         /**  RightFront
697          *   \brief MUST return right front tire temperature in Celcius.    
698          **/
699          attribute double rightFront;
700
701         /**  LeftRear
702          *   \brief MUST return left rear tire temperature in Celcius.    
703          **/
704          attribute double leftRear;
705
706         /**  RightRear
707          *   \brief MUST return right rear tire temperature in Celcius.    
708          **/
709          attribute double rightRear;
710 };
711
712 [NoInterfaceObject]
713 interface SecurityAlert : VehiclePropertyType  { 
714
715         /**  SecurityAlert
716          *   \brief MUST return    
717          **/
718          attribute boolean securityAlert;
719 };
720
721 [NoInterfaceObject]
722 interface ParkingBrake : VehiclePropertyType  { 
723
724         /**  ParkingBrake
725          *   must return status of parking brake:  Engaged = true, Disengaged = false.    
726          **/
727          attribute boolean parkingBrake;
728 };
729
730 [NoInterfaceObject]
731 interface ParkingLight : VehiclePropertyType  { 
732
733         /**  ParkingLight
734          *   must return status of parking light:  Engaged = true, Disengaged = false.    
735          **/
736          attribute boolean parkingLight;
737 };
738
739 [NoInterfaceObject]
740 interface HazardLight : VehiclePropertyType  { 
741
742         /**  HazardLight
743          *   must return status of hazard light:  Engaged = true, Disengaged = false.    
744          **/
745          attribute boolean hazardLight;
746 };
747
748 [NoInterfaceObject]
749 interface AntilockBrakingSystem : VehiclePropertyType  { 
750
751         /**  AntilockBrakingSystem
752          *   \brief MUST return whether Antilock Braking System is Idle (false) or Engaged (true)    
753          **/
754          attribute boolean antilockBrakingSystem;
755 };
756
757 [NoInterfaceObject]
758 interface TractionControlSystem : VehiclePropertyType  { 
759
760         /**  TractionControlSystem
761          *   \brief MUST return whether Traction Control System is Off (false) or On (true)    
762          **/
763          attribute boolean tractionControlSystem;
764 };
765
766 [NoInterfaceObject]
767 interface VehicleTopSpeedLimit : VehiclePropertyType  { 
768
769         /**  VehicleTopSpeedLimit
770          *   \brief MUST returns top rated speed in km/h. 0 = no limit    
771          **/
772          attribute unsigned short vehicleTopSpeedLimit;
773 };
774
775 [NoInterfaceObject]
776 interface AirbagStatus : VehiclePropertyType  { 
777         const unsigned short AIRBAGLOCATION_DRIVER = 0;    
778         const unsigned short AIRBAGLOCATION_PASSENGER= 1;    
779         const unsigned short AIRBAGLOCATION_LEFTSIDE = 2;    
780         const unsigned short AIRBAGLOCATION_RIGHTSIDE = 3;    
781         const unsigned short AIRBAGSTATUS_INACTIVE = 0;    
782         const unsigned short AIRBAGSTATUS_ACTIVE = 1;    
783         const unsigned short AIRBAGSTATUS_DEPLOYED = 2;    
784
785         /**  AirbagStatus
786          *   \brief MUST returns a dictionary of Airbag (byte) and Status (byte) (see 
787          **/
788          attribute object airbagStatus;
789 };
790
791 [NoInterfaceObject]
792 interface DoorStatus : VehiclePropertyType  { 
793         const unsigned short DOORLOCATION_DRIVER= 0;    
794         const unsigned short DOORLOCATION_PASSENGER = 1;    
795         const unsigned short DOORLOCATION_LEFTREAR = 2;    
796         const unsigned short DOORLOCATION_RIGHTREAR = 3;    
797         const unsigned short DOORLOCATION_TRUNK = 4;    
798         const unsigned short DOORLOCATION_FUELCAP = 5;    
799         const unsigned short DOORLOCATION_HOOD = 6;    
800         const unsigned short DOORSTATUS_CLOSED = 0;    
801         const unsigned short DOORSTATUS_OPEN = 1;    
802         const unsigned short DOORSTATUS_AJAR = 2;    
803
804         /**  DoorStatus
805          *   \brief MUST returns dictionary of Door (byte) and Status (byte).  See 
806          **/
807          attribute object doorStatus;
808
809         /**  DoorLockStatus
810          *   \brief MUST returns dictionary of Door (byte) and Status (bool locked = true, unlocked = false).  See 
811          **/
812          attribute object doorLockStatus;
813
814         /**  ChildLockStatus
815          *   \brief MUST returns Child lock status of rear doors.  active = true, inactive = false.    
816          *   Setting this to 'true' will prevent the rear doors from being opened    
817          *   from the inside.    
818          **/
819          attribute boolean childLockStatus;
820 };
821
822 [NoInterfaceObject]
823 interface SeatBeltStatus : VehiclePropertyType  { 
824         const unsigned short SEATBELTLOCATION_DRIVER= 0;    
825         const unsigned short SEATBELTLOCATION_MIDDLEFRONT = 1;    
826         const unsigned short SEATBELTLOCATION_PASSENGER = 2;    
827         const unsigned short SEATBELTLOCATION_LEFTREAR = 3;    
828         const unsigned short SEATBELTLOCATION_MIDDLEREAR = 4;    
829         const unsigned short SEATBELTLOCATION_RIGHTREAR = 5;    
830
831         /**  SeatBeltStatus
832          *   \brief MUST returns dictionary of Seat Belt (byte, see SEATBELTLOCATION) and Status (bool: Fasten = true, Unfastened = false)    
833          **/
834          attribute object seatBeltStatus;
835 };
836
837 [NoInterfaceObject]
838 interface OccupantStatus : VehiclePropertyType  { 
839         const unsigned short OCCUPANTLOCATION_DRIVER = 0;    
840         const unsigned short OCCUPANTLOCATION_FRONTMIDDLE = 1;    
841         const unsigned short OCCUPANTLOCATION_PASSENGER= 2;    
842         const unsigned short OCCUPANTLOCATION_LEFTREAR = 3;    
843         const unsigned short OCCUPANTLOCATION_MIDDLEREAR = 4;    
844         const unsigned short OCCUPANTLOCATION_RIGHTREAR = 5;    
845         const unsigned short OCCUPANTSTATUS_VACANT = 0;    
846         const unsigned short OCCUPANTSTATUS_CHILD = 1;    
847         const unsigned short OCCUPANTSTATUS_ADULT = 2;    
848
849         /**  OccupantStatus
850          *   \brief MUST returns dictionary of Occupant (byte see OCCUPANTLOCATION) and Status (byte, see 
851          **/
852          attribute object occupantStatus;
853 };
854
855 [NoInterfaceObject]
856 interface ObstacleDistance : VehiclePropertyType  { 
857         const unsigned short DISTANCESENSORLOCATION_LEFTFRONT = 0;    
858         const unsigned short DISTANCESENSORLOCATION_RIGHTFRONT = 1;    
859         const unsigned short DISTANCESENSORLOCATION_LEFTREAR = 2;    
860         const unsigned short DISTANCESENSORLOCATION_RIGHTREAR = 3;    
861         const unsigned short DISTANCESENSORLOCATION_LEFTBLINDSPOT = 4;    
862         const unsigned short DISTANCESENSORLOCATION_RIGHTBLINDSPOT = 5;    
863
864         /**  ObstacleDistance
865          *   \brief MUST returns dictionary of Distance Sensor (byte, see DISTANCESENSORLOCATION) and distance (double) in m.    
866          **/
867          attribute object obstacleDistance;
868 };
869
870 };
871