Abstract

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 http://www.w3.org/TR/.

This document was published by the Automotive Working Group as a Working Draft. This document is intended to become a W3C Recommendation. If you wish to make comments regarding this document, please send them to public-automotive@w3.org (subscribe, archives). All comments are welcome.

Publication as a Working Draft 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.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

This document is governed by the 1 September 2015 W3C Process Document.

Table of Contents

1. Introduction

This section is non-normative.

Each data type is accessed through a VehicleInterface attribute available on the navigator.vehicle object. The attribute name corresponds with the Vehicle Type. For example, the attribute "vehicle.vehicleSpeed" is the interface to the data type "VehicleSpeed".

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.

Example 2
partial interface Light {
  attribute boolean superBeam;
}

3.2 Mapping vs. Extending

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.

4. VehicleCommonDataType Interface

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

interface VehicleCommonDataType {
    readonly        attribute DOMTimeStamp? timeStamp;
};

4.1 Attributes

timeStamp of type DOMTimeStamp, readonly , nullable
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).

partial interface Vehicle {
    readonly        attribute VehicleConfigurationInterface identification;
    readonly        attribute VehicleConfigurationInterface sizeConfiguration;
    readonly        attribute VehicleConfigurationInterface fuelConfiguration;
    readonly        attribute VehicleConfigurationInterface transmissionConfiguration;
    readonly        attribute VehicleConfigurationInterface wheelConfiguration;
    readonly        attribute VehicleSignalInterface        steeringWheelConfiguration;
};

5.1 Attributes

fuelConfiguration of type VehicleConfigurationInterface, readonly
MUST return VehicleConfigurationInterface for accessing FuelConfiguration
identification of type VehicleConfigurationInterface, readonly
MUST return VehicleConfigurationInterface for accessing Identification
sizeConfiguration of type VehicleConfigurationInterface, readonly
MUST return VehicleConfigurationInterface for accessing SizeConfiguration
steeringWheelConfiguration of type VehicleSignalInterface, readonly
MUST return VehicleConfigurationInterface for accessing SteeringWheelConfiguration
transmissionConfiguration of type VehicleConfigurationInterface, readonly
MUST return VehicleConfigurationInterface for accessing TransmissionConfiguration
wheelConfiguration of type VehicleConfigurationInterface, readonly
MUST return VehicleConfigurationInterface for accessing WheelConfiguration

5.2 Identification Interface

The Identification interface provides identification information about a vehicle.

enum VehicleTypeEnum {
    "passengerCarMini",
    "passengerCarLight",
    "passengerCarCompact",
    "passengerCarMedium",
    "passengerCarHeavy",
    "sportUtilityVehicle",
    "pickupTruck",
    "van"
};
Enumeration description
passengerCarMiniPassenger car 680–907 kg
passengerCarLightPassenger car 907–1,134 kg
passengerCarCompactPassenger car 1,134–1,360 kg
passengerCarMediumPassenger car 1,361–1,587 kg
passengerCarHeavyPassenger car 1,588 kg and over
sportUtilityVehicleSport utility vehicle
pickupTruckPickup truck
vanVan
interface Identification : VehicleCommonDataType {
    readonly        attribute DOMString?       VIN;
    readonly        attribute DOMString?       WMI;
    readonly        attribute VehicleTypeEnum? vehicleType;
    readonly        attribute DOMString?       brand;
    readonly        attribute DOMString?       model;
    readonly        attribute unsigned short?  year;
};

5.2.1 Attributes

VIN of type DOMString, readonly , nullable
MUST return the Vehicle Identification Number (ISO 3833)
WMI of type DOMString, readonly , nullable
MUST return the World Manufacturer Identifier defined by SAE ISO 3780:2009. 3 characters.
brand of type DOMString, readonly , nullable
MUST return vehicle brand name
model of type DOMString, readonly , nullable
MUST return vehicle model
vehicleType of type VehicleTypeEnum, readonly , nullable
MUST return vehicle type
year of type unsigned short, readonly , nullable
MUST return vehicle model year

5.3 SizeConfiguration Interface

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

interface SizeConfiguration : VehicleCommonDataType {
    readonly        attribute unsigned short?   width;
    readonly        attribute unsigned short?   height;
    readonly        attribute unsigned short?   length;
    readonly        attribute unsigned short[]? doorsCount;
    readonly        attribute unsigned short?   totalDoors;
};

5.3.1 Attributes

doorsCount of type array of unsigned short, readonly , nullable
MUST return list of car doors, organized in "rows" with number doors in each row.(Per Row - Min: 0, Max: 3)
height of type unsigned short, readonly , nullable
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.)
length of type unsigned short, readonly , nullable
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.)
totalDoors of type unsigned short, readonly , nullable
MUST return total number of doors on the vehicle (all doors opening to the interior, including hatchbacks) (Min: 0, Max: 10)
width of type unsigned short, readonly , nullable
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.)

5.4 FuelConfiguration Interface

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.

dictionary FuelOptions {
             FuelTypeEnum fuelType;
             DOMString    fuelTypeVariant;
             Zone         refuelPosition;
};

5.4.1 Dictionary FuelOptions Members

fuelType of type FuelTypeEnum
MUST return type of fuel used by the vehicle.
fuelTypeVariant of type DOMString
MUST return the specific variant of fuel required by the vehicle, such as Premium Unleaded Gasoline or E10 Ethanol.
refuelPosition of type Zone
MUST return location on the vehicle with access to the fuel door for the associated fuel type.
enum FuelTypeEnum {
    "gasoline",
    "methanol",
    "ethanol",
    "diesel",
    "lpg",
    "cng",
    "electric"
};
Enumeration description
gasolineGasoline
methanolMethanol
ethanolEthanol
dieselDiesel
lpgLiquified petroleom gas
cngCompressed natural gas
electricElectric
interface FuelConfiguration : VehicleCommonDataType {
    readonly        attribute any fuelOptions;
};

5.4.2 Attributes

fuelOptions of type any, readonly
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.

5.5 TransmissionConfiguration Interface

The TransmissionConfiguration interface provides transmission configuration information about a vehicle.

enum TransmissionGearTypeEnum {
    "auto",
    "manual"
};
Enumeration description
autoAutomatic transmission
manualManual transmission
interface TransmissionConfiguration : VehicleCommonDataType {
    readonly        attribute TransmissionGearTypeEnum? transmissionGearType;
};

5.5.1 Attributes

transmissionGearType of type TransmissionGearTypeEnum, readonly , nullable
MUST return transmission gear type

5.6 WheelConfiguration Interface

The WheelConfiguration interface provides wheel configuration information about a vehicle.

interface WheelConfiguration : VehicleCommonDataType {
    readonly        attribute unsigned short? wheelRadius;
    readonly        attribute Zone?           zone;
};

5.6.1 Attributes

wheelRadius of type unsigned short, readonly , nullable
MUST return radius of the front wheel (Unit: millimeters)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

5.7 SteeringWheelConfiguration Interface

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

interface SteeringWheelConfiguration : VehicleCommonDataType {
    readonly        attribute Zone?  steeringWheelLocation;
                    attribute octet? steeringWheelTelescopingPosition;
                    attribute octet? steeringWheelPositionTilt;
};

5.7.1 Attributes

steeringWheelLocation of type Zone, readonly , nullable
MUST return the location on the steering wheel within the vehicle
steeringWheelPositionTilt of type octet, nullable
MUST return steering wheel position as a percentage of tilt (Unit: 0%: tilted lowest downward-facing position, 100%: highest upward-facing position)
steeringWheelTelescopingPosition of type octet, nullable
MUST return steering wheel position as a percentage of extension from the dash (Unit: 0%: closest to dash, 100%: farthest from dash)

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).

partial interface Vehicle {
    readonly        attribute VehicleSignalInterface vehicleSpeed;
    readonly        attribute VehicleSignalInterface wheelSpeed;
    readonly        attribute VehicleSignalInterface engineSpeed;
    readonly        attribute VehicleSignalInterface vehiclePowerModeType;
    readonly        attribute VehicleSignalInterface powertrainTorque;
    readonly        attribute VehicleSignalInterface acceleratorPedalPosition;
    readonly        attribute VehicleSignalInterface throttlePosition;
    readonly        attribute VehicleSignalInterface tripMeters;
    readonly        attribute VehicleSignalInterface transmission;
    readonly        attribute VehicleSignalInterface cruiseControlStatus;
    readonly        attribute VehicleSignalInterface lightStatus;
    readonly        attribute VehicleSignalInterface interiorLightStatus;
    readonly        attribute VehicleSignalInterface horn;
    readonly        attribute VehicleSignalInterface chime;
    readonly        attribute VehicleSignalInterface fuel;
    readonly        attribute VehicleSignalInterface engineOil;
    readonly        attribute VehicleSignalInterface acceleration;
    readonly        attribute VehicleSignalInterface engineCoolant;
    readonly        attribute VehicleSignalInterface steeringWheel;
    readonly        attribute VehicleSignalInterface wheelTick;
    readonly        attribute VehicleSignalInterface ignitionTime;
    readonly        attribute VehicleSignalInterface gyro;
    readonly        attribute VehicleSignalInterface brakeOperation;
    readonly        attribute VehicleSignalInterface buttonEvent;
    readonly        attribute VehicleSignalInterface drivingStatus;
    readonly        attribute VehicleSignalInterface nightMode;
    readonly        attribute VehicleSignalInterface startStopMode;
};

6.1 Attributes

acceleration of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Acceleration
acceleratorPedalPosition of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing AcceleratorPedalPosition
brakeOperation of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing BrakeOperation
buttonEvent of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ButtonEvent
chime of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Chime
cruiseControlStatus of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing CruiseControlStatus
drivingStatus of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing DrivingStatus
engineCoolant of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing EngineCoolant
engineOil of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing EngineOil
engineSpeed of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing EngineSpeed or undefined if not supported
fuel of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Fuel
gyro of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Gyro
horn of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Horn
ignitionTime of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing IgnitionTime
interiorLightStatus of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing InteriorLightStatus
lightStatus of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing LightStatus
nightMode of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing NightMode
powertrainTorque of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing PowertrainTorque
startStopMode of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing StartStopMode
steeringWheel of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing SteeringWheel
throttlePosition of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ThrottlePosition
transmission of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Transmission
tripMeters of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing TripMeters
vehiclePowerModeType of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing VehiclePowerModeType
vehicleSpeed of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing VehicleSpeed
wheelSpeed of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing WheelSpeed
wheelTick of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing WheelTick

6.2 VehicleSpeed Interface

The VehicleSpeed interface represents vehicle speed information

interface VehicleSpeed : VehicleCommonDataType {
    readonly        attribute unsigned long speed;
};

6.2.1 Attributes

speed of type unsigned long, readonly
MUST return vehicle speed (Unit: meters per hour)

6.3 WheelSpeed Interface

The WheelSpeed interface represents wheel speed information.

interface WheelSpeed : VehicleCommonDataType {
    readonly        attribute unsigned long speed;
    readonly        attribute Zone?         zone;
};

6.3.1 Attributes

speed of type unsigned long, readonly
MUST return wheel speed (Unit: meters per hour)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

6.4 EngineSpeed Interface

The EngineSpeed interface represents engine speed information.

interface EngineSpeed : VehicleCommonDataType {
    readonly        attribute unsigned long speed;
};

6.4.1 Attributes

speed of type unsigned long, readonly
MUST return engine speed (Unit: rotations per minute)

6.5 VehiclePowerModeType Interface

The VehiclePowerModeType interface represents position of the ignition switch.

enum VehiclePowerMode {
    "off",
    "accessory1",
    "accessory2",
    "running",
    "cranking"
};
Enumeration description
offOff - No power
accessory1Accessory power mode 1: Some electronics and modules are powered
accessory2Accessory power mode 2: All electronics and modules are powered
runningPower mode during engine running
crankingPower mode during engine cranking
interface VehiclePowerModeType : VehicleCommonDataType {
    readonly        attribute VehiclePowerMode value;
};

6.5.1 Attributes

value of type VehiclePowerMode, readonly
MUST return position of the ignition switch

6.6 PowertrainTorque Interface

The PowertrainTorque interface represents powertrain torque.

interface PowertrainTorque : VehicleCommonDataType {
    readonly        attribute short value;
};

6.6.1 Attributes

value of type short, readonly
MUST return powertrain torque (Unit: newton meters)

6.7 AcceleratorPedalPosition Interface

The AcceleratorPedalPosition interface represents the accelerator pedal position.

interface AcceleratorPedalPosition : VehicleCommonDataType {
    readonly        attribute octet value;
};

6.7.1 Attributes

value of type octet, readonly
MUST return accelerator pedal position as a percentage (Unit: 0%: released pedal, 100%: fully depressed)

6.8 ThrottlePosition Interface

The ThrottlePosition represents position of the throttle.

interface ThrottlePosition : VehicleCommonDataType {
    readonly        attribute octet value;
};

6.8.1 Attributes

value of type octet, readonly
MUST return throttle position as a percentage (Unit: 0%: closed, 100%: fully open)

6.9 Trip Interface

The Trip interface represents trip meter.

interface Trip {
    readonly        attribute unsigned long   distance;
    readonly        attribute unsigned long?  averageSpeed;
    readonly        attribute unsigned short? fuelConsumption;
};

6.9.1 Attributes

averageSpeed of type unsigned long, readonly , nullable
MUST return average speed based on trip meter (Unit: meters per hour)
distance of type unsigned long, readonly
MUST return distance travelled based on trip meter (Unit: meters)
fuelConsumption of type unsigned short, readonly , nullable
MUST return fuel consumed based on trip meter (Unit: milliliters per 100 kilometers)
interface TripMeters : VehicleCommonDataType {
    readonly        attribute Trip[] meters;
};

6.9.2 Attributes

meters of type array of Trip, readonly
MUST return trip meters

6.10 Transmission Interface

The Transmission interface represents the current transmission gear and mode.

enum TransmissionMode {
    "park",
    "reverse",
    "neutral",
    "low",
    "drive",
    "overdrive"
};
Enumeration description
parkTransmission is in park
reverseTransmission is in reverse
neutralTransmission is in neutral
lowTransmission is in low
driveTransmission is in drive
overdriveTransmission is in overdrive
interface Transmission : VehicleCommonDataType {
    readonly        attribute octet?            gear;
    readonly        attribute TransmissionMode? mode;
};

6.10.1 Attributes

gear of type octet, readonly , nullable
MUST return transmission gear position. Range 0 - 10
mode of type TransmissionMode, readonly , nullable
MUST return transmission Mode (see TransmissionMode)

6.11 CruiseControlStatus Interface

The CruiseControlStatus interface represents cruise control settings.

interface CruiseControlStatus : VehicleCommonDataType {
    readonly        attribute boolean       status;
    readonly        attribute unsigned long speed;
};

6.11.1 Attributes

speed of type unsigned long, readonly
MUST return target Cruise Control speed (Unit: meters per hour)
status of type boolean, readonly
MUST return whether or not the Cruise Control system is on (true) or off (false)

6.12 LightStatus Interface

The LightStatus interface represents exterior light statuses.

interface LightStatus : VehicleCommonDataType {
                    attribute boolean  head;
                    attribute boolean  rightTurn;
                    attribute boolean  leftTurn;
                    attribute boolean  brake;
                    attribute boolean? fog;
                    attribute boolean  hazard;
                    attribute boolean  parking;
                    attribute boolean  highBeam;
                    attribute boolean? automaticHeadlights;
                    attribute boolean? dynamicHighBeam;
    readonly        attribute Zone?    zone;
};

6.12.1 Attributes

automaticHeadlights of type boolean, nullable
MUST return whether automatic head lights status: activated (true) or not (false)
brake of type boolean
MUST return Brake light status: on (true), off (false)
dynamicHighBeam of type boolean, nullable
MUST return whether dynamic high beam status: activated (true) or not (false)
fog of type boolean, nullable
MUST return Fog light status: on (true), off (false)
hazard of type boolean
MUST return Hazard light status: on (true), off (false)
head of type boolean
MUST return headlight status: on (true), off (false)
highBeam of type boolean
MUST return HighBeam light status: on (true), off (false)
leftTurn of type boolean
MUST return left turn signal status: on (true), off (false)
parking of type boolean
MUST return Parking light status: on (true), off (false)
rightTurn of type boolean
MUST return right turn signal status: on (true), off (false)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

6.13 InteriorLightStatus Interface

The InteriorLightStatus interface represents interior light status.

interface InteriorLightStatus : VehicleCommonDataType {
                    attribute boolean status;
    readonly        attribute Zone?   zone;
};

6.13.1 Attributes

status of type boolean
MUST return interior light status for the given zone: on (true), off (false)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

6.14 Horn Interface

The Horn interface represents horn status.

interface Horn : VehicleCommonDataType {
                    attribute boolean status;
};

6.14.1 Attributes

status of type boolean
MUST return Horn status: on (true) or off (false)

6.15 Chime Interface

The Chime interface represents chime status.

interface Chime : VehicleCommonDataType {
    readonly        attribute boolean status;
};

6.15.1 Attributes

status of type boolean, readonly
MUST return Chime status when a door is open: on (true) or off (false)

6.16 Fuel Interface

The Fuel interface represents vehicle fuel status.

interface Fuel : VehicleCommonDataType {
    readonly        attribute octet?         level;
    readonly        attribute unsigned long? range;
    readonly        attribute unsigned long? instantConsumption;
                    attribute unsigned long? averageConsumption;
    readonly        attribute unsigned long? fuelConsumedSinceRestart;
    readonly        attribute unsigned long? timeSinceRestart;
};

6.16.1 Attributes

averageConsumption of type unsigned long, nullable
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'
fuelConsumedSinceRestart of type unsigned long, readonly , nullable
MUST return fuel consumed since engine start; (Unit: milliliters per 100 kilometers) resets to 0 each restart
instantConsumption of type unsigned long, readonly , nullable
MUST return instant fuel consumption in per distance travelled (Unit: milliliters per 100 kilometers)
level of type octet, readonly , nullable
MUST return fuel level as a percentage (Unit: 0%: empty, 100%: full)
range of type unsigned long, readonly , nullable
MUST return estimated fuel range (Unit: meters)
timeSinceRestart of type unsigned long, readonly , nullable
MUST return time elapsed since vehicle restart (Unit: seconds)

6.17 EngineOil Interface

The EngineOil interface represents engine oil status.

interface EngineOil : VehicleCommonDataType {
    readonly        attribute octet          level;
    readonly        attribute octet          lifeRemaining;
    readonly        attribute float          temperature;
    readonly        attribute unsigned short pressure;
    readonly        attribute boolean        change;
};

6.17.1 Attributes

change of type boolean, readonly
MUST return engine oil change indicator status: change oil (true) or no change (false)
level of type octet, readonly
MUST return engine oil level as a percentage (Unit: 0%: empty, 100%: full)
lifeRemaining of type octet, readonly
MUST return remaining engine oil life as a percentage (Unit: 0%: no life remaining, 100%: full life remaining)
pressure of type unsigned short, readonly
MUST return Engine Oil Pressure (Unit: kilopascals)
temperature of type float, readonly
MUST return Engine Oil Temperature (Unit: celsius)

6.18 Acceleration Interface

The Acceleration interface represents vehicle acceleration.

interface Acceleration : VehicleCommonDataType {
    readonly        attribute long x;
    readonly        attribute long y;
    readonly        attribute long z;
};

6.18.1 Attributes

x of type long, readonly
MUST return acceleration on the "X" axis (Unit: centimeters per second squared)
y of type long, readonly
MUST return acceleration on the "Y" axis (Unit: centimeters per second squared)
z of type long, readonly
MUST return acceleration on the "Z" axis (Unit: centimeters per second squared)

6.19 EngineCoolant Interface

The EngineCoolant represents values related to engine coolant.

interface EngineCoolant : VehicleCommonDataType {
    readonly        attribute octet level;
    readonly        attribute float temperature;
};

6.19.1 Attributes

level of type octet, readonly
MUST return engine coolant level as a percentage (Unit: 0%: empty, 100%: full)
temperature of type float, readonly
MUST return engine coolant temperature (Unit: celsius)

6.20 SteeringWheel Interface

The SteeringWheel represents steering wheel data.

interface SteeringWheel : VehicleCommonDataType {
    readonly        attribute short angle;
};

6.20.1 Attributes

angle of type short, readonly
MUST return angle of steering wheel off centerline (Unit: degrees +:degrees to the left, -:degrees to the right)

6.21 WheelTick Interface

The WheelTick number of ticks per second.

interface WheelTick : VehicleCommonDataType {
    readonly        attribute unsigned long value;
    readonly        attribute Zone?         zone;
};

6.21.1 Attributes

value of type unsigned long, readonly
MUST return number of ticks per second (Unit: ticks per second)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

6.22 IgnitionTime Interface

The IgnitionTime represents status of ignition.

interface IgnitionTime : VehicleCommonDataType {
    readonly        attribute DOMTimeStamp ignitionOnTime;
    readonly        attribute DOMTimeStamp ignitionOffTime;
};

6.22.1 Attributes

ignitionOffTime of type DOMTimeStamp, readonly
MUST return time at ignition off
ignitionOnTime of type DOMTimeStamp, readonly
MUST return time at ignition on

6.23 Gyro Interface

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.

interface Gyro : VehicleCommonDataType {
    readonly        attribute short yawRate;
    readonly        attribute short pitchRate;
    readonly        attribute short rollRate;
};

6.23.1 Attributes

pitchRate of type short, readonly
MUST return pitch rate of vehicle. (Unit: degrees per second. +: Front of the vehicle moves down, -: Front of the vehicle moves up)
rollRate of type short, readonly
MUST return roll rate of vehicle. (Unit: degrees per second. +: Right side of the vehicle moves down, -: Right side of the vehicle moves up)
yawRate of type short, readonly
MUST return yaw rate of vehicle. (Unit: degrees per second. +: Front of the vehicle moves left, -: Front of the vehicle moves right)

6.24 BrakeOperation Interface

The BrakeOperation represents vehicle brake operation.

interface BrakeOperation : VehicleCommonDataType {
    readonly        attribute boolean brakePedalDepressed;
};

6.24.1 Attributes

brakePedalDepressed of type boolean, readonly
MUST return whether brake pedal is depressed or not. true: brake pedal is depressed, false: brake pedal is not depressed

6.25 ButtonEvent Interface

The ButtonEvent represents button press events from the steering wheel or other source

enum Button {
    "home",
    "back",
    "search",
    "call",
    "end_call",
    "media_play",
    "media_next",
    "media_previous",
    "media_pause",
    "voice_recognize",
    "enter",
    "left",
    "right",
    "up",
    "down"
};
Enumeration description
home
back
search
call
end_call
media_play
media_next
media_previous
media_pause
voice_recognize
enter
left
right
up
down
enum ButtonEventType {
    "press",
    "long_press",
    "release"
};
Enumeration description
press
long_press
release
interface VehicleButton {
    readonly        attribute Button          button;
    readonly        attribute ButtonEventType state;
};

6.25.1 Attributes

button of type Button, readonly
MUST return the button corresponding to the event.
state of type ButtonEventType, readonly
MUST return the type of event
interface ButtonEvent : VehicleCommonDataType {
    readonly        attribute VehicleButton[] button;
};

6.25.2 Attributes

button of type array of VehicleButton, readonly
MUST return the button events that occurred. This supports multiple simultaneous button events.

6.26 DrivingStatus Interface

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.

interface DrivingStatus : VehicleCommonDataType {
    readonly        attribute boolean status;
};

6.26.1 Attributes

status of type boolean, readonly
MUST return true if vehicle is in state of driving

6.27 NightMode Interface

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.

interface NightMode : VehicleCommonDataType {
    readonly        attribute boolean mode;
};

6.27.1 Attributes

mode of type boolean, readonly
MUST return true if it is night time

6.28 StartStopMode Interface

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.

interface StartStopMode : VehicleCommonDataType {
    readonly        attribute boolean? startStopEnabled;
    readonly        attribute boolean? startStopActive;
};

6.28.1 Attributes

startStopActive of type boolean, readonly , nullable
MUST return true if start/stop is currently active
startStopEnabled of type boolean, readonly , nullable
MUST return true if start/stop is enabled

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.

partial interface Vehicle {
    readonly        attribute VehicleSignalInterface odometer;
    readonly        attribute VehicleSignalInterface transmissionOil;
    readonly        attribute VehicleSignalInterface transmissionClutch;
    readonly        attribute VehicleSignalInterface brakeMaintenance;
    readonly        attribute VehicleSignalInterface washerFluid;
    readonly        attribute VehicleSignalInterface malfunctionIndicator;
    readonly        attribute VehicleSignalInterface batteryStatus;
    readonly        attribute VehicleSignalInterface tire;
    readonly        attribute VehicleSignalInterface troubleCode;
    readonly        attribute VehicleSignalInterface diagnostic;
};

7.1 Attributes

batteryStatus of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing BatteryStatus
brakeMaintenance of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing BrakeMaintenance
diagnostic of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Diagnostic
malfunctionIndicator of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing MalfunctionIndicator
odometer of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Odometer or undefined if not supported
tire of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Tire
transmissionClutch of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing TransmissionClutch
transmissionOil of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing TransmissionOil
troubleCode of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing TroubleCode
washerFluid of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing WasherFluid

7.2 Odometer Interface

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

interface Odometer : VehicleCommonDataType {
    readonly        attribute unsigned long? distanceSinceStart;
    readonly        attribute unsigned long  distanceTotal;
};

7.2.1 Attributes

distanceSinceStart of type unsigned long, readonly , nullable
MUST return the distance traveled by vehicle since start (Unit: meters).
distanceTotal of type unsigned long, readonly
MUST return the total distance traveled by the vehicle (Unit: meters).

7.3 TransmissionOil Interface

The TransmissionOil interface provides information about the state of a vehicle's transmission oil.

interface TransmissionOil : VehicleCommonDataType {
    readonly        attribute octet? wear;
    readonly        attribute float? temperature;
};

7.3.1 Attributes

temperature of type float, readonly , nullable
MUST return current temperature of the transmission oil (Unit: celsius).
wear of type octet, readonly , nullable
MUST return transmission oil wear as a percentage (Unit: 0%: no wear, 100%: completely worn).

7.4 TransmissionClutch Interface

The TransmissionClutch interface provides information about the state of a vehicle's transmission clutch.

interface TransmissionClutch : VehicleCommonDataType {
    readonly        attribute octet wear;
};

7.4.1 Attributes

wear of type octet, readonly
MUST return transmission clutch wear as a percentage (Unit: 0%: no wear, 100%: completely worn).

7.5 BrakeMaintenance Interface

The BrakeMaintenance interface provides information about the maintenance state of a vehicle's brakes.

interface BrakeMaintenance : VehicleCommonDataType {
    readonly        attribute octet?   fluidLevel;
    readonly        attribute boolean? fluidLevelLow;
    readonly        attribute octet?   padWear;
    readonly        attribute boolean? brakesWorn;
    readonly        attribute Zone?    zone;
};

7.5.1 Attributes

brakesWorn of type boolean, readonly , nullable
MUST return true if brakes are worn: worn (true), not worn (false)
fluidLevel of type octet, readonly , nullable
MUST return brake fluid level as a percentage (Unit: 0%: empty, 100%: full).
fluidLevelLow of type boolean, readonly , nullable
MUST return true if brake fluid level: low (true), not low (false)
padWear of type octet, readonly , nullable
MUST return brake pad wear as a percentage (Unit: 0%: no wear, 100%: completely worn).
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

7.6 WasherFluid Interface

The WasherFluid interface provides information about the state of a vehicle's washer fluid.

interface WasherFluid : VehicleCommonDataType {
    readonly        attribute octet?   level;
    readonly        attribute boolean? levelLow;
};

7.6.1 Attributes

level of type octet, readonly , nullable
MUST return washer fluid level as a percentage (Unit: 0%: empty, 100%: full).
levelLow of type boolean, readonly , nullable
MUST return true if washer fluid level is low: low (true), not low: (false)

7.7 MalfunctionIndicator Interface

The MalfunctionIndicator interface provides information about the state of a vehicle's Malfunction Indicator lamp.

interface MalfunctionIndicator : VehicleCommonDataType {
    readonly        attribute boolean on;
};

7.7.1 Attributes

on of type boolean, readonly
MUST return true if malfunction indicator lamp is on: lamp on (true), lamp not on (false)

7.8 BatteryStatus Interface

The BatteryStatus interface provides information about the state of a vehicle's battery.

interface BatteryStatus : VehicleCommonDataType {
    readonly        attribute octet?          chargeLevel;
    readonly        attribute unsigned short? voltage;
    readonly        attribute unsigned short? current;
    readonly        attribute Zone?           zone;
    readonly        attribute DOMstring?      batteryType;
    readonly        attribute DOMstring?      batteryChemistry;
    readonly        attribute short?          batteryCCACapacity;
    readonly        attribute short?          batteryReserveCapacity;
    readonly        attribute short?          batteryAmpHoursCapacity;
    readonly        attribute float?          batteryVoltageWake;
    readonly        attribute float?          batteryTempWake;
    readonly        attribute short?          engineCrankTime;
    readonly        attribute float?          batteryMinVoltCrank;
    readonly        attribute float?          engineCoolantTemp;
    readonly        attribute float?          engineAirTemp;
    readonly        attribute float?          batteryVoltageT0;
    readonly        attribute float?          batteryTempT0;
    readonly        attribute float?          batteryVoltageT120;
    readonly        attribute float?          batteryTempT120;
    readonly        attribute float[]?        batteryVoltageTrip;
    readonly        attribute float[]?        batteryTempTrip;
    readonly        attribute float?          batteryVoltageESD30;
    readonly        attribute float?          batteryTempESD30;
    readonly        attribute float?          batteryVoltageESD450;
    readonly        attribute float?          batteryTempESD450;
    readonly        attribute float?          batteryVoltageESD870;
    readonly        attribute float?          batteryTempESD870;
    readonly        attribute float?          batteryVoltageESD1290;
    readonly        attribute float?          batteryTempESD1290;
    readonly        attribute float?          batteryVoltageESD1710;
    readonly        attribute float?          batteryTempESD1710;
};

7.8.1 Attributes

batteryAmpHoursCapacity of type short, readonly , nullable
MUST return battery amp-hours capacity
batteryCCACapacity of type short, readonly , nullable
MUST return battery cold cranking amp capacity
batteryChemistry of type DOMstring, readonly , nullable
MUST return battery chemistry (Flooded lead acid, AGM, enhanced flooded, lithium)
batteryMinVoltCrank of type float, readonly , nullable
MUST return minimum battery voltage during engine crank
batteryReserveCapacity of type short, readonly , nullable
MUST return battery reserve capacity
batteryTempESD1290 of type float, readonly , nullable
MUST return battery temperature at 1290 seconds after engine shut down
batteryTempESD1710 of type float, readonly , nullable
MUST return battery temperature at 1710 seconds after engine shut down
batteryTempESD30 of type float, readonly , nullable
MUST return battery temperature at 30 seconds after engine shut down
batteryTempESD450 of type float, readonly , nullable
MUST return battery temperature at 450 seconds after engine shut down
batteryTempESD870 of type float, readonly , nullable
MUST return battery temperature at 870 seconds after engine shut down
batteryTempT0 of type float, readonly , nullable
MUST return battery temperature at engine start time = 0
batteryTempT120 of type float, readonly , nullable
MUST return battery temperature at engine start time = 120
batteryTempTrip of type array of float, readonly , nullable
MUST return battery temperature at 1200 second intervals during engine run time (trip)
batteryTempWake of type float, readonly , nullable
MUST return battery temperature at system wake
batteryType of type DOMstring, readonly , nullable
MUST return battery type (SLI (starting, lighting, ignition), stop-start, hybrid relay, hybrid traction)
batteryVoltageESD1290 of type float, readonly , nullable
MUST return battery voltage at 1290 seconds after engine shut down
batteryVoltageESD1710 of type float, readonly , nullable
MUST return battery voltage at 1710 seconds after engine shut down
batteryVoltageESD30 of type float, readonly , nullable
MUST return battery voltage at 30 seconds after engine shut down
batteryVoltageESD450 of type float, readonly , nullable
MUST return battery voltage at 450 seconds after engine shut down
batteryVoltageESD870 of type float, readonly , nullable
MUST return battery voltage at 870 seconds after engine shut down
batteryVoltageT0 of type float, readonly , nullable
MUST return battery voltage at engine start time = 0
batteryVoltageT120 of type float, readonly , nullable
MUST return battery voltage at engine start time = 120
batteryVoltageTrip of type array of float, readonly , nullable
MUST return battery voltage at 1200 second intervals during engine run time (trip)
batteryVoltageWake of type float, readonly , nullable
MUST return battery voltage at system wake
chargeLevel of type octet, readonly , nullable
MUST return battery charge level as a percentage (Unit: 0%: empty, 100%: full).
current of type unsigned short, readonly , nullable
MUST return battery current (Unit: amperes).
engineAirTemp of type float, readonly , nullable
MUST return ambient air temperature during engine crank
engineCoolantTemp of type float, readonly , nullable
MUST return coolant temperature during engine crank
engineCrankTime of type short, readonly , nullable
MUST return duration (in seconds) of crank cycle for most recent engine start
voltage of type unsigned short, readonly , nullable
MUST return battery voltage (Unit: volts).
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

7.9 Tire Interface

The Tire interface provides information about the state of a vehicle's tires.

interface Tire : VehicleCommonDataType {
    readonly        attribute boolean?        pressureLow;
    readonly        attribute unsigned short? pressure;
    readonly        attribute float?          temperature;
    readonly        attribute Zone?           zone;
};

7.9.1 Attributes

pressure of type unsigned short, readonly , nullable
MUST return tire pressure (Unit: kilopascal).
pressureLow of type boolean, readonly , nullable
MUST return true if any tire pressure is low: pressure low (true), pressure not low (false)
temperature of type float, readonly , nullable
MUST return tire temperature (Unit: celsius).
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

7.10 TroubleCode Interface

The TroubleCode interface represents interface to trouble codes produced by vehicle.

enum TroubleCodeType {
    "current",
    "pending",
    "history"
};
Enumeration description
current
pending
history
interface TroubleCode : VehicleCommonDataType {
    readonly        attribute TroubleCodeType[] type;
    readonly        attribute DOMString[]       TroubleCodeValue;
};

7.10.1 Attributes

TroubleCodeValue of type array of DOMString, readonly
MUST return alphanumeric value of trouble code
type of type array of TroubleCodeType, readonly
MUST return type of trouble code

7.11 Diagnostic Interface

The Diagnostic interface represents Diagnostic interface to malfunction indicator light information.

interface Diagnostic : VehicleCommonDataType {
    readonly        attribute unsigned long accumulatedEngineRuntime;
    readonly        attribute unsigned long distanceWithMILOn;
    readonly        attribute unsigned long distanceSinceCodeCleared.;
    readonly        attribute unsigned long timeRunMILOn;
    readonly        attribute unsigned long timeTroubleCodeClear;
};

7.11.1 Attributes

accumulatedEngineRuntime of type unsigned long, readonly
MUST return engine runtime (Unit: seconds)
distanceSinceCodeCleared. of type unsigned long, readonly
MUST return distance travelled since the codes were last cleared (Unit: meters)
distanceWithMILOn of type unsigned long, readonly
MUST return distance travelled with the malfunction indicator light on (Unit: meters)
timeRunMILOn of type unsigned long, readonly
MUST return time elapsed with the malfunction indicator light on (Unit: seconds)
timeTroubleCodeClear of type unsigned long, readonly
MUST return time elapsed since the trouble codes were last cleared (Unit: seconds)

8. Personalization Interfaces

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

partial interface Vehicle {
    readonly        attribute VehicleSignalInterface? languageConfiguration;
    readonly        attribute VehicleSignalInterface  unitsOfMeasure;
    readonly        attribute VehicleSignalInterface  mirror;
    readonly        attribute VehicleSignalInterface  driveMode;
    readonly        attribute VehicleSignalInterface  seatAdjustment;
    readonly        attribute VehicleSignalInterface  dashboardIllumination;
    readonly        attribute VehicleSignalInterface  vehicleSound;
};

8.1 Attributes

dashboardIllumination of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing DashboardIllumination
driveMode of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing DriveMode
languageConfiguration of type VehicleSignalInterface, readonly , nullable
MUST return VehicleSignalInterface for accessing LanguageConfiguration
mirror of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Mirror
seatAdjustment of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing SeatAdjustment
unitsOfMeasure of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing UnitsOfMeasure
vehicleSound of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing VehicleSound

8.2 LanguageConfiguration Interface

The LanguageConfiguration interface provides language information about a vehicle.

interface LanguageConfiguration : VehicleCommonDataType {
                    attribute DOMString? language;
};

8.2.1 Attributes

language of type DOMString, nullable
MUST return language identifier based on two-letter codes as specified in BCP47

8.3 UnitsOfMeasure Interface

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

interface UnitsOfMeasure : VehicleCommonDataType {
                    attribute boolean?   isMKSSystem;
                    attribute DOMString? unitsFuelVolume;
                    attribute DOMString? unitsDistance;
                    attribute DOMString? unitsSpeed;
                    attribute DOMString? unitsFuelConsumption;
};

8.3.1 Attributes

isMKSSystem of type boolean, nullable
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).
unitsDistance of type DOMString, nullable
MUST return distance unit of measurement. The value is one of both "km" and "mile".
unitsFuelConsumption of type DOMString, nullable
MUST return fuel consumption unit of measurement. The value is one of following values: "l/100", "mpg", "km/l".
unitsFuelVolume of type DOMString, nullable
MUST return fuel unit of measurement. The value is one of both "litter" and "gallon".
unitsSpeed of type DOMString, nullable
MUST return speed unit of measurement. The value is one of both "km/h" and "mph".

8.4 Mirror Interface

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

interface Mirror : VehicleCommonDataType {
                    attribute byte? mirrorTilt;
                    attribute byte? mirrorPan;
    readonly        attribute Zone? zone;
};

8.4.1 Attributes

mirrorPan of type byte, nullable
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)
mirrorTilt of type byte, nullable
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)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

8.5 SeatAdjustment Interface

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

interface SeatAdjustment : VehicleCommonDataType {
                    attribute octet? reclineSeatBack;
                    attribute octet? seatSlide;
                    attribute octet? seatCushionHeight;
                    attribute octet? seatHeadrest;
                    attribute octet? seatBackCushion;
                    attribute octet? seatSideCushion;
    readonly        attribute Zone?  zone;
};

8.5.1 Attributes

reclineSeatBack of type octet, nullable
MUST return seat back recline position as a percentage to completely reclined (Unit: 0%: fully forward, 100%: fully reclined)
seatBackCushion of type octet, nullable
MUST return back cushion position as a percentage of lumbar curvature (Unit: 0%: flat, 100%: maximum curvature)
seatCushionHeight of type octet, nullable
MUST return seat cushion height position as a percentage of upward distance travelled (Unit: 0%: lowest. 100%: highest)
seatHeadrest of type octet, nullable
MUST return headrest position as a percentage of upward distance travelled (Unit: 0%: lowest, 100%: highest)
seatSideCushion of type octet, nullable
MUST return sides of back cushion position as a percentage of curvature (Unit: 0%: flat, 100%: maximum curvature)
seatSlide of type octet, nullable
MUST return seat slide position as a percentage of distance travelled away from forwardmost position (Unit: 0%: farthest forward, 100%: farthest back)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

8.6 DriveMode Interface

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

enum DriveModeType {
    "comfort",
    "auto",
    "sport",
    "eco",
    "manual",
    "winter"
};
Enumeration description
comfortComfort mode
autoAutomatically set mode
sportSport mode
ecoEcological/fuel efficient mode
manualManual mode
winterWinter/slippery mode
interface DriveMode : VehicleCommonDataType {
                    attribute DriveModeType? driveMode;
};

8.6.1 Attributes

driveMode of type DriveModeType, nullable
MUST return vehicle drive mode

8.7 DashboardIllumination Interface

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

interface DashboardIllumination : VehicleCommonDataType {
                    attribute octet? dashboardIllumination;
};

8.7.1 Attributes

dashboardIllumination of type octet, nullable
MUST return illumination of dashboard as a percentage (Unit: 0%: none, 100%: maximum illumination)

8.8 VehicleSound Interface

The VehicleSound interface provides or sets information about vehicle sound.

interface VehicleSound : VehicleCommonDataType {
                    attribute boolean      activeNoiseControlMode;
                    attribute DOMString?   engineSoundEnhancementMode;
    readonly        attribute DOMString[]? availableSounds;
};

8.8.1 Attributes

activeNoiseControlMode of type boolean
MUST return active noise control status: not-activated (false), activated (true)
availableSounds of type array of DOMString, readonly , nullable
MUST return array of available sounds. See engineSoundEnhancementMode
engineSoundEnhancementMode of type DOMString, nullable
MUST return engine sound enhancement mode where a null string means not-activated, and any other value represents a manufacture specific setting. See availableSounds.

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).

partial interface Vehicle {
    readonly        attribute VehicleSignalInterface antilockBrakingSystem;
    readonly        attribute VehicleSignalInterface tractionControlSystem;
    readonly        attribute VehicleSignalInterface electronicStabilityControl;
    readonly        attribute VehicleSignalInterface topSpeedLimit;
    readonly        attribute VehicleSignalInterface airbagStatus;
    readonly        attribute VehicleSignalInterface door;
    readonly        attribute VehicleSignalInterface childSafetyLock;
    readonly        attribute VehicleSignalInterface seat;
};

9.1 Attributes

airbagStatus of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing AirbagStatus
antilockBrakingSystem of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing AntilockBrakingSystem
childSafetyLock of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ChildSafetyLock
door of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Door
electronicStabilityControl of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ElectronicStabilityControl
seat of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Seat
topSpeedLimit of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing TopSpeedLimit
tractionControlSystem of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing TractionControlSystem

9.2 AntilockBrakingSystem Interface

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

interface AntilockBrakingSystem : VehicleCommonDataType {
    readonly        attribute boolean enabled;
    readonly        attribute boolean engaged;
};

9.2.1 Attributes

enabled of type boolean, readonly
MUST return whether or not the ABS Setting is enabled: enabled (true) or disabled (false)
engaged of type boolean, readonly
MUST return whether or not the ABS is engaged: engaged (true) or idle (false)

9.3 TractionControlSystem Interface

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

interface TractionControlSystem : VehicleCommonDataType {
    readonly        attribute boolean enabled;
    readonly        attribute boolean engaged;
};

9.3.1 Attributes

enabled of type boolean, readonly
MUST return whether or not the TCS Setting is enabled: enabled (true) or disabled (false)
engaged of type boolean, readonly
MUST return whether or not the TCS is engaged: engaged (true) or idle (false)

9.4 ElectronicStabilityControl Interface

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

interface ElectronicStabilityControl : VehicleCommonDataType {
    readonly        attribute boolean enabled;
    readonly        attribute boolean engaged;
};

9.4.1 Attributes

enabled of type boolean, readonly
MUST return whether or not the ESC Setting is enabled: enabled (true) or disabled (false)
engaged of type boolean, readonly
MUST return whether or not the ESC is engaged: engaged (true) or idle (false)

9.5 TopSpeedLimit Interface

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

interface TopSpeedLimit : VehicleCommonDataType {
    readonly        attribute unsigned long speed;
};

9.5.1 Attributes

speed of type unsigned long, readonly
MUST return vehicle top speed limit (Unit: meters per hour)

9.6 AirbagStatus Interface

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

interface AirbagStatus : VehicleCommonDataType {
    readonly        attribute boolean activated;
    readonly        attribute boolean deployed;
    readonly        attribute Zone?   zone;
};

9.6.1 Attributes

activated of type boolean, readonly
MUST return whether or not the airbag is activaged: activated (true) or deactivated (false)
deployed of type boolean, readonly
MUST return whether the airbag is deployed: deployed (true) or not (false)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

9.7 Door Interface

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

enum DoorOpenStatus {
    "open",
    "ajar",
    "closed"
};
Enumeration description
openDoor is opened
ajarDoor is ajar
closedDoor is closed
interface Door : VehicleCommonDataType {
    readonly        attribute DoorOpenStatus status;
                    attribute boolean        lock;
    readonly        attribute Zone?          zone;
};

9.7.1 Attributes

lock of type boolean
MUST return whether or not the door is locked: locked (true) or unlocked (false)
status of type DoorOpenStatus, readonly
MUST return the status of door's open status
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

9.8 ChildSafetyLock Interface

The ChildSafetyLock interface provides the current setting of Child Safety Lock.

interface ChildSafetyLock : VehicleCommonDataType {
                    attribute boolean lock;
    readonly        attribute Zone?   zone;
};

9.8.1 Attributes

lock of type boolean
MUST return whether or not the Child Safety Lock is locked: locked (true) or unlocked (false)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

9.9 Seat Interface

The Seat interface provides the current occupant information and seatbelt status of a seat in different zones of the vehicle.

enum OccupantStatus {
    "adult",
    "child",
    "vacant"
};
Enumeration description
adultOccupant is an adult
childOccupant is a child
vacantSeat is vacant
enum IdentificationType {
    "pin",
    "keyfob",
    "Bluetooth",
    "NFC",
    "fingerprint",
    "camera",
    "voice"
};
Enumeration description
pinFour digit pin number entered by user
keyfobIdentification by key fob
BluetoothIdentification by Bluetooth device
NFCIdentification by NFC device
fingerprintIdentification by fingerprint
cameraIdentification by camera
voiceIdentification by voice
interface Seat : VehicleCommonDataType {
    readonly        attribute OccupantStatus     occupant;
    readonly        attribute boolean            seatbelt;
    readonly        attribute DOMString?         occupantName;
    readonly        attribute IdentificationType identificationType;
    readonly        attribute Zone?              zone;
};

9.9.1 Attributes

identificationType of type IdentificationType, readonly
MUST return identification type
occupant of type OccupantStatus, readonly
MUST return the status of seat occupant
occupantName of type DOMString, readonly , nullable
MUST return occupant identifier
seatbelt of type boolean, readonly
MUST return whether or not the seat belt is fastened: fastened (true) or unfastened (false)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

10. Climate Interfaces

Interfaces related to vehicle climate (interior and exterior) such as temperature and rain.

partial interface Vehicle {
    readonly        attribute VehicleSignalInterface temperature;
    readonly        attribute VehicleSignalInterface rainSensor;
    readonly        attribute VehicleSignalInterface wiperStatus;
    readonly        attribute VehicleSignalInterface defrost;
    readonly        attribute VehicleSignalInterface sunroof;
    readonly        attribute VehicleSignalInterface convertibleRoof;
    readonly        attribute VehicleSignalInterface sideWindow;
    readonly        attribute VehicleSignalInterface climateControl;
    readonly        attribute VehicleSignalInterface atmosphericPressure;
};

10.1 Attributes

atmosphericPressure of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing AtmosphericPressure
climateControl of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ClimateControl or undefined if not supported
convertibleRoof of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ConvertibleRoof
defrost of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Defrost
rainSensor of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing RainSensor
sideWindow of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing SideWindow
sunroof of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Sunroof
temperature of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Temperature
wiperStatus of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing WiperStatus

10.2 Temperature Interface

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

interface Temperature : VehicleCommonDataType {
    readonly        attribute float interiorTemperature;
    readonly        attribute float exteriorTemperature;
};

10.2.1 Attributes

exteriorTemperature of type float, readonly
MUST return the current temperature of the air around the vehicle (Unit: celsius)
interiorTemperature of type float, readonly
MUST return the current temperature of the air inside of the vehicle (Unit: celsius)

10.3 RainSensor Interface

The RainSensor interface provides information about ambient light levels.

interface RainSensor : VehicleCommonDataType {
    readonly        attribute octet rainIntensity;
    readonly        attribute Zone? zone;
};

10.3.1 Attributes

rainIntensity of type octet, readonly
MUST return the amount of rain detected by the rain sensor. level of rain intensity (0: No Rain, 10:Heaviest Rain)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

10.4 WiperStatus Interface

The WiperStatus interface represents the status of wiper operation.

enum WiperControl {
    "off",
    "once",
    "slowest",
    "slow",
    "middle",
    "fast",
    "fastest",
    "auto"
};
Enumeration description
offWiper is not in operation
onceWipe single. It's a transient state and goes to the off mode
slowestWiper is on mode with the slowest speed
slowWiper is on mode with slow speed
middleWiper is on mode with middle speed
fastWiper is on mode with fast speed
fastestWiper is on mode with the fastest speed
autoWiper is on the automatic mode which controls wiping speed with accordance with the amount of rain
interface WiperStatus : VehicleCommonDataType {
    readonly        attribute WiperControl wiperSpeed;
                    attribute WiperControl wiperSetting;
    readonly        attribute Zone?        zone;
};

10.4.1 Attributes

wiperSetting of type WiperControl
MUST return current setting of the front wiper controller. It can be used to send user's request for changing setting.
wiperSpeed of type WiperControl, readonly
MUST return current speed interval of wiping windshield
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

10.5 Defrost Interface

The Defrost interface represents the status of wiper operation.

interface Defrost : VehicleCommonDataType {
                    attribute boolean? defrostWindow;
                    attribute boolean? defrostMirrors;
    readonly        attribute Zone?    zone;
};

10.5.1 Attributes

defrostMirrors of type boolean, nullable
MUST return current status of the defrost switch for mirrors. It can be used to send user's request for changing setting.
defrostWindow of type boolean, nullable
MUST return current status of the defrost switch for window. It can be used to send user's request for changing setting.
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

10.6 Sunroof Interface

The Sunroof interface represents the current status of Sunroof.

interface Sunroof : VehicleCommonDataType {
                    attribute octet openness;
                    attribute octet tilt;
    readonly        attribute Zone? zone;
};

10.6.1 Attributes

openness of type octet
MUST return current status of Sunroof as a percentage of openness (Unit: 0%: closed, 100%: fully opened)
tilt of type octet
MUST return current status of Sunroof as a percentage of tilted (Unit: 0%: closed, 100%: maximum tilted)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

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

10.7 ConvertibleRoof Interface

The ConvertibleRoof interface represents the current status of Convertible Roof.

enum ConvertibleRoofStatus {
    "closed",
    "closing",
    "opening",
    "opened"
};
Enumeration description
closedthe convertible roof is closed
closingthe convertible roof is closing
openingthe convertible roof is opening
openedthe convertible roof is opened
interface ConvertibleRoof : VehicleCommonDataType {
    readonly        attribute ConvertibleRoofStatus status;
                    attribute boolean?              setting;
};

10.7.1 Attributes

setting of type boolean, nullable
MUST return current setting of Convertible Roof. This is used to open (true) and close (false).
status of type ConvertibleRoofStatus, readonly
MUST return current status of Convertible Roof.

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

10.8 SideWindow Interface

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

interface SideWindow : VehicleCommonDataType {
                    attribute boolean? lock;
                    attribute octet?   openness;
    readonly        attribute Zone?    zone;
};

10.8.1 Attributes

lock of type boolean, nullable
MUST return whether or not the window is locked: locked (true) or unlocked (false)
openness of type octet, nullable
MUST return current status of the side window as a percentage of openness. (Unit: 0%: Closed, 100%: Fully Opened)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

10.9 ClimateControl Interface

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

enum AirflowDirection {
    "frontpanel",
    "floorduct",
    "bilevel",
    "defrostfloor"
};
Enumeration description
frontpanelAir flow is directed to the instrument panel outlets
floorductAir flow is directed to the floor outlets
bilevelAir flow is directed to the instrument panel outlets and the floor outlets
defrostfloorAir flow is directed to the floor outlets and the windshield
interface ClimateControl : VehicleCommonDataType {
                    attribute AirflowDirection airflowDirection;
                    attribute octet            fanSpeedLevel;
                    attribute float?           targetTemperature;
                    attribute boolean          airConditioning;
                    attribute boolean          heater;
                    attribute octet?           seatHeater;
                    attribute octet?           seatCooler;
                    attribute boolean          airRecirculation;
                    attribute octet?           steeringWheelHeater;
    readonly        attribute Zone?            zone;
};

10.9.1 Attributes

airConditioning of type boolean
MUST return current status of the air conditioning system: on (true) or off (false)
airRecirculation of type boolean
MUST return current setting of air recirculation: on (true) or pulling in outside air (false).
airflowDirection of type AirflowDirection
MUST return current status of the direction of the air flow through the ventilation system
fanSpeedLevel of type octet
MUST return current status of the fan speed of the air flowing (0: off, 1: weakest, 10: strongest )
heater of type boolean
MUST return current status of the heating system: on (true) or off (false)
seatCooler of type octet, nullable
MUST return current status of the seat ventilation ( 0: off, 1: least warm, 10: warmest )
seatHeater of type octet, nullable
MUST return current status of the seat warmer ( 0: off, 1: least warm, 10: warmest )
steeringWheelHeater of type octet, nullable
MUST return current status of steering wheel heater ( 0: off, 1: least warm, 10: warmest ).
targetTemperature of type float, nullable
MUST return current setting of the desired temperature (Unit: celsius)
zone of type Zone, readonly , nullable
MUST return Zone for requested attribute

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

10.10 AtmosphericPressure Interface

The AtmosphericPressure interface provides information about the current atmospheric pressure outside of the vehicle.

interface AtmosphericPressure : VehicleCommonDataType {
    readonly        attribute unsigned short pressure;
};

10.10.1 Attributes

pressure of type unsigned short, readonly
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.

partial interface Vehicle {
    readonly        attribute VehicleSignalInterface laneDepartureDetection;
    readonly        attribute VehicleSignalInterface alarm;
    readonly        attribute VehicleSignalInterface parkingBrake;
    readonly        attribute VehicleSignalInterface parkingSensors;
};

11.1 Attributes

alarm of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing Alarm
laneDepartureDetection of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing LaneDepartureDetection or undefined if not supported
parkingBrake of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ParkingBrake
parkingSensors of type VehicleSignalInterface, readonly
MUST return VehicleSignalInterface for accessing ParkingSensors

11.2 LaneDepartureDetection Interface

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

enum LaneDepartureStatus {
    "off",
    "pause",
    "running"
};
Enumeration description
offThe function is not running
pauseThe function has been paused (running, but inactive)
runningThe function is in its operational mode
interface LaneDepartureDetection : VehicleCommonDataType {
    readonly        attribute LaneDepartureStatus status;
};

11.2.1 Attributes

status of type LaneDepartureStatus, readonly
MUST return current status of Lane departure warning function.

11.3 Alarm Interface

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

enum AlarmStatus {
    "disarmed",
    "prearmed",
    "armed",
    "alarmed"
};
Enumeration description
disarmedThe alarm is not armed
prearmedThe function is temporary not active
armedThe function is active
alarmedThe alarm is screaming
interface Alarm : VehicleCommonDataType {
                    attribute AlarmStatus status;
};

11.3.1 Attributes

status of type AlarmStatus
MUST return current status of vehicle alarm system.

11.4 ParkingBrake Interface

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

enum ParkingBrakeStatus {
    "inactive",
    "active",
    "error"
};
Enumeration description
inactiveParking brake is not engaged (driving position)
activeParking brake is engaged (parking position)
errorThere is a problem with the parking brake system
interface ParkingBrake : VehicleCommonDataType {
    readonly        attribute ParkingBrakeStatus status;
};

11.4.1 Attributes

status of type ParkingBrakeStatus, readonly
MUST return current status of parking brake.

11.5 ParkingSensors Interface

The ParkingSensors interface represents the current status of the parking sensors.

interface ParkingSensors : VehicleCommonDataType {
    readonly        attribute short?   distanceToObject;
    readonly        attribute boolean? active;
    readonly        attribute Zone?    zone;
};

11.5.1 Attributes

active of type boolean, readonly , nullable
MUST return true if parking sensors are currently in use
distanceToObject of type short, readonly , nullable
MUST return the approximate distance to the nearest object from the parking sensor. If no objects are sensed this should return null (Unit: millimeters)
zone of type Zone, readonly , nullable
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, ...
  • To check if the charging is plugged or unplugged.

A. References

A.1 Normative references

[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[WEBIDL]
Cameron McCormack; Boris Zbarsky. WebIDL Level 1. 4 August 2015. W3C Working Draft. URL: http://www.w3.org/TR/WebIDL-1/