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