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