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