/** 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 values); callback SupportedPropertiesCallback = void (sequence 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 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 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 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 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; };