use set instead of list in cmake for better compatibility
[profile/ivi/automotive-message-broker.git] / docs / amb.idl
1 /*! amb.idl
2 * /brief This document describes the DBus interfaces and data types for the
3 * Automotive Message Broker API.  The data types are intended to as-close-as-
4 * possible be compatible with the W3C vehicle <a href="https://rawgit.com/w3c/automotive-bg/master/data_spec.html>data spec</a>.
5 */
6
7 /*!
8 * Variant
9 */
10 union Variant {
11   UInt8 uint8
12   Int8 int8
13   UInt16 uint16
14   Int16 int16
15   UInt32 uint32
16   Int32 int32
17   UInt32 uin32
18   Int64 int64
19   UInt64 uint64
20   Boolean boolean
21   Float float
22   Double double
23   String string
24   ByteBuffer bytebuffer
25 }
26
27 /*!
28 * Dictionary
29 */
30 map Dictionary {
31   String to Variant
32 }
33
34 /*!
35 * VehiclePropertyType
36 * \brief VehiclePropertyType is the base class for all Data types.
37 */
38 interface VehiclePropertyType {
39
40   /*!
41   * \brief time stamp marking the last time a property in the interface updated
42   */
43   attribute Double Time readonly
44
45   /*!
46   * \brief Zone in which the interface is situated.
47   */
48   attribute Zone Zone readonly
49
50   /*!
51   * \brief returns dictionary of objectName and values for data between
52   * 'beginTime' and 'endTime'
53   * \arg beginTime time stamp in Seconds since Unix Epoc
54   * \arg endTime time stamp in Seconds since Unix Epoc
55   */
56   method GetHistory(Double beginTime, Double endTime) {
57     out{ Dictionary result}
58   }
59 }
60
61 enumeration Zone {
62   None = 0,
63   Front = 1,
64   Middle = 1 << 1,
65   Right = 1 << 2,
66   Left = 1 << 3,
67   Rear = 1 << 4,
68   Center = 1 << 5
69 }
70
71 /*! org.automotive.Manager
72  * \brief Manager is a helper interface for discovering and finding available objects
73  * Manager is a helper interface that helps inform of supported data types and find
74  * specified data type objects' path on DBus
75  * DBus Path: /
76  */
77 interface org.automotive.Manager  {
78
79   /*! List
80    *  \brief returns supported properties
81   */
82   method List {
83     out { String[] }
84   }
85
86   /*!
87    * FindObject
88    *  \brief find the DBus object path matching the given "objectName" (ie "VehicleSpeed" is the object name for
89    * the DBus object at path: "/path/to/VehicleSpeed") or org.automotive.Manager.ObjectNotFound if the object
90    * name is not supported.
91    *
92    *  If the object path does not exist, it will be created.  The object path will be removed
93    *  when the last proccess that calls Find* disconnects from DBus.
94    *
95    *  \arg String objectName to find
96    *  \returns list of object paths that provide the given object Name.
97   */
98   method FindObject {
99     in {
100       String objectName
101     }
102     out {
103       String[] objectPaths
104     }
105   }
106
107   /*!
108    * FindObjectForZone
109    *  \brief find the DBus object path which matches "objectName" and "zone".  This has the same behavior as FindObject
110    * except that it takes an addition zone argument and only returns the path for that zone.
111    *  \arg String property is the requested property to be retrieved.
112    *  \arg Zone zone is the zone which the object
113    *  \returns string representing the DBus Object path
114   */
115   method FindObjectForZone {
116     in {
117       String objectName
118       Zone zone
119     }
120     out {
121       String objectPath
122     }
123   }
124
125   /*!
126    * ZonesForObjectName
127    *  \brief get a list of zones for a given objectName.
128    *  \arg String objectName object name.
129    *  \returns list of zones for the given objectName (@see Zone)
130   */
131   method ZonesForObjectName {
132     in {
133       String objectName
134     }
135     out {
136       UInt32[] zones
137     }
138   }
139
140 }
141
142 /*! org.automotive.VehicleSpeed
143  \brief contains information about VehicleSpeed
144  DBus Path: variable
145 */
146 interface org.automotive.VehicleSpeed extends VehiclePropertyType  {
147
148   /*!  Speed
149    *   \brief  Must return Vehicle Speed in kilometers per hour.
150    */
151   attribute UInt16 Speed readonly
152 }
153
154 /*! org.automotive.EngineSpeed
155  \brief contains information about EngineSpeed
156  DBus Path: variable
157 */
158 interface org.automotive.EngineSpeed extends VehiclePropertyType  {
159
160   /*!  EngineSpeed
161    *   \brief  Must return Engine Speed in rotations per minute.
162    */
163    attribute UInt16 Speed readonly
164 }
165
166 enumeration PowerMode {
167   Off = 0
168   Accessory1 = 1
169   Accessory2 = 2
170   Run = 3
171 }
172
173 interface org.automotive.VehiclePowerMode extends VehiclePropertyType  {
174
175   /*!  VehiclePowerMode
176    *   \brief  Must return vehicle power mode
177    */
178   attribute PowerMode VehiclePowerMode readonly
179 }
180
181 /*! org.automotive.TripMeter
182  \brief contains information about TripMeter
183  DBus Path: variable
184 */
185 interface org.automotive.TripMeter extends VehiclePropertyType  {
186
187   /*!  TripMeters
188    *   \brief  Must return trip meters.  Changing any items in the array will reset the item's value to '0'.
189    */
190    attribute UInt16[] TripMeters
191 }
192
193 /*! org.automotive.Acceleration
194  \brief contains information about Acceleration
195  DBus Path: variable
196 */
197 interface org.automotive.Acceleration extends VehiclePropertyType  {
198
199   /*!  X
200    *   \brief  Must return acceleration on the "X" axis as 1/1000 G (gravitational force).
201    */
202   attribute UInt16 X readonly
203
204   /*!  Y
205    *   \brief  Must return acceleration on the "Y" axis as 1/1000 G (gravitational force).
206    */
207   attribute UInt16 Y readonly
208
209   /*!  Z
210    *   \brief  Must return acceleration on the "Z" axis as 1/1000 G (gravitational force).
211    */
212   attribute UInt16 Z readonly
213 }
214
215 enumeration TransmissionMode {
216   park = "park",
217   reverse = "reverse",
218   neutral = "neutral",
219   low = "low",
220   drive = "drive",
221   overdrive = "overdrive"
222 }
223
224 /*! TransmissionPosition
225  * \brief Describes Transmission Pistion.  Deprecated.  Will disappear in 0.13
226  */
227 enumeration TransmissionPosition {
228   Neutral = 0,
229   First = 1,
230   Second = 2,
231   Third = 3,
232   Fourth = 4,
233   Fifth = 5,
234   Sixth = 6,
235   Seventh = 7,
236   Eighth = 8,
237   Ninth = 9,
238   Tenth = 10,
239   Cvt = 64,
240   Reverse = 128,
241   Park = 255
242 }
243
244 /*! TransmissionGearType
245  * \brief Describes the transmission gearbox type
246 */
247 enumeration TransmissionGearType
248 {
249   Auto = 0,
250   Manual = 1,
251   CVT = 2
252 }
253
254 interface org.automotive.Transmission extends VehiclePropertyType  {
255   /*!  GearPosition
256    *   \brief  Must return transmission gear position (see TRANSMISSIONPOSITION) Deprecated.  Replaced with Gear
257    */
258    attribute TransmissionPosition GearPosition readonly
259
260   /*!  TransmissionGearType
261    *   \brief MUST return transmission gear type of either Automatic, Manual or Constant Variable (CV).
262    *   See TRANSMISSIONGEARTYPE
263    */
264    attribute TransmissionGearType Type;
265
266   /*!  Gear
267    *   \brief  Must return transmission gear position 1-10
268    */
269    attribute UInt8 Gear readonly
270
271   /*!  Mode
272    *   \brief  Must return transmission Mode
273    */
274    attribute TransmissionMode Mode readonly
275 }
276
277
278 interface org.automotive.CruiseControlStatus extends VehiclePropertyType  {
279
280   /*!  Activated
281    *   \brief  Must return whether or not the Cruise Control system is active (true) or inactive (false)
282    */
283    attribute Boolean Activated readonly
284
285   /*!  Speed
286    *   \brief  Must return target Cruise Control speed in kilometers per hour (kph).
287    */
288    attribute UInt16 Speed readonly
289 }
290
291 /*!
292  * Deprecated.  Use BrakeOperation.  Remove in 0.13
293  */
294 interface org.automotive.WheelBrake extends VehiclePropertyType  {
295
296   /*!  Engaged
297    *   \brief  Must return Wheel Brake status: Engaged = true, disengaged = false
298    */
299    attribute Boolean Engaged readonly
300 }
301
302 interface org.automotive.BrakeOperation extends VehiclePropertyType  {
303
304   /*!  BrakePedalDepressed
305    *   \brief  must return whether brake pedal is depressed or not. true: brake pedal is depressed, false: brake pedal is not depressed
306    */
307    attribute Boolean BrakePedalDepressed readonly
308 }
309
310 interface org.automotive.LightStatus extends VehiclePropertyType  {
311
312   /*!  Head
313    *   \brief  Must return headlight status: on = true, off = false.
314    */
315    attribute Boolean Head readonly
316
317   /*!  RightTurn
318    *   \brief  Must return right turn signal status: on = true, off = false.
319    */
320    attribute Boolean RightTurn readonly
321
322   /*!  LeftTurn
323    *   \brief  Must return left turn signal status: on = true, off = false.
324    */
325    attribute Boolean LeftTurn readonly
326
327   /*!  Brake
328    *   \brief  Must return  brake signal light status: on = true, off = false.
329    */
330    attribute Boolean Brake readonly
331
332   /*!  Fog
333    *   \brief  Must return fog light status: on = true, off = false.
334    */
335    attribute Boolean Fog readonly
336
337   /*!  Hazard
338    *   \brief  Must return hazard light status: on = true, off = false.
339    */
340    attribute Boolean Hazard readonly
341
342   /*!  Parking
343    *   \brief  Must return parking light status: on = true, off = false.
344    */
345    attribute Boolean Parking readonly
346
347   /*!  HighBeam
348    *   \brief  Must return high beam status: on = true, off = false.
349    */
350    attribute Boolean HighBeam readonly
351
352   /*!  AutomaticHeadlights
353    *   \brief  Must return automatic headlight status: on = true, off = false.
354    */
355   attribute Boolean AutomaticHeadlights readonly
356
357   /*!  DynamicHighBeam
358    *   \brief  Must return dynamic high beam status: on = true, off = false.
359    */
360   attribute Boolean DynamicHighBeam readonly
361 }
362
363
364 interface org.automotive.InteriorLightStatus extends VehiclePropertyType  {
365
366   /*!  Passenger
367    *   \brief  Must return passenger interior light status: on = true, off = false
368    */
369    attribute Boolean Passenger readonly
370
371   /*!  Driver
372    *   \brief  Must return driver interior light status: on = true, off = false
373    */
374    attribute Boolean Driver readonly
375
376   /*!  Center
377    *   \brief  Must return center interior light status: on = true, off = false
378    */
379    attribute Boolean Center readonly
380 }
381
382
383 interface org.automotive.Horn extends VehiclePropertyType  {
384
385   /*!  On
386    *   \brief  Must return horn status: on = true, off = false
387    */
388    attribute Boolean On readonly
389 }
390
391
392 interface org.automotive.Fuel extends VehiclePropertyType  {
393
394   /*!  Level
395    *   \brief  Must return fuel level as a percentage of fullness.
396    */
397    attribute UInt16 Level readonly
398
399   /*!  Range
400    *   \brief  Must return estimated fuel range in meters.
401    */
402    attribute UInt32 Range readonly
403
404   /*!  InstantConsumption
405    *   \brief  Must return instant fuel consumption in per distance travelled (Unit: milliliters per 100 kilometers).
406    */
407    attribute UInt32 InstantConsumption readonly
408
409   /*!  InstantEconomy
410    *   \brief  Must return instant fuel 'economy' in kilometers per liter of fuel.
411    */
412    attribute UInt16 InstantEconomy readonly
413
414   /*!  AverageEconomy
415    *   \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'
416    */
417    attribute UInt16 AverageEconomy;
418
419   /*!  AverageConsumption
420    *   \brief  Must return average fuel consumption in per distance travelled (Unit: milliliters per 100 kilometers). Setting this to any value should reset the counter to '0'
421    */
422    attribute UInt32 AverageConsumption;
423
424   /*!  FuelConsumedSinceRestart
425    *   \brief must return fuel consumed since engine start; (Unit: milliliters per 100 kilometers) resets to 0 each restart
426    */
427    attribute UInt32 FuelConsumedSinceRestart readonly;
428
429   /*!  FuelConsumedSinceRestart
430    *   \brief must return fuel consumed since engine start; (Unit: milliliters per 100 kilometers) resets to 0 each restart
431    */
432    attribute UInt32 FuelConsumedSinceRestart readonly;
433 }
434
435
436 interface org.automotive.EngineOil extends VehiclePropertyType  {
437
438   /*!  Remaining
439    *   \brief  Must return remaining engine oil as percentage of fullness.
440    */
441    attribute UInt16 Remaining readonly
442
443   /*!  Temperature
444    *   \brief  Must return Engine Oil Temperature in Celcius.
445    */
446    attribute long Temperature readonly
447
448   /*!  Pressure
449    *   \brief  Must return Engine Oil Pressure in kPa.
450    */
451    attribute UInt16 Pressure readonly
452 }
453
454
455 interface org.automotive.Location extends VehiclePropertyType  {
456
457   /*!  Latitude
458    *   \brief  Must return latitude in Deg.Min (-180, +180)
459    */
460    attribute Double Latitude readonly
461
462   /*!  Longitude
463    *   \brief  Must return longitude in Deg.Min (-90, +90)
464    */
465    attribute Double Longitude readonly
466
467   /*!  Altitude
468    *   \brief  Must return altitude in meters above sea-level (0).
469    */
470    attribute Double Altitude readonly
471
472   /*!  Direction
473    *   \brief  Must return direction in Degrees  (0-360)
474    */
475    attribute UInt16 Direction readonly
476 }
477
478
479 interface org.automotive.ExteriorBrightness extends VehiclePropertyType  {
480
481   /*!  ExteriorBrightness
482    *   \brief Must return the brightness outside the vehicle in lux.
483    */
484    attribute UInt16 ExteriorBrightness readonly
485 }
486
487
488 interface org.automotive.Temperature extends VehiclePropertyType  {
489
490   /*!  Interior
491    *   \brief Must return the temperature of the interior of the vehicle in celcius.
492    */
493    /// Deprecated.  Use InteriorTemperature.  Remove in 0.13
494    attribute signed short Interior readonly
495
496   /*!  Exterior
497    *   \brief Must return the temperature of the exterior of the vehicle in celcius.
498    */
499    /// Deprecated.  Use ExteriorTemperature.  Remove in 0.13
500    attribute signed short Exterior readonly
501
502   /*!  Interior
503    *   \brief Must return the temperature of the interior of the vehicle in celcius.
504    */
505    attribute signed short InteriorTemperature readonly
506
507   /*!  Exterior
508    *   \brief Must return the temperature of the exterior of the vehicle in celcius.
509    */
510    attribute signed short ExteriorTemperature readonly
511 }
512
513
514 interface org.automotive.RainSensor extends VehiclePropertyType  {
515
516   /*!  RainSensor
517    *   \brief Must return level of rain intensity 0: No Rain - 10: Heaviest Rain.
518    */
519    attribute UInt16 RainSensor readonly
520 }
521
522
523 interface org.automotive.WindshieldWiper extends VehiclePropertyType  {
524   const UInt16 WIPERSPEED_OFF = 0;
525   const UInt16 WIPERSPEED_SLOWEST= 1;
526   const UInt16 WIPERSPEED_FASTEST = 5;
527   const UInt16 WIPERSPEED_AUTO = 10;
528
529   /*!  WindshieldWiper
530    *   \brief Must return Level of windshield whiper speed (see WIPERSPEED)
531    */
532    attribute UInt16 WindshieldWiper readonly
533 }
534
535 /*! Deprecated.  Use ClimateControl interface.  Remove in 0.13
536 */
537 interface org.automotive.HVAC extends VehiclePropertyType  {
538   const UInt16 AIRFLOWDIRECTION_FRONTPANEL = 0;
539   const UInt16 AIRFLOWDIRECTION_FLOORDUCT= 1;
540   const UInt16 AIRFLOWDIRECTION_FRONT = 0x02;
541   const UInt16 AIRFLOWDIRECTION_DEFROSTER = 0x04;
542
543   /*!  AirflowDirection
544    *   \brief Must return airflow direction.  See
545    */
546   attribute UInt16 AirflowDirection;
547
548   /*!  FanSpeed
549    *   \brief Must return speed of the fan (0-7)
550    */
551   attribute UInt16 FanSpeed;
552
553   /*!  TargetTemperature
554    *   \brief Must return target desired temperature in celcius.
555    */
556   attribute UInt16 TargetTemperature;
557
558   /*!  AirConditioning
559    *   \brief Must return air conditioning on (true) / off (false).
560    */
561   attribute Boolean AirConditioning;
562
563   /*!  AirRecirculation
564    *   \brief Must return air recirculation on (true) / off (false).
565    */
566   attribute Boolean AirRecirculation;
567
568   /*!  Heater
569    *   \brief Must return heater on (true) / off (false).
570    */
571   attribute Boolean Heater;
572
573   /*!  SteeringWheelHeater
574    *   \brief Must return air recirculation on (true) / off (false).
575    */
576   attribute Boolean SteeringWheelHeater;
577
578   /*!  SeatHeater
579    *   \brief Must return seat heater status: 0-100%.
580    */
581   attribute UInt16 SeatHeater;
582
583   /*!  SeatCooler
584    *   \brief Must return seat heater status: on (true) / off (false).
585    */
586   attribute Boolean SeatCooler;
587 }
588
589 enumeration AirflowDirectionType
590 {
591   frontpanel = "frontpanel",
592   floorduct = "floorduct",
593   bilevel = "bilevel",
594   defrostfloor = "defrostfloor"
595 }
596
597 interface org.automotive.ClimateControl extends VehiclePropertyType  {
598   /*!  AirflowDirection
599   *   \brief Must return current status of the direction of the air flow through the ventilation system
600   */
601   attribute AirflowDirectionType AirflowDirection;
602
603   /*!  FanSpeedLevel
604   *   \brief Must return seat heater status: on (true) / off (false).
605   */
606   attribute UInt8 FanSpeedLevel;
607
608   /*!  TargetTemperature
609   *   \brief Must return current setting of the desired temperature (Unit: celsius)
610   */
611   attribute Int8 TargetTemperature;
612
613   /*!  AirConditioning
614   *   \brief Must return current status of the air conditioning system: on (true) or off (false)
615   */
616   attribute Boolean AirConditioning;
617
618   /*!  Heater
619   *   \brief Must return current status of the heating system: on (true) or off (false)
620   */
621   attribute Boolean Heater;
622
623   /*!  SeatHeater
624   *   \brief Must return current status of the seat warmer ( 0: off, 1: least warm, 10: warmest )
625   */
626   attribute UInt8 SeatHeater;
627
628   /*!  SeatCooler
629   *   \brief Must return current status of the seat ventilation ( 0: off, 1: least warm, 10: warmest )
630   */
631   attribute UInt8 SeatCooler;
632
633   /*!  AirRecirculation
634   *   \brief Must return current setting of air recirculation: on (true) or pulling in outside air (false).
635   */
636   attribute Boolean AirRecirculation;
637
638   /*!  SteeringWheelHeater
639   *   \brief Must return current status of steering wheel heater ( 0: off, 1: least warm, 10: warmest ).
640   */
641   attribute UInt8 SteeringWheelHeater;
642 }
643
644 interface org.automotive.WindowStatus extends VehiclePropertyType  {
645
646   /*!  Openness
647    *   \brief Must return window openness percentage (100% fully open, 0% fully closed)
648    *  for the window location see "zone" attribute
649    */
650   attribute UInt16 Openness;
651
652   /*!  Defrost
653    *   \brief Must return the defroster status of the window. On = true, Off = false.
654    *   Deprecated.  Use Defrost interface.  Remove in 0.13.
655    */
656   attribute Boolean Defrost;
657 }
658
659 interface org.automotive.Defrost extends VehiclePropertyType  {
660
661   /*! DefrostWindow
662    *  \brief Must return current status of the defrost switch for mirrors. It can be
663    *  used to send user's request for changing setting.
664    */
665   attribute Boolean DefrostWindow;
666
667   /*! DefrostMirrors
668    *  \brief Must return current status of the defrost switch for window. It can be
669    *  used to send user's request for changing setting.
670    */
671   attribute Boolean DefrostMirrors;
672 }
673
674 interface org.automotive.Sunroof extends VehiclePropertyType  {
675
676   /*!  Openness
677    *   \brief Must return window status for sunroof openness percentage.
678    */
679   attribute UInt16 Openness;
680
681   /*!  Tilt
682    *   \brief Must return tilt status for sunroof percentage.
683    */
684   attribute UInt16 Tilt;
685 }
686
687
688 interface org.automotive.ConvertibleRoof extends VehiclePropertyType  {
689
690   /*!  Openness
691    *   \brief Must return convertible roof openness percentage.
692    */
693    attribute UInt16 Openness;
694 }
695
696
697 interface org.automotive.VehicleId extends VehiclePropertyType  {
698
699   /*!  WMI
700    *   \brief MUST return World Manufacturer Identifier (WMI)
701    *   WMI is defined by SAE ISO 3780:2009.  3 characters.
702    */
703    attribute String WMI readonly
704
705   /*!  VIN
706    *   \brief MUST return Vehicle Identification Number (VIN) as defined by ISO 3779. 17 characters.
707    */
708    attribute String VIN readonly
709 }
710
711
712 interface org.automotive.Size extends VehiclePropertyType  {
713
714   /*!  Width
715    *   \brief MUST return width of vehicle in mm
716    */
717    attribute UInt16 Width readonly
718
719   /*!  Height
720    *   \brief MUST return height of vehicle in mm
721    */
722    attribute UInt16 Height readonly
723
724   /*!  Length
725    *   \brief MUST return length of vehicle in mm
726    */
727    attribute UInt16 Length readonly
728 }
729
730
731 interface org.automotive.FuelInfo extends VehiclePropertyType  {
732   const UInt16 FUELTYPE_GASOLINE = 0;
733   const UInt16 FUELTYPE_HIGH_OCTANE= 1;
734   const UInt16 FUELTYPE_DIESEL = 2;
735   const UInt16 FUELTYPE_ELECTRIC = 3;
736   const UInt16 FUELTYPE_HYDROGEN = 4;
737   const UInt16 REFUELPOSITION_LEFT = 0;
738   const UInt16 REFUELPOSITION_RIGHT= 1;
739   const UInt16 REFUELPOSITION_FRONT = 2;
740   const UInt16 REFUELPOSITION_REAR = 3;
741
742   /*!  Type
743    *   \brief MUST return type of fuel.  integer 0-4 (see
744    */
745    attribute UInt16 Type readonly
746
747   /*!  RefuelPosition
748    *   \brief MUST return position of refuling (see
749    */
750    attribute UInt16 RefuelPosition readonly
751 }
752
753
754 interface org.automotive.VehicleType extends VehiclePropertyType  {
755   const UInt16 VEHICLETYPE_SEDAN = 0;
756   const UInt16 VEHICLETYPE_COUPE= 1;
757   const UInt16 VEHICLETYPE_CABRIOLE = 2;
758   const UInt16 VEHICLETYPE_ROADSTER = 3;
759   const UInt16 VEHICLETYPE_SUV = 4;
760   const UInt16 VEHICLETYPE_TRUCK = 5;
761
762   /*!  Type
763    *   \brief MUST return type of Vehicle.  Integer 0-5 (see
764    */
765    attribute UInt16 Type readonly
766 }
767
768
769 interface org.automotive.Doors extends VehiclePropertyType  {
770
771   /*!  DoorsPerRow
772    *   \brief MUST return Number of doors in each row.  The index represents the row.  Position '0'
773    *   represents the first row, '1' the second row etc.
774    *   Example a common mini-van may have Doors[0] = 2 doors,
775    *   Doors[1] = 1 (side door), Doors[2] = 1 (trunk).
776    */
777    attribute Array<UInt16> DoorsPerRow readonly
778 }
779
780
781 interface org.automotive.WheelInformation extends VehiclePropertyType  {
782
783   /*!  FrontWheelRadius
784    *   \brief MUST return Radius of Front Wheel(s) in mm.
785    */
786    attribute UInt16 FrontWheelRadius readonly
787
788   /*!  RearWheelRadius
789    *   \brief MUST return Radius of Rear Wheel(s) in mm.
790    */
791    attribute UInt16 RearWheelRadius readonly
792
793   /*!  WheelTrack
794    *   \brief MUST return Wheel Track in mm.
795    */
796    attribute UInt16 WheelTrack readonly
797
798   /*!  ABS
799    *   \brief MUST return Antilock Brake System status: on = true, off = false.
800    */
801    attribute Boolean ABS readonly
802 }
803
804
805 interface org.automotive.Odometer extends VehiclePropertyType  {
806
807   /*!  Odometer
808    *   \brief MUST return Distance traveled in km
809    */
810    /// Deprecated. Use DistanceTotal.  Remove in 0.13
811    attribute UInt32 Odometer readonly
812
813   /*!  DistnaceTotal
814    *   \brief MUST return Distance traveled in m
815    */
816    attribute UInt32 DistanceTotal readonly
817
818   /*!  DistanceSinceStart
819    *   \brief MUST return Distance traveled since start in m
820    */
821    attribute UInt32 DistanceSinceStart readonly
822
823 }
824
825
826 interface org.automotive.Fluid extends VehiclePropertyType  {
827
828   /*!  Transmission
829    *   \brief MUST return Transmission fluid level percentage. 0-100.
830    */
831    attribute UInt16 Transmission readonly
832
833   /*!  Brake
834    *   \brief MUST return Brake fluid level percentage. 0-100.
835    */
836    attribute UInt16 Brake readonly
837
838   /*!  Washer
839    *   \brief MUST return Washer fluid level percentage. 0-100.
840    */
841    attribute UInt16 Washer readonly
842 }
843
844 /// Deprecated.  Use BatteryStatus.  Remove in 0.13
845 interface org.automotive.Battery extends VehiclePropertyType  {
846
847   /*!  Voltage
848    *   \brief MUST return battery voltage.
849    */
850    attribute Double Voltage readonly
851
852   /*!  Current
853    *   \brief MUST return battery current in Amperes
854    */
855    attribute Double Current readonly
856 }
857
858 interface org.automotive.BatteryStatus extends VehiclePropertyType  {
859
860   /*!  Voltage
861    *   \brief MUST return battery voltage.
862    */
863    attribute UInt8 Voltage readonly
864
865   /*!  Current
866    *   \brief MUST return battery current in Amperes
867    */
868    attribute UInt8 Current readonly
869
870   /*!  ChargeLevel
871    *   \brief MUST return battery charge level (Unit: percentage, 0%: empty, 100%: full).
872    */
873    attribute UInt8 ChargeLevel readonly
874 }
875
876
877 interface org.automotive.Tire extends VehiclePropertyType  {
878
879   /*!  Pressure
880    *   \brief MUST return tire pressure in kPa.
881    */
882    attribute UInt16 Pressure readonly
883
884   /*!  Temperature
885    *   \brief MUST return left front tire temperature in Celcius.
886    */
887    attribute Int16 Temperature readonly
888
889   /*!  Temperature
890    *   \brief MUST return true if any tire pressure is low: pressure low (true), pressure not low (false).
891    */
892    attribute Boolean PressureLow readonly
893 }
894
895
896 interface org.automotive.SecurityAlert extends VehiclePropertyType  {
897
898   /*!  SecurityAlert
899    *   \brief MUST return
900    */
901    attribute Boolean SecurityAlert readonly
902 }
903
904 /// Deprecated.  Use LightStatus.  remove in 0.13
905 interface org.automotive.ParkingBrake extends VehiclePropertyType  {
906
907   /*!  ParkingBrake
908    *   must return status of parking brake:  Engaged = true, Disengaged = false.
909    */
910    attribute Boolean ParkingBrake readonly
911 }
912
913 /// Deprecated.  Use LightStatus.  remove in 0.13
914 interface org.automotive.ParkingLight extends VehiclePropertyType  {
915
916   /*!  ParkingLight
917    *   must return status of parking light:  Engaged = true, Disengaged = false.
918    */
919    attribute Boolean ParkingLight readonly
920 }
921
922 /// Deprecated.  Use LightStatus.  remove in 0.13
923 interface org.automotive.HazardLight extends VehiclePropertyType  {
924
925   /*!  HazardLight
926    *   must return status of hazard light:  Engaged = true, Disengaged = false.
927    */
928    attribute Boolean HazardLight readonly
929 }
930
931
932 interface org.automotive.AntilockBrakingSystem extends VehiclePropertyType  {
933
934   /*!  AntilockBrakingSystem
935    *   \brief MUST return whether Antilock Braking System is Idle (false) or Engaged (true)
936    */
937    attribute Boolean AntilockBrakingSystem readonly
938 }
939
940
941 interface org.automotive.TractionControlSystem extends VehiclePropertyType  {
942
943   /*!  TractionControlSystem
944    *   \brief MUST return whether Traction Control System is Off (false) or On (true)
945    */
946    attribute Boolean TractionControlSystem readonly
947 }
948
949
950 interface org.automotive.VehicleTopSpeedLimit extends VehiclePropertyType  {
951
952   /*!  VehicleTopSpeedLimit
953    *   \brief MUST returns top rated speed in km/h. 0 = no limit
954    */
955    attribute UInt16 VehicleTopSpeedLimit readonly
956 }
957
958
959 interface org.automotive.AirbagStatus extends VehiclePropertyType  {
960
961   const UInt16 AIRBAGSTATUS_INACTIVE = 0;
962   const UInt16 AIRBAGSTATUS_ACTIVE = 1;
963   const UInt16 AIRBAGSTATUS_DEPLOYED = 2;
964
965   /*!  AirbagStatus
966    *   \brief MUST returns Airbag status (byte) (see AIRBAGSTATUS_*)
967    */
968    attribute UInt16 AirbagStatus readonly
969 }
970
971 enumeration AirbagStatus {
972   inactive = 0,
973   active = 1,
974   deployed = 2
975 }
976
977 /*!
978  * Deprecated.  Use "Door".  Remove in 0.13
979  */
980 interface org.automotive.DoorStatus extends VehiclePropertyType  {
981
982
983
984   /*!  DoorStatus
985    *   \brief MUST returns Door status (byte).
986    * CLOSED = 0
987    * OPEN = 1
988    * AJAR = 2
989    */
990    attribute UInt16 DoorStatus readonly
991
992   /*!  DoorLockStatus
993    *   \brief MUST returns Door status (bool locked = true, unlocked = false).
994    */
995   attribute Boolean DoorLockStatus;
996
997   /*!  ChildLockStatus
998    *   \brief MUST returns Child lock status of rear doors.  active = true, inactive = false.
999    *   Setting this to 'true' will prevent the rear doors from being opened
1000    *   from the inside.
1001    */
1002   attribute Boolean ChildLockStatus;
1003 }
1004
1005 enumeration DoorStatus {
1006   open = "open",
1007   ajar = "ajar",
1008   closed = "closed"
1009 }
1010
1011 interface org.automotive.Door extends VehiclePropertyType  {
1012
1013   /*!  Status
1014    *   \brief MUST returns Door status (byte).  See DOORSTATUS_*
1015    */
1016    attribute DoorStatus Status readonly
1017
1018   /*!  Lock
1019    *   \brief MUST returns Door status (bool locked = true, unlocked = false).
1020    */
1021   attribute Boolean Lock;
1022
1023   /*!  ChildLock
1024    *   \brief MUST returns Child lock status of rear doors.  active = true, inactive = false.
1025    *   Setting this to 'true' will prevent the rear doors from being opened
1026    *   from the inside.
1027    */
1028   attribute Boolean ChildLock;
1029 }
1030
1031
1032 interface org.automotive.SeatBelt extends VehiclePropertyType  {
1033
1034   /*! Status
1035    *  \brief MUST return Seat Belt Status (bool: Fasten = true, Unfastened = false)
1036    */
1037    attribute Boolean Status readonly
1038 }
1039
1040
1041 interface org.automotive.OccupantStatus extends VehiclePropertyType  {
1042
1043   /*!  OccupantStatus
1044    *   \brief MUST returns status of Occupant (byte, see
1045    */
1046    attribute UInt16 OccupantStatus readonly
1047 }
1048
1049
1050 interface org.automotive.ObstacleDistance extends VehiclePropertyType  {
1051
1052   /*!  ObstacleDistance
1053    *   \brief MUST returns Distance Sensor distance (Double) in m.
1054    */
1055    attribute Double ObstacleDistance readonly
1056 }
1057
1058
1059 interface org.automotive.NightMode extends VehiclePropertyType {
1060
1061   /*!
1062    * \brief MUST return whether or not the system is in NightMode or not.  True = Night time, False = Day time
1063    * Deprecated.  Will be removed in 0.13. Use "Mode"
1064    */
1065    attribute Boolean NightMode readonly
1066
1067   /*!
1068    * \brief MUST return whether or not the system is in NightMode or not.  True = Night time, False = Day time
1069    */
1070    attribute Boolean Mode readonly
1071 }
1072
1073
1074 interface org.automotive.DrivingMode extends VehiclePropertyType {
1075
1076   /*!
1077   * \brief MUST return whether or not the system is in DrivingMode or not.  1 = Driving, 0 = Not Driving
1078   */
1079    attribute UInt16 DrivingMode readonly
1080
1081   /*!
1082   * \brief must return true if vehicle is in driving mode
1083   */
1084    attribute Boolean Mode readonly
1085 }
1086
1087
1088 interface org.automotive.KeyId extends VehiclePropertyType {
1089
1090   /*!
1091   * \brief MUST return
1092   */
1093    attribute String KeyId readonly
1094 }
1095
1096 interface org.automotive.Language extends VehiclePropertyType {
1097
1098   /*!
1099   * \brief MUST return
1100   */
1101    attribute String Language readonly
1102 }
1103
1104
1105 interface org.automotive.MeasurementSystem extends VehiclePropertyType {
1106
1107   /*!
1108   * \brief MUST return 0 = Metric, 1 = ImperialUS, 2 = ImperialUK
1109   */
1110    attribute UInt16 MeasurementSystem readonly
1111 }
1112
1113
1114 interface org.automotive.MirrorSetting extends VehiclePropertyType {
1115
1116   /*!
1117   * \brief MUST return
1118   */
1119    attribute UInt16 Pan readonly
1120    attribute UInt16 Tilt readonly
1121 }
1122
1123
1124 interface org.automotive.SeatPosition extends VehiclePropertyType {
1125
1126   /*!
1127   * \brief MUST return
1128   */
1129    attribute UInt16 Recline readonly
1130
1131     /*!
1132   * \brief MUST return
1133   */
1134    attribute UInt16 Slide readonly
1135
1136   /*!
1137   * \brief MUST return
1138   */
1139    attribute UInt16 CushionHeight readonly
1140
1141   /*!
1142   * \brief MUST return
1143   */
1144    attribute UInt16 Headrest readonly
1145
1146   /*!
1147   * \brief MUST return
1148   */
1149    attribute UInt16 BackCushion readonly
1150
1151   /*!
1152   * \brief MUST return
1153   */
1154    attribute UInt16 SideCushion readonly
1155 }
1156
1157
1158 interface org.automotive.SteeringWheelPosition extends VehiclePropertyType {
1159
1160   /*!
1161   * \brief MUST return
1162   */
1163    attribute UInt16 Tilt readonly
1164
1165   /*!
1166   * \brief MUST return
1167   */
1168    attribute UInt16 Slide readonly
1169 }
1170
1171
1172 interface org.automotive.DashboardIllumination extends VehiclePropertyType {
1173
1174   /*!
1175   * \brief MUST return
1176   */
1177    attribute UInt16 DashboardIllumination readonly
1178 }
1179
1180
1181 interface org.automotive.GeneratedVehicleSoundMode extends VehiclePropertyType {
1182
1183   /*!
1184   * \brief MUST return Sound Mode: 0 = Normal, 1 = Quiet, 2 = Sportive
1185   */
1186    attribute UInt16 GeneratedVehicleSoundMode readonly
1187 }
1188
1189
1190 /*! SteeringWheelAngle
1191  *\brief
1192  * Deprecated.  Use SteeringWheel
1193  */
1194 interface org.automotive.SteeringWheelAngle extends VehiclePropertyType {
1195
1196   /*!
1197   * \brief MUST return angle of the steering wheel. 0-359 degrees.
1198   */
1199    attribute UInt16 SteeringWheelAngle readonly
1200 }
1201
1202 interface org.automotive.SteeringWheel extends VehiclePropertyType {
1203
1204   /*!
1205   * \brief MUST return angle of steering wheel off centerline (Unit: degrees -:degrees to the left, +:degrees to the right)
1206   */
1207    attribute Int16 Angle readonly
1208 }
1209
1210
1211 interface org.automotive.ButtoneEvent extends VehiclePropertyType {
1212
1213   /*!
1214   * \brief MUST return button event:
1215   * NoButton =0
1216   * PlayButton = 1,
1217   * SkipButton = 1 << 1,
1218   * PrevButton = 1 << 2,
1219   * PauseButton = 1 << 3,
1220   * Preset1Button = 1 << 4,
1221   * Preset2Button = 1 << 5,
1222   * Preset3Button = 1 << 6,
1223   * Preset4Button = 1 << 7,
1224   * StopButton = 1 << 8,
1225   * NavigateUpButton = 1 << 9,
1226   * NavigateDownButton = 1 << 10,
1227   * NavigateLeftButton = 1 << 11,
1228   * NavigateRightButton = 1 << 12
1229   */
1230    attribute UInt32 ButtonEvent readonly
1231 }
1232
1233
1234 interface org.automotive.DriverId extends VehiclePropertyType {
1235
1236   /*!
1237   * \brief MUST return driver ID.  Driver Id is an abstract and can be determined
1238   * from multiple sources including bluetooth, key, key fob, etc.
1239   */
1240    attribute String DriverId readonly
1241 }
1242
1243 interface org.automotive.ThrottlePosition extends VehiclePropertyType {
1244
1245   /*!
1246   * \brief MUST return throttle position as a percentage (Unit: percentage, 0%: closed, 100%: fully open)
1247   */
1248    attribute Uint8 Value readonly
1249 }
1250
1251 interface org.automotive.EngineCoolant extends VehiclePropertyType {
1252
1253   /*!
1254   * \brief MUST return engine coolant level (Unit: percentage 0%: empty, 100%: full)
1255   */
1256    attribute Uint8 Level readonly
1257
1258   /*!
1259   * \brief MUST return engine coolant temperature (Unit: celcius)
1260   */
1261    attribute Uint8 Temperature readonly
1262 }
1263
1264 }
1265