added tizen engineer mode to system
[profile/ivi/wrt-plugins-ivi.git] / src / Vehicle / Vehicle.idl
index 42c4b99..5657799 100644 (file)
@@ -4,23 +4,27 @@
 Details. 
 
 \def-api-feature http://tizen.org/api/vehicle 
-\brief Allows access to the vehicle API 
-
+\brief Allows access to the vehicle API
 
 
 */
 
-module Vehicle {
 
-partial interface Navigator   { 
-       readonly attribute Vehicle vehicle;
+[NoInterfaceObject]
+interface VehicleManagerObject {
+    readonly attribute Vehicle vehicle;
 };
+Tizen implements VehicleManagerObject;
+
 
 [NoInterfaceObject]
-interface VehiclePropertyType: Event { 
-       /** /brief time at which the vehicle generated the property
+interface VehiclePropertyType {
+       /**  Time
+        *  \brief time at which the vehicle generated the property
         **/
-       readonly attribute DOMTimeStamp time;
+        attribute DOMTimeStamp time;
+        attribute short zone;
+        attribute DOMString source;
 };
 
 [NoInterfaceObject]
@@ -33,12 +37,12 @@ interface VehiclePropertyError   {
        /**  code
         *   MUST return error code. 
         **/
-       readonly attribute unsigned short code;
+        attribute unsigned short code;
 
        /**  message
         *   MUST return error message 
         **/
-       readonly attribute DOMString message;
+        attribute DOMString message;
 };
 
 callback VehiclePropertyCallback = void (VehiclePropertyType value); 
@@ -53,77 +57,100 @@ callback SupportedPropertiesCallback = void (sequence<DOMString> properties);
 [NoInterfaceObject]
 interface Vehicle  { 
 
-       /**  
-        *  \brief returns supported properties  
-        *  \arg VehiclePropertyCallback successCallback function to be called when method has completed successfully  
-        *  \arg VehiclePropertyErrorCallback errorCallback this function is called when an error has occured.
+       const unsigned short ZONE_None = 0;
+       const unsigned short ZONE_Front = 0x01;
+       const unsigned short ZONE_Middle = 0x02;
+       const unsigned short ZONE_Right = 0x04;
+       const unsigned short ZONE_Left = 0x08;
+       const unsigned short ZONE_Rear = 0x10;
+       const unsigned short ZONE_Center = 0x20;
+
+       /**
+        *  \brief returns supported object types
         **/
-       getSupported(SupportedPropertiesCallback successCallback, optional VehiclePropertyErrorCallback errorCallback);
+       sequence<DOMString> supported();
 
-       /**  
-        *  \brief fetch the current value for 'property'.  
-        *  \arg DOMString property is the requested property to be retrieved.
-        *  \returns object representing the requested 'property'
+       /**
+        *  \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 property);  
+       any get(DOMString objectType, optional short zone);
+
+
+        /**
+         *  \brief fetch the current value for 'objectType'
+         *  \param objectType is the requested property to be retrieved.
+         *  \param successCallback is called with the result of the call
+         *  \param errorCallback is called if there is an error
+         *  \param zone specify the zone in which this object type is in
+         **/
+        void getAsync(DOMString objectType, VehiclePropertyCallback successCallback, optional VehiclePropertyErrorCallback errorCb, optional short zone);
 
        /** \brief subscribe to the given property and get callbacks when it changes
-        *  \arg DOMString property property to set      
-         *  \arg VehiclePropertyCallback successCallback callback if operation is successfull   
-         *  \arg VehiclePropertyErrorCallback errorCallback callback if error has been called.
+        *  \param objectType property to set
+        *  \param successCallback callback will be called when the "objectType" changes
+        *  \param errorCallback callback if error has been called.
         **/
 
-       subscribe(DOMString property, VehiclePropertyCallback successCallback, optional VehiclePropertyErrorCallback errorCallback);
-       
-       /**  
-        *  \brief set the given property to value  
-        *  \arg DOMString property property to set  
-        *  \arg VehiclePropertyType value value to set  
-        *  \arg VehiclePropertyCallback successCallback callback if operation is successfull
-        *  \arg VehiclePropertyErrorCallback errorCallback callback if error has been called.  
-        **/
-       set(DOMString property, VehiclePropertyType value, optional VehiclePropertyCallback successCallback, optional VehiclePropertyErrorCallback errorCallback);
-        
-       /**  
-        *  \brief get values for a given property within a certain past time period between 'startTime' and 'endTime'  
-        *  \arg DOMString property property to request  
-        *  \arg Date startTime, starting period of time.  
-        *  \arg Date endTime, ending period of time.  
-        *  \arg VehiclePropertyListCallback successCallback. Callback with the result of the method call  
-        *  \arg VehiclePropertyErrorCallback errorCallback. Callback if an error has occurred.  
-       **/
-       getHistory(DOMString property, Date startTime, Date endTime, VehiclePropertyListCallback successCallback, optional VehiclePropertyErrorCallback errorCallback);  
+       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 if there is a zone ie "zone" : 0
+        *  \param errorCallback callback if error during set.
+        **/
+       void set(DOMString objectType, object 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);
+
+       /**
+        *  \brief list zones available for a given object type
+        *  \param DOMString object type to request, ie "HVAC"
+        **/
+       sequence<unsigned short> listZones(DOMString objectType);
 };
 
 [NoInterfaceObject]
 interface VehicleSpeed : VehiclePropertyType  { 
 
        /**  VehicleSpeed
-        *   \brief  Must return Vehicle Speed in kilometers per hour.    
+        *   \brief  Must return Vehicle Speed in kilometers per hour.
         **/
-       readonly attribute unsigned long VehicleSpeed;
+        attribute unsigned long vehicleSpeed;
 };
 
 [NoInterfaceObject]
 interface EngineSpeed : VehiclePropertyType  { 
 
        /**  EngineSpeed
-        *   \brief  Must return Engine Speed in rotations per minute.    
+        *   \brief  Must return Engine Speed in rotations per minute.
         **/
-       readonly attribute unsigned long EngineSpeed;
+        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;    
+       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)    
         **/
-       readonly attribute octet VehiclePowerMode;
+        attribute octet vehiclePowerMode;
 };
 
 [NoInterfaceObject]
@@ -132,7 +159,7 @@ 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;
+        attribute sequence<unsigned long> tripMeters;
 };
 
 [NoInterfaceObject]
@@ -141,17 +168,17 @@ interface Acceleration : VehiclePropertyType  {
        /**  X
         *   \brief  Must return acceleration on the "X" axis as 1/1000 G (gravitational force).    
         **/
-       readonly attribute unsigned long X;
+        attribute unsigned long x;
 
        /**  Y
         *   \brief  Must return acceleration on the "Y" axis as 1/1000 G (gravitational force).    
         **/
-       readonly attribute unsigned long Y;
+        attribute unsigned long y;
 
        /**  Z
         *   \brief  Must return acceleration on the "Z" axis as 1/1000 G (gravitational force).    
         **/
-       readonly attribute unsigned long Z;
+        attribute unsigned long z;
 };
 
 [NoInterfaceObject]
@@ -179,12 +206,12 @@ interface Transmission : VehiclePropertyType  {
        /**  GearPosition
         *   \brief  Must return transmission gear position (see TRANSMISSIONPOSITION)    
         **/
-       readonly attribute octet GearPosition;
+        attribute octet gearPosition;
 
        /**  Mode
         *   \brief  Must return transmission Mode (see 
         **/
-       readonly attribute octet Mode;
+        attribute octet mode;
 };
 
 [NoInterfaceObject]
@@ -193,12 +220,12 @@ interface CruiseControlStatus : VehiclePropertyType  {
        /**  Activated
         *   \brief  Must return whether or not the Cruise Control system is active (true) or inactive (false)    
         **/
-       readonly attribute boolean Activated;
+        attribute boolean activated;
 
        /**  Speed
         *   \brief  Must return target Cruise Control speed in kilometers per hour (kph).    
         **/
-       readonly attribute unsigned short Speed;
+        attribute unsigned short speed;
 };
 
 [NoInterfaceObject]
@@ -207,7 +234,7 @@ interface WheelBrake : VehiclePropertyType  {
        /**  Engaged
         *   \brief  Must return Wheel Brake status: Engaged = true, disengaged = false    
         **/
-       readonly attribute boolean Engaged;
+        attribute boolean engaged;
 };
 
 [NoInterfaceObject]
@@ -216,42 +243,42 @@ interface LightStatus : VehiclePropertyType  {
        /**  Head
         *   \brief  Must return headlight status: on = true, off = false.    
         **/
-       readonly attribute boolean Head;
+        attribute boolean head;
 
        /**  RightTurn
         *   \brief  Must return right turn signal status: on = true, off = false.    
         **/
-       readonly attribute boolean RightTurn;
+        attribute boolean rightTurn;
 
        /**  LeftTurn
         *   \brief  Must return left turn signal status: on = true, off = false.    
         **/
-       readonly attribute boolean LeftTurn;
+        attribute boolean leftTurn;
 
        /**  Brake
         *   \brief  Must return  brake signal light status: on = true, off = false.    
         **/
-       readonly attribute boolean Brake;
+        attribute boolean brake;
 
        /**  Fog
         *   \brief  Must return fog light status: on = true, off = false.    
         **/
-       readonly attribute boolean Fog;
+        attribute boolean fog;
 
        /**  Hazard
         *   \brief  Must return hazard light status: on = true, off = false.    
         **/
-       readonly attribute boolean Hazard;
+        attribute boolean hazard;
 
        /**  Parking
         *   \brief  Must return parking light status: on = true, off = false.    
         **/
-       readonly attribute boolean Parking;
+        attribute boolean parking;
 
        /**  HighBeam
         *   \brief  Must return high beam status: on = true, off = false.    
         **/
-       readonly attribute boolean HighBeam;
+        attribute boolean highBeam;
 };
 
 [NoInterfaceObject]
@@ -260,17 +287,17 @@ interface InteriorLightStatus : VehiclePropertyType  {
        /**  Passenger
         *   \brief  Must return passenger interior light status: on = true, off = false    
         **/
-       readonly attribute boolean Passenger;
+        attribute boolean passenger;
 
        /**  Driver
         *   \brief  Must return driver interior light status: on = true, off = false    
         **/
-       readonly attribute boolean Driver;
+        attribute boolean driver;
 
        /**  Center
         *   \brief  Must return center interior light status: on = true, off = false    
         **/
-       readonly attribute boolean Center;
+        attribute boolean center;
 };
 
 [NoInterfaceObject]
@@ -279,7 +306,7 @@ interface Horn : VehiclePropertyType  {
        /**  On
         *   \brief  Must return horn status: on = true, off = false    
         **/
-       readonly attribute boolean On;
+        attribute boolean on;
 };
 
 [NoInterfaceObject]
@@ -288,27 +315,27 @@ interface Fuel : VehiclePropertyType  {
        /**  Level
         *   \brief  Must return fuel level as a percentage of fullness.    
         **/
-       readonly attribute unsigned short Level;
+        attribute unsigned short level;
 
        /**  Range
         *   \brief  Must return estimated fuel range in kilometers.    
         **/
-       readonly attribute unsigned short Range;
+        attribute unsigned short range;
 
        /**  InstantConsumption
         *   \brief  Must return instant fuel consumption in milliliters of fuel per second.    
         **/
-       readonly attribute unsigned short InstantConsumption;
+        attribute unsigned short instantConsumption;
 
        /**  InstantEconomy
         *   \brief  Must return instant fuel 'economy' in kilometers per liter of fuel.    
         **/
-       readonly attribute unsigned short InstantEconomy;
+        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;
+        attribute unsigned short averageEconomy;
 };
 
 [NoInterfaceObject]
@@ -317,17 +344,17 @@ interface EngineOil : VehiclePropertyType  {
        /**  Remaining
         *   \brief  Must return remaining engine oil as percentage of fullness.    
         **/
-       readonly attribute unsigned short Remaining;
+        attribute unsigned short remaining;
 
        /**  Temperature
         *   \brief  Must return Engine Oil Temperature in Celcius.    
         **/
-       readonly attribute long Temperature;
+        attribute long temperature;
 
        /**  Pressure
         *   \brief  Must return Engine Oil Pressure in kPa.    
         **/
-       readonly attribute unsigned short Pressure;
+        attribute unsigned short pressure;
 };
 
 [NoInterfaceObject]
@@ -336,22 +363,22 @@ interface Location : VehiclePropertyType  {
        /**  Latitude
         *   \brief  Must return latitude in Deg.Min (-180, +180)    
         **/
-       readonly attribute double Latitude;
+        attribute double latitude;
 
        /**  Longitude
         *   \brief  Must return longitude in Deg.Min (-90, +90)    
         **/
-       readonly attribute double Longitude;
+        attribute double longitude;
 
        /**  Altitude
         *   \brief  Must return altitude in meters above sea-level (0).    
         **/
-       readonly attribute double Altitude;
+        attribute double altitude;
 
        /**  Direction
         *   \brief  Must return direction in Degrees  (0-360)    
         **/
-       readonly attribute unsigned short Direction;
+        attribute unsigned short direction;
 };
 
 [NoInterfaceObject]
@@ -360,7 +387,7 @@ interface ExteriorBrightness : VehiclePropertyType  {
        /**  ExteriorBrightness
         *   \brief Must return the brightness outside the vehicle in lux.    
         **/
-       readonly attribute unsigned long ExteriorBrightness;
+        attribute unsigned long exteriorBrightness;
 };
 
 [NoInterfaceObject]
@@ -369,12 +396,12 @@ interface Temperature : VehiclePropertyType  {
        /**  Interior
         *   \brief Must return the temperature of the interior of the vehicle in celcius.    
         **/
-       readonly attribute signed short Interior;
+        attribute short interior;
 
        /**  Exterior
         *   \brief Must return the temperature of the exterior of the vehicle in celcius.    
         **/
-       readonly attribute signed short Exterior;
+        attribute short  exterior;
 };
 
 [NoInterfaceObject]
@@ -383,7 +410,7 @@ interface RainSensor : VehiclePropertyType  {
        /**  RainSensor
         *   \brief Must return level of rain intensity 0: No Rain - 10: Heaviest Rain.    
         **/
-       readonly attribute unsigned short RainSensor;
+        attribute unsigned short rainSensor;
 };
 
 [NoInterfaceObject]
@@ -396,71 +423,65 @@ interface WindshieldWiper : VehiclePropertyType  {
        /**  WindshieldWiper
         *   \brief Must return Level of windshield whiper speed (see WIPERSPEED)    
         **/
-       readonly attribute unsigned short WindshieldWiper;
+        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;    
+       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;
+       attribute unsigned short airflowDirection;
 
        /**  FanSpeed
         *   \brief Must return speed of the fan (0-7)    
         **/
-       attribute unsigned short FanSpeed;
+       attribute unsigned short fanSpeed;
 
        /**  TargetTemperature
         *   \brief Must return target desired temperature in celcius.    
         **/
-       attribute unsigned short TargetTemperature;
+       attribute unsigned short targetTemperature;
 
        /**  AirConditioning
         *   \brief Must return air conditioning on (true) / off (false).    
         **/
-       attribute boolean AirConditioning;
+       attribute boolean airConditioning;
 
        /**  AirRecirculation
         *   \brief Must return air recirculation on (true) / off (false).    
         **/
-       readwrite attribute boolean AirRecirculation;
+       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;
+       attribute boolean heater;
 
        /**  SteeringWheelHeater
         *   \brief Must return air recirculation on (true) / off (false).    
         **/
-       attribute boolean SteeringWheelHeater;
+       attribute boolean steeringWheelHeater;
 
        /**  SeatHeater
         *   \brief Must return seat heater status: on (true) / off (false).    
         **/
-       attribute boolean SeatHeater;
+       attribute boolean seatHeater;
 
        /**  SeatCooler
         *   \brief Must return seat heater status: on (true) / off (false).    
         **/
-       attribute boolean SeatCooler;
+       attribute boolean seatCooler;
 };
 
 [NoInterfaceObject]
@@ -471,11 +492,16 @@ interface WindowStatus : VehiclePropertyType  {
        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 }    
+       /**  openness
+        *   \brief Must return window openness percentage (100% fully open, 0% fully closed)
+        *  for the window location see "zone" attribute
         **/
-       readwrite attribute object WindowStatus;
+       attribute unsigned short openness;
+
+       /**  defrost
+       *   \brief Must return the defroster status of the window. On = true, Off = false.
+       **/
+       attribute boolean defrost;
 };
 
 [NoInterfaceObject]
@@ -484,12 +510,12 @@ interface Sunroof : VehiclePropertyType  {
        /**  Openness
         *   \brief Must return window status for sunroof openness percentage.    
         **/
-       readwrite attribute unsigned short Openness;
+       attribute unsigned short openness;
 
        /**  Tilt
         *   \brief Must return tilt status for sunroof percentage.    
         **/
-       readwrite attribute unsigned short Tilt;
+       attribute unsigned short tilt;
 };
 
 [NoInterfaceObject]
@@ -498,7 +524,7 @@ interface ConvertibleRoof : VehiclePropertyType  {
        /**  Openness
         *   \brief Must return window status for sunroof openness percentage.    
         **/
-       readwrite attribute unsigned short Openness;
+       attribute unsigned short openness;
 };
 
 [NoInterfaceObject]
@@ -508,12 +534,12 @@ interface VehicleId : VehiclePropertyType  {
         *   \brief MUST return World Manufacturer Identifier (WMI)    
         *   WMI is defined by SAE ISO 3780:2009.  3 characters.    
         **/
-       readonly attribute DOMString WMI;
+        attribute DOMString WMI;
 
        /**  VIN
         *   \brief MUST return Vehicle Identification Number (VIN) as defined by ISO 3779. 17 characters.    
         **/
-       readonly attribute DOMString VIN;
+        attribute DOMString VIN;
 };
 
 [NoInterfaceObject]
@@ -522,17 +548,17 @@ interface Size : VehiclePropertyType  {
        /**  Width
         *   \brief MUST return width of vehicle in mm    
         **/
-       readonly attribute unsigned long Width;
+        attribute unsigned long width;
 
        /**  Height
         *   \brief MUST return height of vehicle in mm    
         **/
-       readonly attribute unsigned long Height;
+        attribute unsigned long height;
 
        /**  Length
         *   \brief MUST return length of vehicle in mm    
         **/
-       readonly attribute unsigned long Length;
+        attribute unsigned long length;
 };
 
 [NoInterfaceObject]
@@ -550,12 +576,12 @@ interface FuelInfo : VehiclePropertyType  {
        /**  Type
         *   \brief MUST return type of fuel.  integer 0-4 (see 
         **/
-       readonly attribute unsigned short Type;
+        attribute unsigned short type;
 
        /**  RefuelPosition
         *   \brief MUST return position of refuling (see 
         **/
-       readonly attribute unsigned short RefuelPosition;
+        attribute unsigned short refuelPosition;
 };
 
 [NoInterfaceObject]
@@ -570,7 +596,7 @@ interface VehicleType : VehiclePropertyType  {
        /**  Type
         *   \brief MUST return type of Vehicle.  Integer 0-5 (see 
         **/
-       readonly attribute unsigned short Type;
+        attribute unsigned short type;
 };
 
 [NoInterfaceObject]
@@ -582,7 +608,7 @@ interface Doors : VehiclePropertyType  {
         *   Example a common mini-van may have Doors[0] = 2 doors,    
         *   Doors[1] = 1 (side door), Doors[2] = 1 (trunk).    
         **/
-       readonly attribute sequence<unsigned short> DoorsPerRow;
+        attribute sequence<unsigned short> doorsPerRow;
 };
 
 [NoInterfaceObject]
@@ -594,7 +620,7 @@ interface TransmissionGearType : VehiclePropertyType  {
        /**  TransmissionGearType
         *   \brief MUST return transmission gear type of either Automatic, Manual or Constant Variable (CV).  See 
         **/
-       readonly attribute unsigned short TransmissionGearType;
+        attribute unsigned short transmissionGearType;
 };
 
 [NoInterfaceObject]
@@ -603,22 +629,22 @@ interface WheelInformation : VehiclePropertyType  {
        /**  FrontWheelRadius
         *   \brief MUST return Radius of Front Wheel(s) in mm.    
         **/
-       readonly attribute unsigned short FrontWheelRadius;
+        attribute unsigned short frontWheelRadius;
 
        /**  RearWheelRadius
         *   \brief MUST return Radius of Rear Wheel(s) in mm.    
         **/
-       readonly attribute unsigned short RearWheelRadius;
+        attribute unsigned short rearWheelRadius;
 
        /**  WheelTrack
         *   \brief MUST return Wheel Track in mm.    
         **/
-       readonly attribute unsigned long WheelTrack;
+        attribute unsigned long wheelTrack;
 
        /**  ABS
         *   \brief MUST return Antilock Brake System status: on = true, off = false.    
         **/
-       readonly attribute boolean ABS;
+        attribute boolean ABS;
 };
 
 [NoInterfaceObject]
@@ -627,7 +653,7 @@ interface Odometer : VehiclePropertyType  {
        /**  Odometer
         *   \brief MUST return Distance traveled in km    
         **/
-       readonly attribute unsigned long Odometer;
+        attribute unsigned long odometer;
 };
 
 [NoInterfaceObject]
@@ -636,17 +662,17 @@ interface Fluid : VehiclePropertyType  {
        /**  Transmission
         *   \brief MUST return Transmission fluid level percentage. 0-100.    
         **/
-       readonly attribute unsigned short Transmission;
+        attribute unsigned short transmission;
 
        /**  Brake
         *   \brief MUST return Brake fluid level percentage. 0-100.    
         **/
-       readonly attribute unsigned short Brake;
+        attribute unsigned short brake;
 
        /**  Washer
         *   \brief MUST return Washer fluid level percentage. 0-100.    
         **/
-       readonly attribute unsigned short Washer;
+        attribute unsigned short washer;
 };
 
 [NoInterfaceObject]
@@ -655,12 +681,12 @@ interface Battery : VehiclePropertyType  {
        /**  Voltage
         *   \brief MUST return battery voltage.    
         **/
-       readonly attribute double Voltage;
+        attribute double voltage;
 
        /**  Current
         *   \brief MUST return battery current in Amperes    
         **/
-       readonly attribute double Current;
+        attribute double current;
 };
 
 [NoInterfaceObject]
@@ -669,22 +695,22 @@ interface TirePressure : VehiclePropertyType  {
        /**  LeftFront
         *   \brief MUST return left front tire pressure in kPa.    
         **/
-       readonly attribute double LeftFront;
+        attribute double leftFront;
 
        /**  RightFront
         *   \brief MUST return right front tire pressure in kPa.    
         **/
-       readonly attribute double RightFront;
+        attribute double rightFront;
 
        /**  LeftRear
         *   \brief MUST return left rear tire pressure in kPa.    
         **/
-       readonly attribute double LeftRear;
+        attribute double leftRear;
 
        /**  RightRear
         *   \brief MUST return right rear tire pressure in kPa.    
         **/
-       readonly attribute double RightRear;
+        attribute double rightRear;
 };
 
 [NoInterfaceObject]
@@ -693,22 +719,22 @@ interface TireTemperature : VehiclePropertyType  {
        /**  LeftFront
         *   \brief MUST return left front tire temperature in Celcius.    
         **/
-       readonly attribute double LeftFront;
+        attribute double leftFront;
 
        /**  RightFront
         *   \brief MUST return right front tire temperature in Celcius.    
         **/
-       readonly attribute double RightFront;
+        attribute double rightFront;
 
        /**  LeftRear
         *   \brief MUST return left rear tire temperature in Celcius.    
         **/
-       readonly attribute double LeftRear;
+        attribute double leftRear;
 
        /**  RightRear
         *   \brief MUST return right rear tire temperature in Celcius.    
         **/
-       readonly attribute double RightRear;
+        attribute double rightRear;
 };
 
 [NoInterfaceObject]
@@ -717,7 +743,7 @@ interface SecurityAlert : VehiclePropertyType  {
        /**  SecurityAlert
         *   \brief MUST return    
         **/
-       readonly attribute boolean SecurityAlert;
+        attribute boolean securityAlert;
 };
 
 [NoInterfaceObject]
@@ -726,7 +752,7 @@ interface ParkingBrake : VehiclePropertyType  {
        /**  ParkingBrake
         *   must return status of parking brake:  Engaged = true, Disengaged = false.    
         **/
-       readonly attribute boolean ParkingBrake;
+        attribute boolean parkingBrake;
 };
 
 [NoInterfaceObject]
@@ -735,7 +761,7 @@ interface ParkingLight : VehiclePropertyType  {
        /**  ParkingLight
         *   must return status of parking light:  Engaged = true, Disengaged = false.    
         **/
-       readonly attribute boolean ParkingLight;
+        attribute boolean parkingLight;
 };
 
 [NoInterfaceObject]
@@ -744,7 +770,7 @@ interface HazardLight : VehiclePropertyType  {
        /**  HazardLight
         *   must return status of hazard light:  Engaged = true, Disengaged = false.    
         **/
-       readonly attribute boolean HazardLight;
+        attribute boolean hazardLight;
 };
 
 [NoInterfaceObject]
@@ -753,7 +779,7 @@ interface AntilockBrakingSystem : VehiclePropertyType  {
        /**  AntilockBrakingSystem
         *   \brief MUST return whether Antilock Braking System is Idle (false) or Engaged (true)    
         **/
-       readonly attribute boolean AntilockBrakingSystem;
+        attribute boolean antilockBrakingSystem;
 };
 
 [NoInterfaceObject]
@@ -762,7 +788,7 @@ interface TractionControlSystem : VehiclePropertyType  {
        /**  TractionControlSystem
         *   \brief MUST return whether Traction Control System is Off (false) or On (true)    
         **/
-       readonly attribute boolean TractionControlSystem;
+        attribute boolean tractionControlSystem;
 };
 
 [NoInterfaceObject]
@@ -771,87 +797,64 @@ interface VehicleTopSpeedLimit : VehiclePropertyType  {
        /**  VehicleTopSpeedLimit
         *   \brief MUST returns top rated speed in km/h. 0 = no limit    
         **/
-       readonly attribute unsigned short VehicleTopSpeedLimit;
+        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;    
+interface AirbagStatus : VehiclePropertyType  {
        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 
+        *   \brief MUST return Airbag deployment status (see AIRBAGSTATUS*)
         **/
-       readonly attribute object AirbagStatus;
+        attribute unsigned short 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 
+        /**  DoorStatus
+        *   \brief MUST returns Door status (byte).  See DOORSTATUS_*
         **/
-       readonly attribute object DoorStatus;
+        attribute unsigned short doorStatus;
 
        /**  DoorLockStatus
-        *   \brief MUST returns dictionary of Door (byte) and Status (bool locked = true, unlocked = false).  See 
+        *   \brief MUST returns Door status (bool locked = true, unlocked = false).
         **/
-       readonly attribute object DoorLockStatus;
+        attribute boolean 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.    
         **/
-       readonly attribute boolean ChildLockStatus;
+        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)    
+        *   \brief MUST return Seat Belt status (bool: Fasten = true, Unfastened = false)
         **/
-       readonly attribute object SeatBeltStatus;
+        attribute boolean 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;    
+interface OccupantStatus : VehiclePropertyType  {
        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 
+        *   \brief MUST returns Occupant status (byte, see OCCUPANTSTATUS)
         **/
-       readonly attribute object OccupantStatus;
+        attribute unsigned short occupantStatus;
 };
 
 [NoInterfaceObject]
@@ -864,10 +867,28 @@ interface ObstacleDistance : VehiclePropertyType  {
        const unsigned short DISTANCESENSORLOCATION_RIGHTBLINDSPOT = 5;    
 
        /**  ObstacleDistance
-        *   \brief MUST returns dictionary of Distance Sensor (byte, see DISTANCESENSORLOCATION) and distance (double) in m.    
+        *   \brief MUST returns Distance Sensor distance (Double) in m.
         **/
-       readonly attribute object ObstacleDistance;
+        attribute double obstacleDistance;
+};
+
+[NoInterfaceObject]
+interface NightMode : VehiclePropertyType {
+
+       /*!
+       * \brief MUST return whether or not the system is in NightMode or not.  True = Night time, False = Day time
+       **/
+       attribute boolean nightMode;
 };
 
+[NoInterfaceObject]
+interface DrivingMode : VehiclePropertyType {
+
+       /**
+       * \brief MUST return whether or not the system is in DrivingMode or not.  1 = Driving, 0 = Not Driving
+       **/
+       attribute unsigned short drivingMode;
 };
 
+
+