IVI/API

From Tizen Wiki
< IVI
Jump to: navigation, search

IVI Specific API

These are the APIs that are specific to Tizen IVI. The code for them currently resides in wrt-plugins-ivi.

Vehicle

This API is used to communicate with the Automotive Message Broker (AMB).

/**
	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 {
		/**  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 = 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
		 **/
		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 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
		 *  \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);

		/**
		 *  \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.
		 **/
		 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;

		/**  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;    

		/**  openness
		 *   \brief Must return window openness percentage (100% fully open, 0% fully closed)
		 *  for the window location see "zone" attribute
		 **/
		attribute unsigned short openness;

		/**  defrost
		*   \brief Must return the defroster status of the window. On = true, Off = false.
		**/
		attribute boolean defrost;
	};

	[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 AIRBAGSTATUS_INACTIVE = 0;    
		const unsigned short AIRBAGSTATUS_ACTIVE = 1;    
		const unsigned short AIRBAGSTATUS_DEPLOYED = 2;    

		/**  AirbagStatus
		 *   \brief MUST return Airbag deployment status (see AIRBAGSTATUS*)
		 **/
		 attribute unsigned short airbagStatus;
	};

	[NoInterfaceObject]
	interface DoorStatus : VehiclePropertyType  { 
		const unsigned short DOORSTATUS_CLOSED = 0;    
		const unsigned short DOORSTATUS_OPEN = 1;    
		const unsigned short DOORSTATUS_AJAR = 2;    

		 /**  DoorStatus
		 *   \brief MUST returns Door status (byte).  See DOORSTATUS_*
		 **/
		 attribute unsigned short doorStatus;

		/**  DoorLockStatus
		 *   \brief MUST returns Door status (bool locked = true, unlocked = false).
		 **/
		 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.    
		 **/
		 attribute boolean childLockStatus;
	};

	[NoInterfaceObject]
	interface SeatBeltStatus : VehiclePropertyType  { 

		/**  SeatBeltStatus
		 *   \brief MUST return Seat Belt status (bool: Fasten = true, Unfastened = false)
		 **/
		 attribute boolean seatBeltStatus;
	};

	[NoInterfaceObject]
	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 Occupant status (byte, see OCCUPANTSTATUS)
		 **/
		 attribute unsigned short 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 Distance Sensor distance (Double) in m.
		 **/
		 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;
	};

Locale

This API is used for Locale related settings.

        /**
	Details. 

	\def-api-feature http://tizen.org/api/vehicle 
	\brief Allows access to the vehicle API
	*/

	[NoInterfaceObject]
	interface LocaleManagerObject {
		readonly attribute Locale locale;
	};

	Tizen implements Locale;

	callback LocaleChangedCallback = void (DOMString newLocale);


	[NoInterfaceObject]
	interface Locale  { 

		/**
		 *  \brief gets the current locale
		 *  \returns current locale in ISO 639-2 format (ie en_US for english US)
		 **/
		void getLocale();
		
		/**
		 *  \brief sets the system locale
		 *  \param newLocale locale to set in ISO 639-2 format
		 **/
		 void setLocale(DOMString newLocale)
		 
		 /**
		 *  \brief subscribe to locale changes.
		 *  \param cb callback to be called when this even occurs.
		 **/
		 void localeChanged(LocaleChangedCallback cb);

	};

Speech

This API is used for speech to text / text to speech functions.

    [Constructor]
    interface SpeechRecognition : EventTarget {
        // recognition parameters
        attribute SpeechGrammarList grammars;
        attribute DOMString lang;
        attribute boolean continuous;
        attribute boolean interimResults;
        attribute unsigned long maxAlternatives;
        attribute DOMString serviceURI;

        // methods to drive the speech interaction
        void start();
        void stop();
        void abort();

        // event methods
        attribute EventHandler onaudiostart;
        attribute EventHandler onsoundstart;
        attribute EventHandler onspeechstart;
        attribute EventHandler onspeechend;
        attribute EventHandler onsoundend;
        attribute EventHandler onaudioend;
        attribute EventHandler onresult;
        attribute EventHandler onnomatch;
        attribute EventHandler onerror;
        attribute EventHandler onstart;
        attribute EventHandler onend;
    };

        enum ErrorCode {
          "no-speech",
          "aborted",
          "audio-capture",
          "network",
          "not-allowed",
          "service-not-allowed",
          "bad-grammar",
          "language-not-supported"
        };

    interface SpeechRecognitionError : Event {
        readonly attribute ErrorCode error;
        readonly attribute DOMString message;
    };

    // Item in N-best list
    interface SpeechRecognitionAlternative {
        readonly attribute DOMString transcript;
        readonly attribute float confidence;
    };

    // A complete one-shot simple response
    interface SpeechRecognitionResult {
        readonly attribute unsigned long length;
        getter SpeechRecognitionAlternative item(unsigned long index);
        readonly attribute boolean final;
    };

    // A collection of responses (used in continuous mode)
    interface SpeechRecognitionResultList {
        readonly attribute unsigned long length;
        getter SpeechRecognitionResult item(unsigned long index);
    };

    // A full response, which could be interim or final, part of a continuous response or not
    interface SpeechRecognitionEvent : Event {
        readonly attribute unsigned long resultIndex;
        readonly attribute SpeechRecognitionResultList results;
        readonly attribute any interpretation;
        readonly attribute Document emma;
    };

    // The object representing a speech grammar
    [Constructor]
    interface SpeechGrammar {
        attribute DOMString src;
        attribute float weight;
    };

    // The object representing a speech grammar collection
    [Constructor]
    interface SpeechGrammarList {
        readonly attribute unsigned long length;
        getter SpeechGrammar item(unsigned long index);
        void addFromURI(DOMString src, optional float weight);
        void addFromString(DOMString string, optional float weight);
    };

Media Server

This API is for accessing remote media.

	/**

	Details.

	\def-api-feature http://tizen.org/api/mediaserver
	\brief Allows access to the mediaserver API

	module MediaServer

	*/

	partial interface Navigator   {
		 readonly attribute MediaServerManager mediaserver;
	};

	[NoInterfaceObject]
	interface MediaServerManager  {

		/**
		 *  \brief Scans local network for MediaServers.
		 *  \param successCallback callback invoqued for each MediaServer discovered.
		 *  \param errorCallback
		 **/
		scanNetwork(MediaServerFoundServerCallback successCallback, optional MediaServerErrorCallback errorCallback);
	};

	[NoInterfaceObject]
	interface MediaServer  {

		/**  id
		 *   \brief An opaque unique ID.
		 **/
		 readonly attribute DOMString id;

		/**  friendlyName
		 *   \brief A user-friendly name for the device.
		 **/
		 readonly attribute DOMString friendlyName;

		/**  root
		 *   \brief Media Server root folder.
		 **/
		 readonly attribute object root;

		/**
		 *  \brief Browses for media item under a given MediaContainer.
		 *  \param containerId
		 *  \param sortMode
		 *  \param count
		 *  \param offset
		 *  \param successCallback
		 *  \param errorCallback
		 **/
		browse(DOMString containerId, DOMString sortMode, unsigned long count, unsigned long offset, MediaServerBrowseFindCallback successCallback, optional MediaServerErrorCallback errorCallback);

		/**
		 *  \brief Searches for media item under a given MediaContainer.
		 *  \param containerId
		 *  \param searchFilter
		 *  \param sortMode
		 *  \param count
		 *  \param offset
		 *  \param successCallback
		 *  \param errorCallback
		 **/
		find(DOMString containerId, DOMString searchFilter, DOMString sortMode, unsigned long count, unsigned long offset, MediaServerBrowseFindCallback successCallback, optional MediaServerErrorCallback errorCallback);
	};



	[NoInterfaceObject]
	interface MediaServerError   {
		const unsigned short GENERIC = 1;

		/**  code
		 *   MUST return error code.
		 **/
		 attribute unsigned short code;

		/**  message
		 *   MUST return error message
		 **/
		 attribute DOMString message;
	};



	callback MediaServerFoundServerCallback = void (MediaServer value);

	callback MediaServerBrowseFindCallback = void (sequence<object> value);

	callback MediaServerErrorCallback = void (MediaServerError error);