cea549800274ee9a554dce6d8757679a8f801ac4
[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
972
973 /*!
974  * Deprecated.  Use "Door".  Remove in 0.13
975  */
976 interface org.automotive.DoorStatus extends VehiclePropertyType  {
977
978
979
980   /*!  DoorStatus
981    *   \brief MUST returns Door status (byte).
982    * CLOSED = 0
983    * OPEN = 1
984    * AJAR = 2
985    */
986    attribute UInt16 DoorStatus readonly
987
988   /*!  DoorLockStatus
989    *   \brief MUST returns Door status (bool locked = true, unlocked = false).
990    */
991   attribute Boolean DoorLockStatus;
992
993   /*!  ChildLockStatus
994    *   \brief MUST returns Child lock status of rear doors.  active = true, inactive = false.
995    *   Setting this to 'true' will prevent the rear doors from being opened
996    *   from the inside.
997    */
998   attribute Boolean ChildLockStatus;
999 }
1000
1001 enumeration DoorStatus {
1002   open = "open",
1003   ajar = "ajar",
1004   closed = "closed"
1005 }
1006
1007 interface org.automotive.Door extends VehiclePropertyType  {
1008
1009   /*!  Status
1010    *   \brief MUST returns Door status (byte).  See DOORSTATUS_*
1011    */
1012    attribute DoorStatus Status readonly
1013
1014   /*!  Lock
1015    *   \brief MUST returns Door status (bool locked = true, unlocked = false).
1016    */
1017   attribute Boolean Lock;
1018
1019   /*!  ChildLock
1020    *   \brief MUST returns Child lock status of rear doors.  active = true, inactive = false.
1021    *   Setting this to 'true' will prevent the rear doors from being opened
1022    *   from the inside.
1023    */
1024   attribute Boolean ChildLock;
1025 }
1026
1027
1028 interface org.automotive.SeatBelt extends VehiclePropertyType  {
1029
1030   /*! Status
1031    *  \brief MUST return Seat Belt Status (bool: Fasten = true, Unfastened = false)
1032    */
1033    attribute Boolean Status readonly
1034 }
1035
1036
1037 interface org.automotive.OccupantStatus extends VehiclePropertyType  {
1038
1039   /*!  OccupantStatus
1040    *   \brief MUST returns status of Occupant (byte, see
1041    */
1042    attribute UInt16 OccupantStatus readonly
1043 }
1044
1045
1046 interface org.automotive.ObstacleDistance extends VehiclePropertyType  {
1047
1048   /*!  ObstacleDistance
1049    *   \brief MUST returns Distance Sensor distance (Double) in m.
1050    */
1051    attribute Double ObstacleDistance readonly
1052 }
1053
1054
1055 interface org.automotive.NightMode extends VehiclePropertyType {
1056
1057   /*!
1058    * \brief MUST return whether or not the system is in NightMode or not.  True = Night time, False = Day time
1059    * Deprecated.  Will be removed in 0.13. Use "Mode"
1060    */
1061    attribute Boolean NightMode readonly
1062
1063   /*!
1064    * \brief MUST return whether or not the system is in NightMode or not.  True = Night time, False = Day time
1065    */
1066    attribute Boolean Mode readonly
1067 }
1068
1069
1070 interface org.automotive.DrivingMode extends VehiclePropertyType {
1071
1072   /*!
1073   * \brief MUST return whether or not the system is in DrivingMode or not.  1 = Driving, 0 = Not Driving
1074   */
1075    attribute UInt16 DrivingMode readonly
1076
1077   /*!
1078   * \brief must return true if vehicle is in driving mode
1079   */
1080    attribute Boolean Mode readonly
1081 }
1082
1083
1084 interface org.automotive.KeyId extends VehiclePropertyType {
1085
1086   /*!
1087   * \brief MUST return
1088   */
1089    attribute String KeyId readonly
1090 }
1091
1092 interface org.automotive.Language extends VehiclePropertyType {
1093
1094   /*!
1095   * \brief MUST return
1096   */
1097    attribute String Language readonly
1098 }
1099
1100
1101 interface org.automotive.MeasurementSystem extends VehiclePropertyType {
1102
1103   /*!
1104   * \brief MUST return 0 = Metric, 1 = ImperialUS, 2 = ImperialUK
1105   */
1106    attribute UInt16 MeasurementSystem readonly
1107 }
1108
1109
1110 interface org.automotive.MirrorSetting extends VehiclePropertyType {
1111
1112   /*!
1113   * \brief MUST return
1114   */
1115    attribute UInt16 Pan readonly
1116    attribute UInt16 Tilt readonly
1117 }
1118
1119
1120 interface org.automotive.SeatPosition extends VehiclePropertyType {
1121
1122   /*!
1123   * \brief MUST return
1124   */
1125    attribute UInt16 Recline readonly
1126
1127     /*!
1128   * \brief MUST return
1129   */
1130    attribute UInt16 Slide readonly
1131
1132   /*!
1133   * \brief MUST return
1134   */
1135    attribute UInt16 CushionHeight readonly
1136
1137   /*!
1138   * \brief MUST return
1139   */
1140    attribute UInt16 Headrest readonly
1141
1142   /*!
1143   * \brief MUST return
1144   */
1145    attribute UInt16 BackCushion readonly
1146
1147   /*!
1148   * \brief MUST return
1149   */
1150    attribute UInt16 SideCushion readonly
1151 }
1152
1153
1154 interface org.automotive.SteeringWheelPosition extends VehiclePropertyType {
1155
1156   /*!
1157   * \brief MUST return
1158   */
1159    attribute UInt16 Tilt readonly
1160
1161   /*!
1162   * \brief MUST return
1163   */
1164    attribute UInt16 Slide readonly
1165 }
1166
1167
1168 interface org.automotive.DashboardIllumination extends VehiclePropertyType {
1169
1170   /*!
1171   * \brief MUST return
1172   */
1173    attribute UInt16 DashboardIllumination readonly
1174 }
1175
1176
1177 interface org.automotive.GeneratedVehicleSoundMode extends VehiclePropertyType {
1178
1179   /*!
1180   * \brief MUST return Sound Mode: 0 = Normal, 1 = Quiet, 2 = Sportive
1181   */
1182    attribute UInt16 GeneratedVehicleSoundMode readonly
1183 }
1184
1185
1186 /*! SteeringWheelAngle
1187  *\brief
1188  * Deprecated.  Use SteeringWheel
1189  */
1190 interface org.automotive.SteeringWheelAngle extends VehiclePropertyType {
1191
1192   /*!
1193   * \brief MUST return angle of the steering wheel. 0-359 degrees.
1194   */
1195    attribute UInt16 SteeringWheelAngle readonly
1196 }
1197
1198 interface org.automotive.SteeringWheel extends VehiclePropertyType {
1199
1200   /*!
1201   * \brief MUST return angle of steering wheel off centerline (Unit: degrees -:degrees to the left, +:degrees to the right)
1202   */
1203    attribute Int16 Angle readonly
1204 }
1205
1206
1207 interface org.automotive.ButtoneEvent extends VehiclePropertyType {
1208
1209   /*!
1210   * \brief MUST return button event:
1211   * NoButton =0
1212   * PlayButton = 1,
1213   * SkipButton = 1 << 1,
1214   * PrevButton = 1 << 2,
1215   * PauseButton = 1 << 3,
1216   * Preset1Button = 1 << 4,
1217   * Preset2Button = 1 << 5,
1218   * Preset3Button = 1 << 6,
1219   * Preset4Button = 1 << 7,
1220   * StopButton = 1 << 8,
1221   * NavigateUpButton = 1 << 9,
1222   * NavigateDownButton = 1 << 10,
1223   * NavigateLeftButton = 1 << 11,
1224   * NavigateRightButton = 1 << 12
1225   */
1226    attribute UInt32 ButtonEvent readonly
1227 }
1228
1229
1230 interface org.automotive.DriverId extends VehiclePropertyType {
1231
1232   /*!
1233   * \brief MUST return driver ID.  Driver Id is an abstract and can be determined
1234   * from multiple sources including bluetooth, key, key fob, etc.
1235   */
1236    attribute String DriverId readonly
1237 }
1238
1239 interface org.automotive.ThrottlePosition extends VehiclePropertyType {
1240
1241   /*!
1242   * \brief MUST return throttle position as a percentage (Unit: percentage, 0%: closed, 100%: fully open)
1243   */
1244    attribute Uint8 Value readonly
1245 }
1246
1247 interface org.automotive.EngineCoolant extends VehiclePropertyType {
1248
1249   /*!
1250   * \brief MUST return engine coolant level (Unit: percentage 0%: empty, 100%: full)
1251   */
1252    attribute Uint8 Level readonly
1253
1254   /*!
1255   * \brief MUST return engine coolant temperature (Unit: celcius)
1256   */
1257    attribute Uint8 Temperature readonly
1258 }
1259
1260 }
1261