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