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