This specification defines a standard for Vehicle Data which might be available in a vehicle. It is designed to be used in conjunction with the Vehicle API Specification.
Status of This Document
This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.
Deprecated - Work on this document has been discontinued and it should not be referenced or used as a basis for implementation. The
W3C Automotive Working Group has taken a different direction.
Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate
to cite this document as other than work in progress.
Unless otherwise stated, SI units should be used where applicable for all attributes. Notable exceptions for this are temperature, which shall be specified in Celsius, and speed, which shall be specified in meters per hour.
Note
If an interface is provided, it MUST implement its non-nullable attributes otherwise it's optional. Many of the non-nullable attributes are found in interfaces with only one attribute (for example,
"VehicleSpeed").
2. Conformance
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key word MUST is to be interpreted as described in [RFC2119].
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.
3. Extending the Vehicle Data API
This specification anticipates that implementors may desire to extend this API and define new data types that this specification does not define. This section provides some general guidlines on how extending the API should be done.
All new data types must have two parts: a VehicleInterface attributed on the navigator.vehicle object and an interface definition that defines the data type.
The following example describes how one would extend the specification to add a "whizzer" data feature.
Example 1
partial interface Vehicle {
readonly attribute VehicleSignalInterface whizzer; /// returns an interface to the Whizzer type
}
interface Whizzer {
readonly attribute boolean isWhizzing;
}
3.1 Extending Existing Data Types
There may also be attributes of a data type interface that an implementor may wish to extend. The general guideline here is to add attributes to interfaces that are logically related. For example, lets say an implementor wishes to add support
for a new type of light. The implementor would extend the already existing Light interface and add the attribute there.
Because vehicle data may be different in a system than what is defined in the specication, it is preferable to perform post-processing to translate and map the system data to the defined type. It is NOT preferable to create a new type if one
has already been defined by this specification.
The VehicleCommonDataType interface represents the common data type for all vehicle data types
readonly attribute DOMTimeStamp? timeStamp
MUST return timestamp when any data in this interface was received on the system.
5. Configuration and Identification Interfaces
Interfaces relating to vehicle configuration and identification including: make, type size, transmission configuration and identification numbers.
Editor's note
Integers have been used in favor of floating point values in order to preserve precision during calculations (e.g. meters per hour instead of kilometers per hour).
The SizeConfiguration interface provides size and shape information about a vehicle as a whole.
readonly attribute unsigned short? width
MUST return widest dimension of the vehicle (not including the side mirrors) (Unit: millimeters Note: Number may be an approximation, and should not be expected to be exact.)
readonly attribute unsigned short? height
MUST return distance from the ground to the highest point of the vehicle (not including antennas) (Unit: millimeters Note: Number may be an approximation, and should not be expected to be exact.)
readonly attribute unsigned short? length
MUST return distance from front bumper to rear bumper (Unit: millimeters Note: Number may be an approximation, and should not be expected to be exact.)
readonly attribute unsigned short[]? doorsCount
MUST return list of car doors, organized in "rows" with number doors in each row.(Per Row - Min: 0, Max: 3)
readonly attribute unsigned short? totalDoors
MUST return total number of doors on the vehicle (all doors opening to the interior, including hatchbacks) (Min: 0, Max: 10)
The FuelConfiguration interface provides information about the fuel configuration of a vehicle. A dictionary has been used to allow an associated array of values
for vehicles which use multiple fuels.
FuelTypeEnum fuelType
MUST return type of fuel used by the vehicle.
DOMString fuelTypeVariant
MUST return the specific variant of fuel required by the vehicle, such as Premium Unleaded Gasoline or E10 Ethanol.
Zone refuelPosition
MUST return location on the vehicle with access to the fuel door for the associated fuel type.
gasoline
Gasoline
methanol
Methanol
ethanol
Ethanol
diesel
Diesel
lpg
Liquified petroleom gas
cng
Compressed natural gas
electric
Electric
readonly attribute any fuelOptions
MUST return a dictionary, as defined in FuelOptions, describing the fuel type, variant and refuel position used by the vehicle. If the vehicle uses multiple fuels, fuelOptions returns an array of FuelOptions.
The SteeringWheelConfiguration interface provides steering wheel configuration information about a vehicle.
readonly attribute Zone? steeringWheelLocation
MUST return the location on the steering wheel within the vehicle
attribute octet? steeringWheelTelescopingPosition
MUST return steering wheel position as a percentage of extension from the dash (Unit: 0%: closest to dash, 100%: farthest from dash)
attribute octet? steeringWheelPositionTilt
MUST return steering wheel position as a percentage of tilt (Unit: 0%: tilted lowest downward-facing position, 100%: highest upward-facing position)
6. Running Status Interfaces
Interfaces relating to the running/operation of a vehicle including: speed, temperatures and acceleration.
Editor's note
Integers have been used in favor of floating point values in order to preserve precision during calculations (e.g. meters per hour instead of kilometers per hour).
MUST return instant fuel consumption in per distance travelled (Unit: milliliters per 100 kilometers)
attribute unsigned long? averageConsumption
MUST return average fuel consumption in per distance travelled (Unit: milliliters per 100 kilometers). Setting this to any value should reset the counter to '0'
The Gyro interface represents vehicle angular rates. This interface utilises the ISO 8855 Z-up standard, with positive X forward, positive Y to the left, and
positive Z up.
readonly attribute short yawRate
MUST return yaw rate of vehicle. (Unit: degrees per second. +: Front of the vehicle moves left, -: Front of the vehicle moves right)
readonly attribute short pitchRate
MUST return pitch rate of vehicle. (Unit: degrees per second. +: Front of the vehicle moves down, -: Front of the vehicle moves up)
readonly attribute short rollRate
MUST return roll rate of vehicle. (Unit: degrees per second. +: Right side of the vehicle moves down, -: Right side of the vehicle moves up)
The DrivingStatus interface provides information about whether or not the vehicle is driving. DrivingStatus is an abstract data type that may combine several
other data types such as vehicle speed and transmission gear. Typical usage would be to disable certain functions in the application if the vehicle is not safe to operate those functions to avoid driver distraction.
readonly attribute boolean status
MUST return true if vehicle is in state of driving
The NightMode interface provides information about whether or not it is night time. NightMode is an abstract data type that may combine several other data types
such as exterior brightness, time of day and sunrise/sunset, to determine whether or not it is night time. Typical usage is to change the UI theme to a darker theme during the night.
The StartStopMode interface provides information about the status of start/stop feature of the vehicle, whereby the engine shuts off instead of idling while
stationary.
readonly attribute boolean? startStopEnabled
MUST return true if start/stop is enabled
readonly attribute boolean? startStopActive
MUST return true if start/stop is currently active
7. Maintenance Interfaces
Interfaces relating to vehicle maintenance, the act of inspecting or testing the condition of vehicle subsystems (e.g. engine) and servicing or replacing parts and fluids.
The UnitsOfMeasure interface provides information about the measurement system and units of measure of a vehicle.
attribute boolean? isMKSSystem
MUST return measurement system currently being used by vehicle. 'true' means the current measurement system is MKS-km(liter). 'false' means it is US customary units-mile(gallon).
attribute DOMString? unitsFuelVolume
MUST return fuel unit of measurement. The value is one of both "litter" and "gallon".
attribute DOMString? unitsDistance
MUST return distance unit of measurement. The value is one of both "km" and "mile".
attribute DOMString? unitsSpeed
MUST return speed unit of measurement. The value is one of both "km/h" and "mph".
attribute DOMString? unitsFuelConsumption
MUST return fuel consumption unit of measurement. The value is one of following values: "l/100", "mpg", "km/l".
The Mirror interface provides or sets information about mirrors in vehicle.
attribute byte? mirrorTilt
MUST return mirror tilt position as a percentage of distance travelled from downward-facing to upward-facing position (Unit: 0%: center position, +100%: fully upward, -100%: fully downward)
attribute byte? mirrorPan
MUST return mirror pan position as a percentage of distance travelled from left to right position (Unit: 0%: center position, +100%: fully left, -100%: fully right)
The VehicleSound interface provides or sets information about vehicle sound.
attribute boolean activeNoiseControlMode
MUST return active noise control status: not-activated (false), activated (true)
attribute DOMString? engineSoundEnhancementMode
MUST return engine sound enhancement mode where a null string means not-activated, and any other value represents a manufacture specific setting. See availableSounds.
readonly attribute DOMString[]? availableSounds
MUST return array of available sounds. See engineSoundEnhancementMode
9. DrivingSafety Interfaces
Interfaces related to driving safety such as anti-lock braking and airbag status.
Editor's note
Integers have been used in favor of floating point values in order to preserve precision during calculations (e.g. meters per hour instead of kilometers per hour).
The AtmosphericPressure interface provides information about the current atmospheric pressure outside of the vehicle.
readonly attribute unsigned short pressure
MUST return the current atmospheric pressure outside of the vehicle (Unit: hectopascal)
11. Vision and Parking Interfaces
Interfaces relating to vision and parking such as lane departure and parking brake.
Editor's note
For parkingSensors, it might need to revisit the naming because these sensor might be working while the car is running. For instance, distanceSensors, proximitySensors are might be other options. Depending on the name decision whole of interface
might be changed.
The ParkingSensors interface represents the current status of the parking sensors.
readonly attribute short? distanceToObject
MUST return the approximate distance to the nearest object from the parking sensor. If no objects are sensed this should return null (Unit: millimeters)
readonly attribute boolean? active
MUST return true if parking sensors are currently in use
readonly attribute Zone? zone
MUST return Zone for requested attribute
12. Use-Cases
12.1 Informative (Non-Normative)
12.1.1 Use Cases for Vehicle Configuration & Identification
Driver and technician are able to see vehicle configuration and identification information such VIN and vehicle size.
12.1.2 Use Cases for RunningStatus
Driver able to see driving performance information such as acceleration, speed and gears used.
Driver able to see fuel status such as economy, consumption, level and range.
12.1.3 Use Cases for Maintenance
Driver is able to see current state of key maintenance indicators such as fluid states, battery charge and tire pressure, and is given a 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.
12.1.4 Use Cases for Personalization
Driver and technician are able to see vehicle personalization information such seat and mirror position.
12.1.5 Use Cases for DrivingSafety
Driver able to see safety setting and warnings at a glance.
12.1.6 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.
12.1.7 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
12.1.8 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.
12.1.9 Use Cases for Electric Vehicle interfaces
To see current state of the battery level, remaining time before full charging, ...