This specification defines a standard for Vehicle Information API used to develop HTML5/JavaScript applications to run on in-vehicle infotainment systems and access resources of the vehicle. The API can also be used by HTML5/JavaScript applications running on mobile devices to access the resources of a connected vehicle. This specification does not dictate or describe the protocol or transport used for the connection. A typical use case of Vehicle Information is the implementation of a 'virtual mechanic' application that provides vehicle status information such as tire pressure, engine oil level, washer fluid level, battery status, etc.

The specification promotes an API that allows for third party application development in a manner that is consistent across automakers. It is recognized, however, that the mechanisms required for access or control of vehicle properties may differ between automotive trim levels, models, and automakers. Furthermore, different automakers may expose different properties that can be read or set by an application. As a result, this specification shall allow for automaker-specific extensions or restrictions. Extensions are only permitted for interfaces that are not already described by this API, and must be implemented to conform with the existing API format and guidelines used in this specification. If a property is restricted, the automaker would omit the optional feature in their implementation. Omitted featues are identified as "unsupported" as defined in the specification.

The target platform supported by the specification is exclusively passenger vehicles. Use of this specification for non-passenger applications (transportation, heavy machinery, marine, airline infotainment, military, etc.)is not prohibited, but is not covered in the design or content of the API and therefore may be insufficient.

Need to verify that we will use 'unsupported' to specify an property that is not supported.

Introduction

The Vehicle Information API provides operations to get access to the vehicle data (henceforth "properties") available from vehicle systems and also to change (write) a number of properties.

An example of use is provided below:

        var vehicle = navigator.vehicle;
        
        vehicle.vehicleSpeed.get().then(function(vehicleSpeed) {
          console.log("vehicle speed: " + vehicleSpeed.speed);
        },
        function(error) {
          console.log("There was an error");
        });
        
        var vehicleSpeedSub = vehicle.vehicleSpeed.subscribe(function(vehicleSpeed) {
          console.log("vehicle speed changed to: " + vehicleSpeed.speed);
          vehicle.vehicleSpeed.unsubscribe(vehicleSpeedSub);
        });
        
        var zone = new Zone;
        
        var zones = vehicle.climateControl.zones;
        
        for(var i in zones)
        {
           if(i.equals(zone.driver))
           {
              var value = {};
              value["acStatus"] = true;
              vehicle.climateControl.set(value, zone.driver).then(function(){
                console.log("successfully set acStatus");
             },
             function(error) {
               console.log("there was an error");
             });
           }        
        }        
  

This specification defines conformance criteria that apply to a single product: the user agent that implements the interfaces that it contains.

Implementations that use ECMAScript to implement the APIs defined in this specification MUST implement them in a manner consistent with the ECMAScript Bindings defined in the Web IDL specification [[!WEBIDL]], as this specification uses that specification and terminology.

Possibly remove some of these and add terms we do use

Terminology

The EventHandler interface represents a callback used for event handlers as defined in [[!HTML5]].

The concepts queue a task and fire a simple event are defined in [[!HTML5]].

The terms event handler and event handler event types are defined in [[!HTML5]].

Security and privacy considerations

This API MUST be only exposed to trusted content

Needs to be flushed out. Tina & Vadim discussing a proposal to address this.

Basic Interfaces

TODO:Definition Here

Navigator Interface

readonly attribute Vehicle vehicle
The object that exposes the interface to vehicle information services.

Vehicle Interface

The Vehicle interface represents the initial entry point for getting access to the vehicle information services, i.e. Engine Speed and Tire Pressure.

No data types here should be nullable and we need to add an attribute that returns a map or what the system capabilities are what is supported or not supported and why and a method to subscribe to capability changes

Zone Interface

The Zone interface contains the constants that represent physical zones and logical zones

const DOMString Front = "Front"
const DOMString Middle = "Middle"
const DOMString Right = "Right"
const DOMString Left = "Left"
const DOMString Rear = "Rear"
const DOMString Center = "Center"
attribute DOMString[] value
MUST return array of physical zones
readonly attribute Zone driver
MUST return physical zone for logical driver
readonly attribute Zone passenger
MUST return physical zone for logical passenger
boolean equals(Zone zone)
MUST return true if zone.value matches the contents of this.value. Ordering of elements within Zone.value does not matter.
boolean contains(Zone zone)
MUST return true if zone.value can be found within this.value

VehicleInterfaceCallback Callback

The VehicleInterfaceCallback

VehicleInterfaceErrorCallback Callback

The VehicleInterfaceErrorCallback

Define the types of possible errors

AvailableCallback Callback

The AvailableCallback

VehicleInterface Interface

The VehicleInterface interface represents the base interface to get and set all vehicle properties.

Promise get(optional Zone zone)
MUST return the Promise.
Promise set(object value, optional Zone zone)
MUST return Promise
unsigned short subscribe(VehicleInterfaceCallback callback, optional Zone zone)
MUST return handle to subscription or 0 if error
void unsubscribe(unsigned short handle)
MUST return void. unsubscribes to value changes on this interface.
readonly attribute Zone[] zones
MUST return all zones for this type.

Data availability

allows for developers to determine what attributes are available and why they are not available. It also allows for notifications when the availability changes.

available
data is available
not_supported
not supported by this vehicle
not_supported_yet
not supported at this time, but may become supported later.
not_supported_security
not supported because of security
not_supported_policy
not supported because of system policy
not_supported_other
not supported for other reasons
Availability available()
MUST return whether a not this attribute is available or not
readonly attribute boolean supported
MUST return true if this attribute is supported and available
short availabilityChangedListener( AvailableCallback callback )
MUST return handle for listener.
void removeAvailabilityChangedListener( short handle )
   if( ( var a = vehicle.vehicleSpeed.available() ) === "available" )
   {
     // we can use it.
   }
   else
   {
     // tell us why:
     console.log(a);
   }
   
   var canHasVehicleSpeed = vehicle.vehicleSpeed.available() === "available";

   vehicle.vehicle.availabilityChangedListener( function (available) {
     canHasVehicleSpeed = available === "available";
   });

   if(canHasVehicleSpeed)
   {
     vehicle.vehicleSpeed.get().then(callback);
   }        
  

VehicleCommonDataType Interface

The VehicleCommonDataType interface represents the common data type for all vehicle data types

readonly attribute Zone? zone
MUST return zone for this data type or null if there is no zone associated with this data type
readonly attribute DOMTimeStamp? timeStamp
MUST return timestamp when this data was received on the system

Configuration and Identification Interfaces

the act of inspecting or testing the condition of vehicle subsystems (e.g., engine) and servicing or replacing parts and fluids.

readonly attribute VehicleInterface ? identification
MUST return VehicleInterface for Identification
readonly attribute VehicleInterface ? sizeConfiguration
MUST return VehicleInterface for SizeConfiguration
readonly attribute VehicleInterface ? fuelConfiguration
MUST return VehicleInterface for FuelConfiguration
readonly attribute VehicleInterface ? transmissionConfiguration
MUST return VehicleInterface for TransmissionConfiguration
readonly attribute VehicleInterface ? wheelConfiguration
MUST return VehicleInterface for WheelConfiguration
readonly attribute VehicleInterface ? steeringWheelConfiguration
MUST return VehicleInterface for SteeringWheelConfiguration

Identification Interface

The Identification interface provides identification information about a vehicle.

readonly attribute DOMString ? VIN
the Vehicle Identification Number (ISO 3833)
readonly attribute DOMString ? WMI
the World Manufacture Identifier defined by SAE ISO 3780:2009. 3 characters.
readonly attribute DOMString[] ? vehicleType
readonly attribute DOMString ? brand
vehicle brand name
readonly attribute DOMString ? model
vehicle model type
readonly attribute unsigned short ? year
vehicle model year (Min: 2000, Max: 2100)
possibly use SAE/ISO to define types

[[VIN]](Vehicle Identification Number) is composed of several information including WMI, model year etc., but varies depending on standard.
In order to make it easy to use for App developers, it is recommended to provide each values as a separate attributes.

SizeConfiguration Interface

The SizeConfiguration interface provides size and shape information about a vehicle as a whole.

add weight (front and rear) and ground clearance

readonly attribute unsigned float ? width
Widest dimension of the vehicle (not including the side mirrors) (Unit: Meters, Resolution: 0.01, Min: 0, Max: 10 Note: Number may be an approximation, and should not be expected to be exact.)
readonly attribute unsigned float ? height
Distance from the ground to the highest point of the vehicle (not including antennas) (Unit: Meters, Resolution: 0.01, Min: 0, Max: 10 Note: Number may be an approximation, and should not be expected to be exact.)
readonly attribute unsigned float ? length
Distance from front bumper to rear bumper (Unit: Meters, Resolution: 0.01, Min: 0, Max: 10 Note: Number may be an approximation, and should not be expected to be exact.)
readonly attribute unsigned short[] ? doorsCount
list of car doors, organized in "rows" with number doors in each row.(Per Row - Min: 0, Max: 3)
NOTE TO EDITORS: DO NOT KNOW IF A LIST AS DESCRIBED CAN BE REPRESENTED IN WEBIDL MAY NEED TO REDO THIS.)For example, two door coupe would return {2}, four door sedan would return {2, 2}, four door SUV with hatchback would return {2, 2, 1}, etc.
(Justin) Exact figures maybe used for DR, etc. In other cases, some Apps may need to draw the shape of the vehicle. If an App can't know the exact data from Identification (from pre-stored data), the app can draw the vehicle as similarly as possible by using both Door Count and Vehicle Types.
readonly attribute unsigned short ? totalDoors
Total number of doors on the vehicle (all doors opening to the interior, including hatchbacks) (Min: 0, Max: 10)
(Kevron) Is it possible to use the zone concept with doors? Doing so would eliminate the need for complex arrays.
readonly attribute DOMString[]? vehicleType
Type of vehicle
Need enum of vehicle types?
(Justin) It would be better to define some types... Plz refer.. href://http://en.wikipedia.org/wiki/Car_body_style

FuelConfiguration Interface

The FuelConfiguration interface provides information about the fuel configuration of a vehicle.

This is having trouble showing up

gasoline
TODO: define
methanol
TODO: define
ethanol
TODO: define
diesel
TODO: define
lpg
TODO: define
cng
TODO: define
propane
TODO: define
electric
TODO: define
right
right side of vehicle referenced from driver position
left>
left side of vehicle referenced from driver position
readonly attribute FuelTypeEnum[] ? fuelType
type of fuel used by vehicle. If the vehicle uses multiple fuels, fuelType returns an array of fuel types.
readonly attribute RefuelPostion ? refuelPosition
Side of the vehicle with access to the fuel door

TransmissionConfiguration Interface

The TransmissionConfiguration interface provides transmission configuration information information about a vehicle.

auto
TODO: define
manual
TODO: define
cvt
TODO: define
readonly attribute TransmissionGearTypeEnum ? transmissionGearType
Transmission gear type

WheelConfiguration Interface

The WheelConfiguration interface provides wheel configuration information about a vehicle.

readonly attribute unsigned short ? wheelInfoRadius
Radius of the wheel (Unit: centimeter, Min: 0, Max: 1000)
readonly attribute unsigned short ? frontWheelRadius
Radius of the front wheel (Unit: centimeter, Min: 0, Max: 1000)
readonly attribute unsigned short ? rearWheelRadius
Radius of the rear wheel (Unit: centimeter, Min: 0, Max: 1000)

SteeringWheelConfiguration Interface

The SteeringWheelConfiguration interface provides steering wheel configuration information information about a vehicle.

readonly attribute unsigned boolean? steeringWheelLeft
True if steering wheel is on left side of vehicle

Running Status Interfaces

TODO:Definition Here

readonly attribute VehicleInterface vehicleSpeed
MUST return VehicleInterface for VehicleSpeed
readonly attribute VehicleInterface ? engineSpeed
MUST return VehicleInterface for EngineSpeed or undefined if not supported
readonly attribute VehicleInterface ? powerTrainTorque
MUST return VehicleInterface for PowerTrainTorque
readonly attribute VehicleInterface ? acceleratorPedalPosition
MUST return VehicleInterface for AcceleratorPedalPosition
readonly attribute VehicleInterface ? throttlePosition
MUST return VehicleInterface for ThrottlePosition
readonly attribute VehicleInterface ? tripMeter
MUST return VehicleInterface for TripMeter
readonly attribute VehicleInterface ? diagnostic
MUST return VehicleInterface for Diagnostic
readonly attribute VehicleInterface ? transmission
MUST return VehicleInterface for Transmission
readonly attribute VehicleInterface ? cruiseControlStatus
MUST return VehicleInterface for CruiseControlStatus
readonly attribute VehicleInterface ? lightStatus
MUST return VehicleInterface for LightStatus
readonly attribute VehicleInterface ? interiorLightStatus
MUST return VehicleInterface for InteriorLightStatus
readonly attribute VehicleInterface ? chime
MUST return VehicleInterface for Chime
readonly attribute VehicleInterface ? fuel
MUST return VehicleInterface for Fuel
readonly attribute VehicleInterface ? engineOil
MUST return VehicleInterface for EngineOil
readonly attribute VehicleInterface ? acceleration
MUST return VehicleInterface for Acceleration
readonly attribute VehicleInterface ? location
MUST return VehicleInterface for Location
readonly attribute VehicleInterface ? engineCoolant
MUST return VehicleInterface for EngineCoolant
readonly attribute VehicleInterface ? deadReckoning
MUST return VehicleInterface for DeadReckoning

VehicleSpeed Interface

The VehicleSpeed represents vehicle speed interface

readonly attribute unsigned short speed
MUST return vehicle speed in k/h

EngineSpeed Interface

The EngineSpeed represents engine speed interface

readonly attribute unsigned short speed
MUST return engine speed in rotations per minute. Range: 0-100,000

VehiclePowerModeType Interface

The VehiclePowerModeType represents position of the ignition switch

off
TODO: define
accessory1
TODO: define
accessory2
TODO: define
running
TODO: define
readonly attribute VehiclePowerMode value
postion of the ignition switch

PowerTrainTorque Interface

The PowerTrainTorque represents position of the ignition switch

readonly attribute unsigned short value
Powertrain torque
Units: Newton meters; Range: 0 - 10,000,000

AcceleratorPedalPosition Interface

The AcceleratorPedalPosition represents the accelerator pedal position

readonly attribute unsigned short value
Accelerator pedal position as a percentage (0%: released pedal, 100%: fully depressed)

ThrottlePosition Interface

The ThrottlePosition represents position of the throttle

readonly attribute unsigned short value
Throttle position as a percentage (0%: closed, 100%: fully open)

TripMeter Interface

The TripMeter represents trip meter

readonly attribute unsigned short distance
Distance travelled based on trip meter. Units: km; Range: 0 - 100,000,000
readonly attribute unsigned short ? averageSpeed
Average speed based on trip meter. Units: km/h; Range: 0 - 1000
readonly attribute unsigned short ? fuelConsumption
Fuel consumed based on trip meter. Units: l/100km; 0.0 - 100.0

Diagnostic Interface

The Diagnostic represents Diagnostic interface to malfunction indicator light information

readonly attribute unsigned short accumulatedEngineRuntime
engine runtime in hours. Range 0 - 1,000,000
readonly attribute unsigned short distanceWithMILOn
distance travelled with the malfunction indicator light on. Units km. Range: 0 - 100,000,000
readonly attribute unsigned short distanceSinceCodeCleared.
Distance travelled since the codes were last cleared. Units km. Range: 0 - 100,000,000
readonly attribute unsigned short timeRunMILOn
Time run with the malfunction indicator light on. Units: minutes. Range 0 - 100,000,000
readonly attribute unsigned short timeTroubleCodeClear
Time since the trouble codes were last cleared. Units: minutes. Range 0 - 100,000,000

Transmission Interface

The Transmission interface represents the current transmission gear and mode.

park
TODO: define
reverse
TODO: define
neutral
TODO: define
drive
TODO: define
readonly attribute octet ? gear
MUST return transmission gear position. Range 0 - 10
readonly attribute TransmissionMode ? mode
MUST return transmission Mode (see TransmissionMode)

CruiseControlStatus Interface

The CruiseControlStatus interface represents cruise control settings.

readonly attribute boolean status
MUST return whether or not the Cruise Control system is on (true) or off (false)
readonly attribute unsigned short Speed
MUST return target Cruise Control speed in kilometers per hour (km/h). Range: 0 - 1000;

LightStatus Interface

The LightStatus interface represents exterior light statuses.

attribute boolean head
MUST return headlight status: on (true), off (false)
attribute boolean rightTurn
MUST return right turn signal status: on (true), off (false)
attribute boolean leftTurn
MUST return left turn signal status: on (true), off (false)
attribute boolean brake
MUST return Brake light status: on (true), off (false)
attribute boolean? fog
MUST return Fog light status: on (true), off (false)
attribute boolean hazard
MUST return Hazard light status: on (true), off (false)
attribute boolean parking
MUST return Parking light status: on (true), off (false)
attribute boolean highBeam
MUST return HighBeam light status: on (true), off (false)
attribute boolean? automaticHeadlights
MUST return whether automatic head lights are activated (true) or not (false)
attribute boolean? dynamicHighBeam
MUST return whether dynamic high beam is activated (true) or not (false)

InteriorLightStatus Interface

The InteriorLightStatus interface represents interior light status.

attribute boolean status
MUST return passenger interior light status for the given zone: on (true), off (false)

Horn Interface

The Horn interface represents horn status.

attribute boolean status
MUST return Horn status: On (true) or off (false)

Chime Interface

The Chime interface represents horn status.

readonly attribute boolean status
MUST return Chime status when a door is open: On (true) or off (false)

Fuel Interface

The Fuel interface represents vehicle fuel status.

readonly attribute unsigned short level
MUST return fuel level as a percentage of fullness
readonly attribute unsigned short range
MUST return estimated fuel range in kilometers
readonly attribute unsigned short instantConsumption
MUST return instant fuel consumption in per distance travelled (l/100km)
readonly attribute unsigned short averageConsumption
MUST return average fuel consumption in per distance travelled (l/100km). Setting this to any value should reset the counter to '0'
readonly attribute unsigned short fuelConsumedSinceRestart
MUST return fuel consumed (l) since engine start; resets to 0 each restart
readonly attribute unsigned short vehicleTimeSinceRestart
MUST return time (min) elapsed since vehicle restart. Range 0 - 100,000,000

EngineOil Interface

The EngineOil interface represents engine oil status.

readonly attribute unsigned short remaining
MUST return remaining engine oil as percentage of fullness
readonly attribute long temperature
MUST return Engine Oil Temperature in Celcius
readonly attribute unsigned short pressure
MUST return Engine Oil Pressure in kPa
readonly attribute boolean change
MUST return engine oil change indicator status

Acceleration Interface

The Acceleration interface represents vehicle acceleration.

readonly attribute unsigned long x
MUST return acceleration on the "X" axis as 1/1000 G (gravitational force).
readonly attribute unsigned long y
MUST return acceleration on the "Y" axis as 1/1000 G (gravitational force).
readonly attribute unsigned long z
MUST return acceleration on the "Z" axis as 1/1000 G (gravitational force).

Location Interface

The Location interface represents vehicle location status. This is usually from gps, but could use a number of technologies.

readonly attribute double latitude
MUST return latitude in Deg.Min. Range: -180 - +180
readonly attribute double longitude
MUST return longitude in Deg.Min. Range: -90 - +90
readonly attribute double altitude
MUST return altitude in meters above sea-level (0). Range: -1000 - 10,000
readonly attribute unsigned short direction
MUST return cardinal direction in Degrees in which the vehicle is travelling. Range: 0 - 359

EngineCoolant Interface

The EngineCoolant represents

readonly attribute unsigned short level
MUST return engine coolant level as percentage of fullness
readonly attribute unsigned short temperature
MUST return engine coolant temperature in Celcius

DeadReckoning Interface

The DeadReckoning represents signals related to Dead Reckoning calculation

readonly attribute short steeringWheelAngle
MUST return angle of steering wheel off centerline. Range: -180 - 180
readonly attribute unsigned short wheelTickSensor
MUST return left/right wheel rotation counter. Range: 0 - 1,000,000

Maintenance Interfaces

the act of inspecting or testing the condition of vehicle subsystems (e.g., engine) and servicing or replacing parts and fluids.

readonly attribute VehicleInterface ? odometer
MUST return VehicleInterface for Odometer or undefined if not supported
readonly attribute VehicleInterface ? transmissionOil
MUST return VehicleInterface for TransmissionOil
readonly attribute VehicleInterface ? transmissionClutch
MUST return VehicleInterface for TransmissionClutch
readonly attribute VehicleInterface ? brake
MUST return VehicleInterface for Brake
readonly attribute VehicleInterface ? washerFluid
MUST return VehicleInterface for WasherFluid
readonly attribute VehicleInterface ? malfunctionIndicator
MUST return VehicleInterface for MalfunctionIndicator
readonly attribute VehicleInterface ? batteryStatus
MUST return VehicleInterface for BatteryStatus
readonly attribute VehicleInterface ? tire
MUST return VehicleInterface for Tire

Odometer Interface

The Odometer interface provides information about the distance that the vehicle has traveled.

readonly attribute unsigned short ? distanceSinceStart
the distance traveled by vehicle since start (Unit: kilometer, Resolution: 0.1, Min: 0, Max: 6553.5).
Available Zone: None
readonly attribute unsigned long distanceTotal
the total distance traveled by the vehicle (Unit: kilometer, Resolution: 0.1, Min: 0, Max: 429496729.5).
Available Zone: None

TransmissionOil Interface

The TransmissionOil interface provides information about the state of a vehicles transmission oil.

readonly attribute byte? wear
transmission oil wear (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0: no wear, 100: completely worn).
Available Zone: None
readonly attribute short ? temperature
current temperature of the transmission oil(Unit: Celsius, Resolution: 1, Min: -40, Max: 215).
Available Zone: None

TransmissionClutch Interface

The TransmissionClutch interface provides information about the state of a vehicles transmission clutch.

readonly attribute byte wear
transmission clutch wear (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0: no wear, 100: completely worn).
Available Zone: None

Brake Interface

The Brake interface provides information about the state of a vehicles brakes.

readonly attribute unsigned short ? fluidLevel
brake fluid level (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0: empty, 100: full).
Available Zone: None
readonly attribute boolean? fluidLevelLow
true if brake fluid level is low, false otherwise.
Available Zone: None
readonly attribute byte? padWear
front left brake pad wear (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0: no wear, 100: completely worn).
Available Zone: Front, Rear, Left, Right
readonly attribute boolean? brakesWorn
true if brakes are worn, false otherwise.
Available Zone: None

WasherFluid Interface

The WasherFluid interface provides information about the state of a vehicles washer fluid.

readonly attribute unsigned short ? level
brake fluid level (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0: empty, 100: full).
Available Zone: None
readonly attribute boolean? levelLow
true if washer fluid level is low, false otherwise.
Available Zone: None

MalfunctionIndicator Interface

The MalfunctionIndicator interface provides information about the state of a vehicles Malfunction Indicator lamp.

readonly attribute boolean on
true if malfunction indicator lamp is on, false otherwise.
Available Zone: None

BatteryStatus Interface

The BatteryStatus interface provides information about the state of a vehicles battery.

readonly attribute unsigned short ? chargeLevel
battery charge level (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0: empty, 100: full).
Available Zone: None
readonly attribute unsigned short ? voltage
battery voltage (Unit: Volts, Resolution: 0.1, Min: 0, Max: 25.2).
Available Zone: None
readonly attribute unsigned short ? current
battery current (Unit: Amperes, Resolution: 1, Min: 0, Max: 255).
Available Zone: None

Tire Interface

The Tire interface provides information about the state of a vehicles tires.

readonly attribute boolean? pressureLow
true if any tire pressure is low, false otherwise.
readonly attribute unsigned short ? pressure
tire pressure (Unit: kilopascal, Resolution: 3, Min: 0, Max: 765).
readonly attribute boolean? pressureLow
true if a tire pressure is low, false otherwise.
readonly attribute short ? temperature
tire temperature (Unit: Celsius, Resolution: 1, Min: -40, Max: 215).

Personalization Interfaces

the act of personalization the settings of vehicle such as seat and mirror position.

readonly attribute VehicleInterface ? driverIdentification
MUST return VehicleInterface for DriverIdentification
readonly attribute VehicleInterface? languageConfiguration
MUST return VehicleInterface for LanguageConfiguration
readonly attribute VehicleInterface ? unitsOfMeasure
MUST return VehicleInterface for UnitsOfMeasure
readonly attribute VehicleInterface ? mirror
MUST return VehicleInterface for Mirror
readonly attribute VehicleInterface ? steeringWheel
MUST return VehicleInterface for SteeringWheel
readonly attribute VehicleInterface ? driveMode
MUST return VehicleInterface for DriveMode
readonly attribute VehicleInterface ? seatAdjustment
MUST return VehicleInterface for SeatAdjustment
readonly attribute VehicleInterface ? dashboardIllumination
MUST return VehicleInterface for DashboardIllumination
readonly attribute VehicleInterface ? vehicleSound
MUST return VehicleInterface for VehicleSound

DriverIdentification Interface

The DriverIdentification interface provides driver identification information about a vehicle.

readonly attribute DOMString ? keyFobID
Key fob identifier used to select personalization settings
As the key fob identifier is likely to be used to identify personalization settings, what do we need to do to to add a method to make use of this?
readonly attribute DOMString ? driverID
Driver identifier that controls personalization settings
(same as KeyFob unless vehicle has alternative driver selection method)

LanguageConfiguration Interface

The LanguageConfiguration interface provides language information about a vehicle.

attribute unsigned float ? language
Language identifier based on two-letter codes as specified in ISO 639-1
Should make enum out of ISO 639-1?
(Justin) It seems to be provided at system level. It looks not vehicle-specific attribute

UnitsOfMeasure Interface

The UnitsOfMeasure interface provides information about the measurement system and units of measure of a vehicle.

attribute boolean ? isMKSSystem
measurement system currently being used by vehicle. 'true' means the current measurement system is MKS-km(litter). 'false' means it is US customary units-mile(gallon).
attribute DOMString? unitsFuelVolume
Fuel unit of measurement. The value is one of both "litter" and "gallon".
attribute DOMString ? unitsDistance
Distance unit of measurement. The value is one of both "km" and "mile".
attribute DOMString ? unitsSpeed
Speed unit of measurement. The value is one of both "km/h" and "mph".
attribute DOMString ? unitsFuelConsumption
Fuel consumption unit of measurement. The value is one of following values: "l/100", "mpg", "km/l".

Mirror Interface

The Mirror interface provides or sets information about mirrors in vehicle.

attribute unsigned short ? mirrorTilt
Mirror tilt position in percentage distance travelled, from downward-facing to upward-facing position (Unit: percentage, Resolution: 1, Min: -100, Max: 100, 0 represents center position)
Available Zone: Left, Right, Center
attribute unsigned short ? mirrorPan
Mirror pan position in percentage distance travelled, from left to right position (Unit: percentage, Resolution: 1, Min: -100, Max: 100, 0 represents center position)
Available Zone: Left, Right, Center

SeatAdjustment Interface

The SeatAdjustment interface provides or sets information about seats in vehicle.

attribute unsigned short ? reclineSeatBack
Seat back recline position as percent to completely reclined (Unit: percentage, Resolution: 1, Min: -100, Max: 100, center 0 represents the seatback upright at a 90 degree angle)
Available Zone: Front, Middle, Rear, Left, Right, Center
attribute unsigned short ? seatSlide
Seat slide position as percentage of distance travelled away from forwardmost position (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents seat position farthest forward)
Available Zone: Front, Middle, Rear, Left, Right, Center
attribute unsigned short ? seatCushionHeight
Seat cushion height position as a percentage of upward distance travelled (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents the lowest seat position)
Available Zone: Front, Middle, Rear, Left, Right, Center
attribute unsigned short ? seatHeadrest
Headrest position as a percentage of upward distance travelled (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents the lowest headrest position)
Available Zone: Front, Middle, Rear, Left, Right, Center
attribute unsigned short ? seatBackCushion
Back cushion position as a percentage of lumbar curvature (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents flat, and 100 is maximum curvature)
Available Zone: Front, Middle, Rear, Left, Right, Center
attribute unsigned short ? seatSideCushion
Sides of back cushion position as a percentage of curvature (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents flat, and 100 is maximum curvature)
Available Zone: Front, Middle, Rear, Left, Right, Center

SteeringWheel Interface

The SteeringWheel interface provides or sets information about steering wheel in vehicle.

attribute unsigned short ? steeringWheelTelescopingPosition
Steering wheel position as percentage of extension from the dash (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents steering wheel positioned closest to dash)
attribute unsigned short ? steeringWheelPositionTilt
Steering wheel position as percentage of tilt (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents steering wheel tilted lowest downward-facing position)

DriveMode Interface

The DriveMode interface provides or sets information about a vehicles drive mode.

comfort
TODO: define
auto
TODO: define
sport
TODO: define
eco
TODO: define
manual
TODO: define
attribute DriveModeEnum ? driveMode
Vehicle driving mode

DashboardIllumination Interface

The DashboardIllumination interface provides or sets information about dashboard illumination in vehicle.

attribute DOMString ? dashboardIllumination
Illumination of dashboard as a percentage (Unit: percentage, Resolution: 1, Min: 0, Max: 100, 0 represents none and 100 maximum illumination)

VehicleSound Interface

The VehicleSound interface provides or sets information about vehicle sound.

attribute boolean activeNoiseControlMode
Active noise control status (False: not-activated, True: activated)
attribute DOMString ? engineSoundEnhancementMode
Engine sound enhancement mode where a null string means not-activated, and any other value represents a manufacture specific setting

DrivingSafety Interfaces

TODO:Definition Here

readonly attribute VehicleInterface ? antilockBrakingSystem
MUST return VehicleInterface for AntilockBrakingSystem
readonly attribute VehicleInterface ? tractionControlSystem
MUST return VehicleInterface for TractionControlSystem
readonly attribute VehicleInterface ? electronicStabilityControl
MUST return VehicleInterface for ElectronicStabilityControl
readonly attribute VehicleInterface ? topSpeedLimit
MUST return VehicleInterface for TopSpeedLimit
readonly attribute VehicleInterface ? airbagStatus
MUST return VehicleInterface for AirbagStatus
readonly attribute VehicleInterface ? door
MUST return VehicleInterface for Door
readonly attribute VehicleInterface ? childSafetyLock
MUST return VehicleInterface for ChildSafetyLock
readonly attribute VehicleInterface ? seat
MUST return VehicleInterface for Seat

AntilockBrakingSystem Interface

The AntilockBrakingSystem provides status of ABS(Antilock Braking System) status and setting

readonly attribute boolean enabled
MUST return whether or not the ABS Setting is enabled (true) or disabled (false)
readonly attribute boolean engaged
MUST return whether or not the ABS is engaged (true) or idle (false)

TractionControlSystem Interface

The TractionControlSystem provides status of TCS(Traction Control System) status and setting

readonly attribute boolean enabled
MUST return whether or not the TCS Setting is enabled (true) or disabled (false)
readonly attribute boolean engaged
MUST return whether or not the TCS is engaged (true) or idle (false)

ElectronicStabilityControl Interface

The ElectronicStabilityControl provides status of ESC(Electronic Stability Control) status and setting

readonly attribute boolean enabled
MUST return whether or not the ESC Setting is enabled (true) or disabled (false)
readonly attribute boolean engaged
MUST return whether or not the ESC is engaged (true) or idle (false)

TopSpeedLimit Interface

The TopSpeedLimit provides the current setting of top speed limit of the vehicle

readonly attribute unsigned short speed
MUST return vehicle top speed limit in k/h

AirbagStatus Interface

The AirbagStatus provides the current status of airbags in each zones of the vehicle

readonly attribute boolean activated
MUST return whether or not the airbag is activated (true) or deactivated (false)
readonly attribute boolean deployed
MUST return whether the airbag is deployed (true) or not (false)

Available Zone: Driver, Passenger, Front, Rear, Middle, Left, Right

Door Interface

The Door provides the current status of doors in each zones of the vehicle

open
Door is opened
ajar
Door is ajar
close
Door is closed
readonly attribute DoorOpenStatus status
MUST return the status of door's open status
attribute boolean lock
MUST return whether or not the door is locked (true) or unlocked (false)

Available Zone: Driver, Passenger, Front, Rear, Middle, Left, Right, Fuel(Fuel Fliter Cap), Hood, Trunk

ChildSafetyLock Interface

The ChildSafetyLock provides the current setting of Child Safety Lock

attribute boolean lock
MUST return whether or not the Child Safety Lock is locked (true) or unlocked (false)

Seat Interface

The Seat provides the current occupant and seatbelt status of a seat in each zones of the vehicle

adult
occupant is an adult
child
occupant is a child
vacant
seat is vacant
readonly attribute OccupantStatus occupant
MUST return the status of seat occupant
readonly attribute boolean seatbelt
MUST return whether or not the seat belt is fasten (true) or unfasten (false)

Available Zone: Driver, Passenger, Front, Rear, Middle, Left, Right, Center

Climate Interfaces

TODO:Definition Here

readonly attribute VehicleInterface ? temperature
MUST return VehicleInterface for Temperature
readonly attribute VehicleInterface ? rainSensor
MUST return VehicleInterface for RainSensor
readonly attribute VehicleInterface ? wiperStatus
MUST return VehicleInterface for WiperStatus
readonly attribute VehicleInterface ? wiperSetting
MUST return VehicleInterface for WiperSetting
readonly attribute VehicleInterface ? defrost
MUST return VehicleInterface for Defrost
readonly attribute VehicleInterface ? sunroof
MUST return VehicleInterface for Sunroof
readonly attribute VehicleInterface ? convertibleRoof
MUST return VehicleInterface for ConvertibleRoof
readonly attribute VehicleInterface ? sideWindow
MUST return VehicleInterface for SideWindow
readonly attribute VehicleInterface ? climateControl
MUST return VehicleInterface for ClimateControl or undefined if not supported

Temperature Interface

The Temperature interface provides information about the current temperature of outside or inside vehicle.

readonly attribute short interiorTemperature
the current temperature of the air inside of the vehicle.
readonly attribute short exteriorTemperature
the current temperature of the air around the vehicle

Unit is deg. of Celsius
Resolution is 0.5
Range is -70 to 125
This interface is optional

There's relevant exploratory work in W3C.
https://dvcs.w3.org/hg/dap/raw-file/default/temperature/Overview.html
However, interior or exterior temperature MUST be distinguished in vehicles.

RainSensor Interface

The RainSensor interface provides information about ambient light levels.

readonly attribute unsigned byte rain
the amount of rain detected by the rain sensor. level of rain intensity ( 0: No Rain ~ 10: Heaviest Rain)

WiperStatus Interface

The WiperStatus interface represents the status of wiper operation.

readonly attribute unsigned byte frontWiperSpeed
current speed interval of wiping windshield ( 0: off, 1: Slowest ~ 10: Fastest )
readonly attribute unsigned byte? rearWiperSpeed
current speed interval of wiping rear window ( 0: off, 1: Slowest ~ 10: Fastest )

rearWiperSpeed is optional depending on vehicle type.

WiperSetting Interface

The WiperSetting interface represents the current setting of the wiper controller.

off
Wiper is not in operation
once
Wipe single. It's a transient state and goes to the off mode
slowest
Wiper is on mode with the slowest speed
slow
Wiper is on mode with slow speed
middle
Wiper is on mode with middle speed
fast
Wiper is on mode with fast speed
fastest
Wiper is on mode with the fastest speed
auto
Wiper is on the automatic mode which controls wiping speed with accordance with the amount of rain
attribute WiperControl frontWiperControl
current setting of the front wiper controller. It can be used to send user's request for changing setting.
attribute WiperControl? rearWiperControl
current setting of the rear wiper controller. It can be used to send user's request for changing setting.

rearWiperControl is optional depending on vehicle type.

Defrost Interface

The Defrost interface represents the status of wiper operation.

attribute boolean defrostWindShield
current status of the defrost switch for WindShield. It can be used to send user's request for changing setting.
attribute boolean? defrostRearWindow
current status of the defrost switch for rear window. It can be used to send user's request for changing setting.
attribute boolean? defrostSideMirrors
current status of the defrost switch for side mirrors. It can be used to send user's request for changing setting.

defrostRearWindow, defrostSideMirrors are optional depending on vehicle type.

Sunroof Interface

The Sunroof interface represents the current status of Sunroof.

attribute unsigned byte openness
current status of Sunroof as a percentage of openness ( 0: Closed, 100: Fully Opened).
attribute unsigned byte tilt
current status of Sunroof as a percentage of tilted ( 0: Closed, 100: Maximum Tilted).

Both can be used to send user's request for changing setting.

ConvertibleRoof Interface

The ConvertibleRoof interface represents the current status of Convertible Roof.

closed
The convertible roof is closed
closing
The convertible roof is closing
opening
The convertible roof is opening
opened
The convertible roof is opened
attribute ConvertibleRoofStatus status
current status of Convertible Roof.

It can be used to send user's request for changing setting. "closed" is used to close and "opened" is used to open.

SideWindow Interface

The SideWindow interface represents the current status of openness of side windows.

attribute unsigned boolean? lock
MUST return whether or not the window is locked (true) or unlocked (false)
attribute unsigned byte? openness
current status of the side window as a percentage of openness. (0:Closed, 100:Fully Opened)

Available Zone: Front, Rear, Left, Right
It can be used to send user's request for changing setting.

ClimateControl Interface

The ClimateControl interface represents the current setting of the climate control equipments such as heater and air conditioner.

frontpanel
Air flow is directed to the instrument panel outlets
floorduct
Air flow is directed to the floor outlets
bilevel
Air flow is directed to the instrument panel outlets and the floor outlets
defrostfloor
Air flow is directed to the floor outlets and the windshield
attribute AirflowDirection airflowDirection
current status of the direction of the air flow through the ventilation system
attribute unsigned byte fanSpeedLevel
current status of the fan speed of the air flowing ( 0: off, 1: weakest ~ 10: strongest )
attribute byte? targetTemperature
current setting of the desired temperature (Unit is deg. of Celsius, Resolution is 0.5, Range is -70 to 125)
attribute boolean airConditioning
current status of the air conditioning system (true: on, false: off)
attribute boolean heater
current status of the heating system (true: on, false: off)
attribute unsigned byte? seatHeater
current status of the seat warmer ( 0: off, 1: least warm ~ 10: warmest )
attribute unsigned byte? seatCooler
current status of the seat ventilation ( 0: off, 1: least warm ~ 10: warmest )
attribute boolean airRecirculation
current setting of air recirculation. (true : on, false : pulling in outside air).
Available Zone: None
attribute unsigned byte? steeringWheelHeater
current status of steering wheel heater ( 0: off, 1: least warm ~ 10: warmest ).
Available Zone: None

ClimateControl can be used to send user's request for changing setting.

Vision and Parking Interfaces

the act of inspecting or testing the condition of vehicle subsystems (e.g., engine) and servicing or replacing parts and fluids.

Those three categories need to be more clearly defined. It will help determine data elements fall within them. Vision system and parking seems not very clear in regards with Driving safety where some functions are also related to parking and vision. It is clear that certain elements could fall within multiple categories depending on how one might want to classify them. Vision is much more than only lane departure warning. Electric vehicle category should be renamed in order to cover alternate power trains (hybrid, range extenders,etc)

readonly attribute VehicleInterface ? laneDepartureStatus
MUST return VehicleInterface for LaneDepartureStatus or undefined if not supported
readonly attribute VehicleInterface ? alarm
MUST return VehicleInterface for Alarm
readonly attribute VehicleInterface ? parkingBrake
MUST return VehicleInterface for ParkingBrake
readonly attribute VehicleInterface ? parkingLights
MUST return VehicleInterface for ParkingLights

LaneDepartureDetection Interface

The LaneDepartureDetection interface represents the current status of the lane departure warning function.

off
The function is not running
pause
The function has been paused (running, but inactive)
running
The function is in its operational mode
readonly attribute LaneDepartureStatus status
current status of Lane departure warning function.

Alarm Interface

The Alarm interface represents the current status of the in vehicle Alarm system.

disarmed
The alarm is not armed
preArmed
The function is temporary not active
armed
The function is active
alarmed
The Alarm is screaming
attribute AlarmStatus status
current status of In vehicle Alarm System.

ParkingBrake Interface

The ParkingBrake interface represents the current status of the parking brake.

inactive
Parking brake is not engaged (driving position)
active
Parking brake is engaged (parking position)
error
There is a problem with the parking brake system
readonly attribute ParkingBrakeStatus status
current status of parking brake.

ParkingLights Interface

The ParkingLights interface represents the current status of the parking Lights.

readonly attribute boolean status
MUST return parking light status: on (true), off (false)
attribute boolean setting
MUST return whether or not the Parking Lights is enabled (true) or disabled (false).
It can be used to send user's request for changing setting.

Use-Cases

Use Cases for Vehicle Configuration & Identification

  • Driver and technician are able to see vehicle configuration and identification information such VIN and vehicle size.

Use Cases for RunningStatus

    TODO:

Use Cases for Maintenance

  • Driver is able to see current state of key maintenance indicators (fluid states, battery charge, tire pressure, etc...) giving an snapshot of vehicle health while in and out of vehicle.
  • Driver receives alert notifications in and out of car letting him know of maintenance issues that need to be addressed.
  • If desired driver may share maintenance information with repair facility.

Use Cases for Personalization

  • Driver and technician are able to see vehicle personalization information such seat and mirror position.

Use Cases for DrivingSafety

    TODO:

Use Cases for Climate

  • IVI system shows the status of various climate control equipments as GUI and lets a user control it via touch screen.
  • A user uses his smart devices to remotely check whether side windows of his parked car are closed or not, and to send a request to the car for closing it if opened.
  • A user uses his smart devices to start his car remotely, and turns heaters on to warm up the car inside before getting in the car.
  • If users agree to provide vehicle information to the weather station, many cars can be used to get weather information such as amounts of rain and ambient temperatures.

Use Cases for Vision interfaces

  • To warn when the vehicle goes on another lane (Lane departure warning function)
  • To warn in case of an danger (vehicle, pedestrian, animals, stop sign, red light, ...)
  • To record the scene before and after an accident (for insurance or testimony)
  • To improve vision in the dark

Use Cases for Parking interfaces

  • To be informed in case of intrusion in or around the vehicle.
  • To be informed of the parking brake status.

Use Cases for Electric Vehicle interfaces

  • To see current state of the battery level, remaining time before full charging, ...
  • To check if the charging is plugged or unplugged.