added missing Vehicle.idl 55/12955/1
authorKevron Rees <kevron.m.rees@intel.com>
Tue, 26 Nov 2013 18:31:04 +0000 (10:31 -0800)
committerKevron Rees <kevron.m.rees@intel.com>
Tue, 26 Nov 2013 18:31:04 +0000 (10:31 -0800)
Change-Id: I1a92cff6e951833537eb262c05a9f65c5bf8fe51

src/Vehicle/Vehicle.idl [new file with mode: 0644]

diff --git a/src/Vehicle/Vehicle.idl b/src/Vehicle/Vehicle.idl
new file mode 100644 (file)
index 0000000..75e5435
--- /dev/null
@@ -0,0 +1,883 @@
+/**
+
+
+Details. 
+
+\def-api-feature http://tizen.org/api/vehicle 
+\brief Allows access to the vehicle API
+
+
+*/
+
+
+[NoInterfaceObject]
+interface VehicleManagerObject {
+    readonly attribute Vehicle vehicle;
+};
+Tizen implements VehicleManagerObject;
+
+
+[NoInterfaceObject]
+interface VehiclePropertyType: Event { 
+       /**  Time
+        *  \brief time at which the vehicle generated the property
+        **/
+        attribute DOMTimeStamp time;
+        attribute short zone;
+        attribute DOMString source;
+};
+
+[NoInterfaceObject]
+interface VehiclePropertyError   { 
+       const unsigned short PERMISSION_DENIED = 1; 
+       const unsigned short PROPERTY_UNAVAILABLE = 2; 
+       const unsigned short TIMEOUT = 3; 
+       const unsigned short UNKNOWN = 10;
+       
+       /**  code
+        *   MUST return error code. 
+        **/
+        attribute unsigned short code;
+
+       /**  message
+        *   MUST return error message 
+        **/
+        attribute DOMString message;
+};
+
+callback VehiclePropertyCallback = void (VehiclePropertyType value); 
+
+callback VehiclePropertyErrorCallback = void (VehiclePropertyError error); 
+
+callback VehiclePropertyListCallback = void (sequence<VehiclePropertyType> values); 
+
+callback SupportedPropertiesCallback = void (sequence<DOMString> properties);
+
+
+[NoInterfaceObject]
+interface Vehicle  { 
+
+       const unsigned short ZONE_None = 0;
+       const unsigned short ZONE_Front = 1;
+       const unsigned short ZONE_Middle = 0x10;
+       const unsigned short ZONE_Right = 0x100;
+       const unsigned short ZONE_Left = 0x1000;
+       const unsigned short ZONE_Rear = 0x10000;
+       const unsigned short ZONE_Center = 0x10000;
+
+       /**
+        *  \brief returns supported object types
+        **/
+       sequence<DOMString> supported();
+
+       /**
+        *  \brief fetch the current value for 'objectType'.  
+        *  \param objectType is the requested property to be retrieved.
+        *  \param zone specify the zone in which this object type is in
+        *  \return object representing the requested 'objectType'
+        **/
+       any get(DOMString objectType, optional short zone);
+
+       /** \brief subscribe to the given property and get callbacks when it changes
+        *  \param objectType property to set
+        *  \param successCallback callback will be called when the "objectType" changes
+        *  \param errorCallback callback if error has been called.
+        **/
+
+       void subscribe(DOMString objectType, VehiclePropertyCallback successCallback, optional unsigned short zone, optional VehiclePropertyErrorCallback errorCallback);
+
+       /**
+        *  \brief set the given objectType to value
+        *  \param objectType object type to set
+        *  \param value value to set, should contain zone information ie "zone" : 0
+        *  \param errorCallback callback if error has been called.
+        **/
+       void set(DOMString objectType, VehiclePropertyType value, optional VehiclePropertyErrorCallback errorCallback);
+
+       /**
+        *  \brief get values for a given objectType within a certain past time period between 'startTime' and 'endTime'
+        *  \param objectType object type to request
+        *  \param zone in which the objectType is located or 0 if no zone.
+        *  \param startTime starting period of time.
+        *  \param endTime ending period of time.
+        *  \param successCallback Callback with the result of the method call
+        *  \param errorCallback Callback if an error has occurred.
+        **/
+       void getHistory(DOMString objectType, unsigned short zone, Date startTime, Date endTime, VehiclePropertyListCallback successCallback, optional VehiclePropertyErrorCallback errorCallback);
+
+       sequence<unsigned integer> listZones(DOMString objectType);
+};
+
+[NoInterfaceObject]
+interface VehicleSpeed : VehiclePropertyType  { 
+
+       /**  VehicleSpeed
+        *   \brief  Must return Vehicle Speed in kilometers per hour.
+        **/
+        attribute unsigned long vehicleSpeed;
+};
+
+[NoInterfaceObject]
+interface EngineSpeed : VehiclePropertyType  { 
+
+       /**  EngineSpeed
+        *   \brief  Must return Engine Speed in rotations per minute.
+        **/
+        attribute unsigned long engineSpeed;
+};
+
+[NoInterfaceObject]
+interface VehiclePowerMode : VehiclePropertyType  { 
+       const unsigned short VEHICLEPOWERMODE_OFF = 0;
+       const unsigned short VEHICLEPOWERMODE_ACCESSORY1 = 1;
+       const unsigned short VEHICLEPOWERMODE_ACCESSORY2 = 2;
+       const unsigned short VEHICLEPOWERMODE_RUN = 3;
+
+       /**  VehiclePowerMode
+        *   \brief  Must return Vehicle Power mode (see VEHICLEPOWERMODE)    
+        **/
+        attribute octet vehiclePowerMode;
+};
+
+[NoInterfaceObject]
+interface TripMeter : VehiclePropertyType  { 
+
+       /**  TripMeters
+        *   \brief  Must return trip meters.  Changing any items in the array will reset the item's value to '0'.
+        **/
+        attribute sequence<unsigned long> tripMeters;
+};
+
+[NoInterfaceObject]
+interface Acceleration : VehiclePropertyType  { 
+
+       /**  X
+        *   \brief  Must return acceleration on the "X" axis as 1/1000 G (gravitational force).    
+        **/
+        attribute unsigned long x;
+
+       /**  Y
+        *   \brief  Must return acceleration on the "Y" axis as 1/1000 G (gravitational force).    
+        **/
+        attribute unsigned long y;
+
+       /**  Z
+        *   \brief  Must return acceleration on the "Z" axis as 1/1000 G (gravitational force).    
+        **/
+        attribute unsigned long z;
+};
+
+[NoInterfaceObject]
+interface Transmission : VehiclePropertyType  { 
+       const unsigned short TRANSMISSIONPOSITION_NEUTRAL = 0;    
+       const unsigned short TRANSMISSIONPOSITION_FIRST = 1;    
+       const unsigned short TRANSMISSIONPOSITION_SECOND = 2;    
+       const unsigned short TRANSMISSIONPOSITION_THIRD = 3;    
+       const unsigned short TRANSMISSIONPOSITION_FORTH = 4;    
+       const unsigned short TRANSMISSIONPOSITION_FIFTH = 5;    
+       const unsigned short TRANSMISSIONPOSITION_SIXTH = 6;    
+       const unsigned short TRANSMISSIONPOSITION_SEVENTH = 7;    
+       const unsigned short TRANSMISSIONPOSITION_EIGHTH = 8;    
+       const unsigned short TRANSMISSIONPOSITION_NINTH = 9;    
+       const unsigned short TRANSMISSIONPOSITION_TENTH = 10;    
+       const unsigned short TRANSMISSIONPOSITION_CVT = 64;    
+       const unsigned short TRANSMISSIONPOSITION_REVERSE = 128;    
+       const unsigned short TRANSMISSIONPOSITION_PARK = 255;    
+       const unsigned short TRANSMISSIONMODE_NORMAL = 0;    
+       const unsigned short TRANSMISSIONMODE_SPORT = 1;    
+       const unsigned short TRANSMISSIONMODE_ECONOMY = 2;    
+       const unsigned short TRANSMISSIONMODE_OEMCUSTOM1 = 3;    
+       const unsigned short TRANSMISSIONMODE_OEMCUSTOM2 = 4;    
+
+       /**  GearPosition
+        *   \brief  Must return transmission gear position (see TRANSMISSIONPOSITION)    
+        **/
+        attribute octet gearPosition;
+
+       /**  Mode
+        *   \brief  Must return transmission Mode (see 
+        **/
+        attribute octet mode;
+};
+
+[NoInterfaceObject]
+interface CruiseControlStatus : VehiclePropertyType  { 
+
+       /**  Activated
+        *   \brief  Must return whether or not the Cruise Control system is active (true) or inactive (false)    
+        **/
+        attribute boolean activated;
+
+       /**  Speed
+        *   \brief  Must return target Cruise Control speed in kilometers per hour (kph).    
+        **/
+        attribute unsigned short speed;
+};
+
+[NoInterfaceObject]
+interface WheelBrake : VehiclePropertyType  { 
+
+       /**  Engaged
+        *   \brief  Must return Wheel Brake status: Engaged = true, disengaged = false    
+        **/
+        attribute boolean engaged;
+};
+
+[NoInterfaceObject]
+interface LightStatus : VehiclePropertyType  { 
+
+       /**  Head
+        *   \brief  Must return headlight status: on = true, off = false.    
+        **/
+        attribute boolean head;
+
+       /**  RightTurn
+        *   \brief  Must return right turn signal status: on = true, off = false.    
+        **/
+        attribute boolean rightTurn;
+
+       /**  LeftTurn
+        *   \brief  Must return left turn signal status: on = true, off = false.    
+        **/
+        attribute boolean leftTurn;
+
+       /**  Brake
+        *   \brief  Must return  brake signal light status: on = true, off = false.    
+        **/
+        attribute boolean brake;
+
+       /**  Fog
+        *   \brief  Must return fog light status: on = true, off = false.    
+        **/
+        attribute boolean fog;
+
+       /**  Hazard
+        *   \brief  Must return hazard light status: on = true, off = false.    
+        **/
+        attribute boolean hazard;
+
+       /**  Parking
+        *   \brief  Must return parking light status: on = true, off = false.    
+        **/
+        attribute boolean parking;
+
+       /**  HighBeam
+        *   \brief  Must return high beam status: on = true, off = false.    
+        **/
+        attribute boolean highBeam;
+};
+
+[NoInterfaceObject]
+interface InteriorLightStatus : VehiclePropertyType  { 
+
+       /**  Passenger
+        *   \brief  Must return passenger interior light status: on = true, off = false    
+        **/
+        attribute boolean passenger;
+
+       /**  Driver
+        *   \brief  Must return driver interior light status: on = true, off = false    
+        **/
+        attribute boolean driver;
+
+       /**  Center
+        *   \brief  Must return center interior light status: on = true, off = false    
+        **/
+        attribute boolean center;
+};
+
+[NoInterfaceObject]
+interface Horn : VehiclePropertyType  { 
+
+       /**  On
+        *   \brief  Must return horn status: on = true, off = false    
+        **/
+        attribute boolean on;
+};
+
+[NoInterfaceObject]
+interface Fuel : VehiclePropertyType  { 
+
+       /**  Level
+        *   \brief  Must return fuel level as a percentage of fullness.    
+        **/
+        attribute unsigned short level;
+
+       /**  Range
+        *   \brief  Must return estimated fuel range in kilometers.    
+        **/
+        attribute unsigned short range;
+
+       /**  InstantConsumption
+        *   \brief  Must return instant fuel consumption in milliliters of fuel per second.    
+        **/
+        attribute unsigned short instantConsumption;
+
+       /**  InstantEconomy
+        *   \brief  Must return instant fuel 'economy' in kilometers per liter of fuel.    
+        **/
+        attribute unsigned short instantEconomy;
+
+       /**  AverageEconomy
+        *   \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'    
+        **/
+        attribute unsigned short averageEconomy;
+};
+
+[NoInterfaceObject]
+interface EngineOil : VehiclePropertyType  { 
+
+       /**  Remaining
+        *   \brief  Must return remaining engine oil as percentage of fullness.    
+        **/
+        attribute unsigned short remaining;
+
+       /**  Temperature
+        *   \brief  Must return Engine Oil Temperature in Celcius.    
+        **/
+        attribute long temperature;
+
+       /**  Pressure
+        *   \brief  Must return Engine Oil Pressure in kPa.    
+        **/
+        attribute unsigned short pressure;
+};
+
+[NoInterfaceObject]
+interface Location : VehiclePropertyType  { 
+
+       /**  Latitude
+        *   \brief  Must return latitude in Deg.Min (-180, +180)    
+        **/
+        attribute double latitude;
+
+       /**  Longitude
+        *   \brief  Must return longitude in Deg.Min (-90, +90)    
+        **/
+        attribute double longitude;
+
+       /**  Altitude
+        *   \brief  Must return altitude in meters above sea-level (0).    
+        **/
+        attribute double altitude;
+
+       /**  Direction
+        *   \brief  Must return direction in Degrees  (0-360)    
+        **/
+        attribute unsigned short direction;
+};
+
+[NoInterfaceObject]
+interface ExteriorBrightness : VehiclePropertyType  { 
+
+       /**  ExteriorBrightness
+        *   \brief Must return the brightness outside the vehicle in lux.    
+        **/
+        attribute unsigned long exteriorBrightness;
+};
+
+[NoInterfaceObject]
+interface Temperature : VehiclePropertyType  { 
+
+       /**  Interior
+        *   \brief Must return the temperature of the interior of the vehicle in celcius.    
+        **/
+        attribute short interior;
+
+       /**  Exterior
+        *   \brief Must return the temperature of the exterior of the vehicle in celcius.    
+        **/
+        attribute short  exterior;
+};
+
+[NoInterfaceObject]
+interface RainSensor : VehiclePropertyType  { 
+
+       /**  RainSensor
+        *   \brief Must return level of rain intensity 0: No Rain - 10: Heaviest Rain.    
+        **/
+        attribute unsigned short rainSensor;
+};
+
+[NoInterfaceObject]
+interface WindshieldWiper : VehiclePropertyType  { 
+       const unsigned short WIPERSPEED_OFF = 0;    
+       const unsigned short WIPERSPEED_SLOWEST= 1;    
+       const unsigned short WIPERSPEED_FASTEST = 5;    
+       const unsigned short WIPERSPEED_AUTO = 10;    
+
+       /**  WindshieldWiper
+        *   \brief Must return Level of windshield whiper speed (see WIPERSPEED)    
+        **/
+        attribute unsigned short windshieldWiper;
+};
+
+dictionary DefrostDictionary {
+       unsigned short window;
+       boolean defrost;
+};
+
+[NoInterfaceObject]
+interface HVAC : VehiclePropertyType  { 
+       const unsigned short AIRFLOWDIRECTION_FRONTPANEL = 0;
+       const unsigned short AIRFLOWDIRECTION_FLOORDUCT= 1;
+       const unsigned short AIRFLOWDIRECTION_FRONT = 0x02;
+       const unsigned short AIRFLOWDIRECTION_DEFROSTER = 0x04;
+
+       /**  AirflowDirection
+        *   \brief Must return airflow direction.  See 
+        **/
+       attribute unsigned short airflowDirection;
+
+       /**  FanSpeed
+        *   \brief Must return speed of the fan (0-7)    
+        **/
+       attribute unsigned short fanSpeed;
+
+       /**  TargetTemperature
+        *   \brief Must return target desired temperature in celcius.    
+        **/
+       attribute unsigned short targetTemperature;
+
+       /**  AirConditioning
+        *   \brief Must return air conditioning on (true) / off (false).    
+        **/
+       attribute boolean airConditioning;
+
+       /**  AirRecirculation
+        *   \brief Must return air recirculation on (true) / off (false).    
+        **/
+       attribute boolean airRecirculation;
+
+       /**  Heater
+        *   \brief Must return heater on (true) / off (false).    
+        **/
+       attribute boolean heater;
+
+       /**  Defrost
+        *   \brief Must return the defrost status of all windows equiped with defrosters.  This will return a dictionary of DefrostDictionary that represents    
+        *   \brief each window and its defrost status.    
+        **/
+       attribute DefrostDictionary defrost;
+
+       /**  SteeringWheelHeater
+        *   \brief Must return air recirculation on (true) / off (false).    
+        **/
+       attribute boolean steeringWheelHeater;
+
+       /**  SeatHeater
+        *   \brief Must return seat heater status: on (true) / off (false).    
+        **/
+       attribute boolean seatHeater;
+
+       /**  SeatCooler
+        *   \brief Must return seat heater status: on (true) / off (false).    
+        **/
+       attribute boolean seatCooler;
+};
+
+[NoInterfaceObject]
+interface WindowStatus : VehiclePropertyType  { 
+       const unsigned short WINDOWLOCATION_DRIVER= 0;    
+       const unsigned short WINDOWLOCATION_PASSENGER = 1;    
+       const unsigned short WINDOWLOCATION_LEFTREAR = 2;    
+       const unsigned short WINDOWLOCATION_RIGHTREAR = 3;    
+       const unsigned short WINDOWLOCATION_REAR = 4;    
+
+       /**  WindowStatus
+        *   \brief Must return window status for each window location.  object returned is a    
+        *   dictionary { unsigned short windowlocation, unsigned short percentage opened }    
+        **/
+       attribute object WindowStatus;
+};
+
+[NoInterfaceObject]
+interface Sunroof : VehiclePropertyType  { 
+
+       /**  Openness
+        *   \brief Must return window status for sunroof openness percentage.    
+        **/
+       attribute unsigned short openness;
+
+       /**  Tilt
+        *   \brief Must return tilt status for sunroof percentage.    
+        **/
+       attribute unsigned short tilt;
+};
+
+[NoInterfaceObject]
+interface ConvertibleRoof : VehiclePropertyType  { 
+
+       /**  Openness
+        *   \brief Must return window status for sunroof openness percentage.    
+        **/
+       attribute unsigned short openness;
+};
+
+[NoInterfaceObject]
+interface VehicleId : VehiclePropertyType  { 
+
+       /**  WMI
+        *   \brief MUST return World Manufacturer Identifier (WMI)    
+        *   WMI is defined by SAE ISO 3780:2009.  3 characters.    
+        **/
+        attribute DOMString WMI;
+
+       /**  VIN
+        *   \brief MUST return Vehicle Identification Number (VIN) as defined by ISO 3779. 17 characters.    
+        **/
+        attribute DOMString VIN;
+};
+
+[NoInterfaceObject]
+interface Size : VehiclePropertyType  { 
+
+       /**  Width
+        *   \brief MUST return width of vehicle in mm    
+        **/
+        attribute unsigned long width;
+
+       /**  Height
+        *   \brief MUST return height of vehicle in mm    
+        **/
+        attribute unsigned long height;
+
+       /**  Length
+        *   \brief MUST return length of vehicle in mm    
+        **/
+        attribute unsigned long length;
+};
+
+[NoInterfaceObject]
+interface FuelInfo : VehiclePropertyType  { 
+       const unsigned short FUELTYPE_GASOLINE = 0;    
+       const unsigned short FUELTYPE_HIGH_OCTANE= 1;    
+       const unsigned short FUELTYPE_DIESEL = 2;    
+       const unsigned short FUELTYPE_ELECTRIC = 3;    
+       const unsigned short FUELTYPE_HYDROGEN = 4;    
+       const unsigned short REFUELPOSITION_LEFT = 0;    
+       const unsigned short REFUELPOSITION_RIGHT= 1;    
+       const unsigned short REFUELPOSITION_FRONT = 2;    
+       const unsigned short REFUELPOSITION_REAR = 3;    
+
+       /**  Type
+        *   \brief MUST return type of fuel.  integer 0-4 (see 
+        **/
+        attribute unsigned short type;
+
+       /**  RefuelPosition
+        *   \brief MUST return position of refuling (see 
+        **/
+        attribute unsigned short refuelPosition;
+};
+
+[NoInterfaceObject]
+interface VehicleType : VehiclePropertyType  { 
+       const unsigned short VEHICLETYPE_SEDAN = 0;    
+       const unsigned short VEHICLETYPE_COUPE= 1;    
+       const unsigned short VEHICLETYPE_CABRIOLE = 2;    
+       const unsigned short VEHICLETYPE_ROADSTER = 3;    
+       const unsigned short VEHICLETYPE_SUV = 4;    
+       const unsigned short VEHICLETYPE_TRUCK = 5;    
+
+       /**  Type
+        *   \brief MUST return type of Vehicle.  Integer 0-5 (see 
+        **/
+        attribute unsigned short type;
+};
+
+[NoInterfaceObject]
+interface Doors : VehiclePropertyType  { 
+
+       /**  DoorsPerRow
+        *   \brief MUST return Number of doors in each row.  The index represents the row.  Position '0'    
+        *   represents the first row, '1' the second row etc.    
+        *   Example a common mini-van may have Doors[0] = 2 doors,    
+        *   Doors[1] = 1 (side door), Doors[2] = 1 (trunk).    
+        **/
+        attribute sequence<unsigned short> doorsPerRow;
+};
+
+[NoInterfaceObject]
+interface TransmissionGearType : VehiclePropertyType  { 
+       const unsigned short TRANSMISSIONGEARTYPE_AUTO=0;    
+       const unsigned short TRANSMISSIONGEARTYPE_MANUAL=1;    
+       const unsigned short TRANSMISSIONGEARTYPE_CV=2;    
+
+       /**  TransmissionGearType
+        *   \brief MUST return transmission gear type of either Automatic, Manual or Constant Variable (CV).  See 
+        **/
+        attribute unsigned short transmissionGearType;
+};
+
+[NoInterfaceObject]
+interface WheelInformation : VehiclePropertyType  { 
+
+       /**  FrontWheelRadius
+        *   \brief MUST return Radius of Front Wheel(s) in mm.    
+        **/
+        attribute unsigned short frontWheelRadius;
+
+       /**  RearWheelRadius
+        *   \brief MUST return Radius of Rear Wheel(s) in mm.    
+        **/
+        attribute unsigned short rearWheelRadius;
+
+       /**  WheelTrack
+        *   \brief MUST return Wheel Track in mm.    
+        **/
+        attribute unsigned long wheelTrack;
+
+       /**  ABS
+        *   \brief MUST return Antilock Brake System status: on = true, off = false.    
+        **/
+        attribute boolean ABS;
+};
+
+[NoInterfaceObject]
+interface Odometer : VehiclePropertyType  { 
+
+       /**  Odometer
+        *   \brief MUST return Distance traveled in km    
+        **/
+        attribute unsigned long odometer;
+};
+
+[NoInterfaceObject]
+interface Fluid : VehiclePropertyType  { 
+
+       /**  Transmission
+        *   \brief MUST return Transmission fluid level percentage. 0-100.    
+        **/
+        attribute unsigned short transmission;
+
+       /**  Brake
+        *   \brief MUST return Brake fluid level percentage. 0-100.    
+        **/
+        attribute unsigned short brake;
+
+       /**  Washer
+        *   \brief MUST return Washer fluid level percentage. 0-100.    
+        **/
+        attribute unsigned short washer;
+};
+
+[NoInterfaceObject]
+interface Battery : VehiclePropertyType  { 
+
+       /**  Voltage
+        *   \brief MUST return battery voltage.    
+        **/
+        attribute double voltage;
+
+       /**  Current
+        *   \brief MUST return battery current in Amperes    
+        **/
+        attribute double current;
+};
+
+[NoInterfaceObject]
+interface TirePressure : VehiclePropertyType  { 
+
+       /**  LeftFront
+        *   \brief MUST return left front tire pressure in kPa.    
+        **/
+        attribute double leftFront;
+
+       /**  RightFront
+        *   \brief MUST return right front tire pressure in kPa.    
+        **/
+        attribute double rightFront;
+
+       /**  LeftRear
+        *   \brief MUST return left rear tire pressure in kPa.    
+        **/
+        attribute double leftRear;
+
+       /**  RightRear
+        *   \brief MUST return right rear tire pressure in kPa.    
+        **/
+        attribute double rightRear;
+};
+
+[NoInterfaceObject]
+interface TireTemperature : VehiclePropertyType  { 
+
+       /**  LeftFront
+        *   \brief MUST return left front tire temperature in Celcius.    
+        **/
+        attribute double leftFront;
+
+       /**  RightFront
+        *   \brief MUST return right front tire temperature in Celcius.    
+        **/
+        attribute double rightFront;
+
+       /**  LeftRear
+        *   \brief MUST return left rear tire temperature in Celcius.    
+        **/
+        attribute double leftRear;
+
+       /**  RightRear
+        *   \brief MUST return right rear tire temperature in Celcius.    
+        **/
+        attribute double rightRear;
+};
+
+[NoInterfaceObject]
+interface SecurityAlert : VehiclePropertyType  { 
+
+       /**  SecurityAlert
+        *   \brief MUST return    
+        **/
+        attribute boolean securityAlert;
+};
+
+[NoInterfaceObject]
+interface ParkingBrake : VehiclePropertyType  { 
+
+       /**  ParkingBrake
+        *   must return status of parking brake:  Engaged = true, Disengaged = false.    
+        **/
+        attribute boolean parkingBrake;
+};
+
+[NoInterfaceObject]
+interface ParkingLight : VehiclePropertyType  { 
+
+       /**  ParkingLight
+        *   must return status of parking light:  Engaged = true, Disengaged = false.    
+        **/
+        attribute boolean parkingLight;
+};
+
+[NoInterfaceObject]
+interface HazardLight : VehiclePropertyType  { 
+
+       /**  HazardLight
+        *   must return status of hazard light:  Engaged = true, Disengaged = false.    
+        **/
+        attribute boolean hazardLight;
+};
+
+[NoInterfaceObject]
+interface AntilockBrakingSystem : VehiclePropertyType  { 
+
+       /**  AntilockBrakingSystem
+        *   \brief MUST return whether Antilock Braking System is Idle (false) or Engaged (true)    
+        **/
+        attribute boolean antilockBrakingSystem;
+};
+
+[NoInterfaceObject]
+interface TractionControlSystem : VehiclePropertyType  { 
+
+       /**  TractionControlSystem
+        *   \brief MUST return whether Traction Control System is Off (false) or On (true)    
+        **/
+        attribute boolean tractionControlSystem;
+};
+
+[NoInterfaceObject]
+interface VehicleTopSpeedLimit : VehiclePropertyType  { 
+
+       /**  VehicleTopSpeedLimit
+        *   \brief MUST returns top rated speed in km/h. 0 = no limit    
+        **/
+        attribute unsigned short vehicleTopSpeedLimit;
+};
+
+[NoInterfaceObject]
+interface AirbagStatus : VehiclePropertyType  { 
+       const unsigned short AIRBAGLOCATION_DRIVER = 0;    
+       const unsigned short AIRBAGLOCATION_PASSENGER= 1;    
+       const unsigned short AIRBAGLOCATION_LEFTSIDE = 2;    
+       const unsigned short AIRBAGLOCATION_RIGHTSIDE = 3;    
+       const unsigned short AIRBAGSTATUS_INACTIVE = 0;    
+       const unsigned short AIRBAGSTATUS_ACTIVE = 1;    
+       const unsigned short AIRBAGSTATUS_DEPLOYED = 2;    
+
+       /**  AirbagStatus
+        *   \brief MUST returns a dictionary of Airbag (byte) and Status (byte) (see 
+        **/
+        attribute object airbagStatus;
+};
+
+[NoInterfaceObject]
+interface DoorStatus : VehiclePropertyType  { 
+       const unsigned short DOORLOCATION_DRIVER= 0;    
+       const unsigned short DOORLOCATION_PASSENGER = 1;    
+       const unsigned short DOORLOCATION_LEFTREAR = 2;    
+       const unsigned short DOORLOCATION_RIGHTREAR = 3;    
+       const unsigned short DOORLOCATION_TRUNK = 4;    
+       const unsigned short DOORLOCATION_FUELCAP = 5;    
+       const unsigned short DOORLOCATION_HOOD = 6;    
+       const unsigned short DOORSTATUS_CLOSED = 0;    
+       const unsigned short DOORSTATUS_OPEN = 1;    
+       const unsigned short DOORSTATUS_AJAR = 2;    
+
+       /**  DoorStatus
+        *   \brief MUST returns dictionary of Door (byte) and Status (byte).  See 
+        **/
+        attribute object doorStatus;
+
+       /**  DoorLockStatus
+        *   \brief MUST returns dictionary of Door (byte) and Status (bool locked = true, unlocked = false).  See 
+        **/
+        attribute object doorLockStatus;
+
+       /**  ChildLockStatus
+        *   \brief MUST returns Child lock status of rear doors.  active = true, inactive = false.    
+        *   Setting this to 'true' will prevent the rear doors from being opened    
+        *   from the inside.    
+        **/
+        attribute boolean childLockStatus;
+};
+
+[NoInterfaceObject]
+interface SeatBeltStatus : VehiclePropertyType  { 
+       const unsigned short SEATBELTLOCATION_DRIVER= 0;    
+       const unsigned short SEATBELTLOCATION_MIDDLEFRONT = 1;    
+       const unsigned short SEATBELTLOCATION_PASSENGER = 2;    
+       const unsigned short SEATBELTLOCATION_LEFTREAR = 3;    
+       const unsigned short SEATBELTLOCATION_MIDDLEREAR = 4;    
+       const unsigned short SEATBELTLOCATION_RIGHTREAR = 5;    
+
+       /**  SeatBeltStatus
+        *   \brief MUST returns dictionary of Seat Belt (byte, see SEATBELTLOCATION) and Status (bool: Fasten = true, Unfastened = false)    
+        **/
+        attribute object seatBeltStatus;
+};
+
+[NoInterfaceObject]
+interface OccupantStatus : VehiclePropertyType  { 
+       const unsigned short OCCUPANTLOCATION_DRIVER = 0;    
+       const unsigned short OCCUPANTLOCATION_FRONTMIDDLE = 1;    
+       const unsigned short OCCUPANTLOCATION_PASSENGER= 2;    
+       const unsigned short OCCUPANTLOCATION_LEFTREAR = 3;    
+       const unsigned short OCCUPANTLOCATION_MIDDLEREAR = 4;    
+       const unsigned short OCCUPANTLOCATION_RIGHTREAR = 5;    
+       const unsigned short OCCUPANTSTATUS_VACANT = 0;    
+       const unsigned short OCCUPANTSTATUS_CHILD = 1;    
+       const unsigned short OCCUPANTSTATUS_ADULT = 2;    
+
+       /**  OccupantStatus
+        *   \brief MUST returns dictionary of Occupant (byte see OCCUPANTLOCATION) and Status (byte, see 
+        **/
+        attribute object occupantStatus;
+};
+
+[NoInterfaceObject]
+interface ObstacleDistance : VehiclePropertyType  { 
+       const unsigned short DISTANCESENSORLOCATION_LEFTFRONT = 0;    
+       const unsigned short DISTANCESENSORLOCATION_RIGHTFRONT = 1;    
+       const unsigned short DISTANCESENSORLOCATION_LEFTREAR = 2;    
+       const unsigned short DISTANCESENSORLOCATION_RIGHTREAR = 3;    
+       const unsigned short DISTANCESENSORLOCATION_LEFTBLINDSPOT = 4;    
+       const unsigned short DISTANCESENSORLOCATION_RIGHTBLINDSPOT = 5;    
+
+       /**  ObstacleDistance
+        *   \brief MUST returns dictionary of Distance Sensor (byte, see DISTANCESENSORLOCATION) and distance (double) in m.    
+        **/
+        attribute object obstacleDistance;
+};