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