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