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