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