5. Configuration and Identification Interfaces
      Interfaces relating to vehicle configuration and identification including: make, type size, transmission
      configuration, identification numbers, etc...
      
      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
- fuelConfigurationof type VehicleConfigurationInterface, readonly
- MUST return VehicleConfigurationInterface for accessing FuelConfiguration
- identificationof type VehicleConfigurationInterface, readonly
- MUST return VehicleConfigurationInterface for accessing Identification
- sizeConfigurationof type VehicleConfigurationInterface, readonly
- MUST return VehicleConfigurationInterface for accessing SizeConfiguration
- steeringWheelConfigurationof type VehicleSignalInterface, readonly
- MUST return VehicleConfigurationInterface for accessing SteeringWheelConfiguration
- transmissionConfigurationof type VehicleConfigurationInterface, readonly
- MUST return VehicleConfigurationInterface for accessing TransmissionConfiguration
- wheelConfigurationof type VehicleConfigurationInterface, readonly
- MUST return VehicleConfigurationInterface for accessing WheelConfiguration
The Identification interface provides identification information about a
  vehicle.
    
enum VehicleTypeEnum {
    "passengerCarMini",
    "passengerCarLight",
    "passengerCarCompact",
    "passengerCarMedium",
    "passengerCarHeavy",
    "sportUtilityVehicle",
    "pickupTruck",
    "van"
};| Enumeration description | 
|---|
| passengerCarMini | Passenger car 680–907 kg | 
| passengerCarLight | Passenger car 907–1,134 kg | 
| passengerCarCompact | Passenger car 1,134–1,360 kg | 
| passengerCarMedium | Passenger car 1,361–1,587 kg | 
| passengerCarHeavy | Passenger car 1,588 kg and over | 
| sportUtilityVehicle | Sport utility vehicle | 
| pickupTruck | Pickup truck | 
| van | Van | 
  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
- VINof type DOMString, readonly   , nullable
- MUST return the Vehicle Identification Number (ISO 3833)
- WMIof type DOMString, readonly   , nullable
- MUST return the World Manufacture Identifier defined by SAE ISO 3780:2009.  3 characters.
- brandof type DOMString, readonly   , nullable
- MUST return vehicle brand name
- modelof type DOMString, readonly   , nullable
- MUST return vehicle model
- vehicleTypeof type- VehicleTypeEnum, readonly   , nullable
- MUST return vehicle type
- yearof type unsigned short, readonly   , nullable
- MUST return vehicle model year
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
- doorsCountof 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)
     
- heightof 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.)
- lengthof 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.)
- totalDoorsof 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)
- widthof 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.)
The FuelConfiguration interface provides information about the fuel
  configuration of a vehicle.
  enum FuelTypeEnum {
    "gasoline",
    "methanol",
    "ethanol",
    "diesel",
    "lpg",
    "cng",
    "electric"
};| Enumeration description | 
|---|
| gasoline | Gasoline | 
| methanol | Methanol | 
| ethanol | Ethanol | 
| diesel | Diesel | 
| lpg | Liquified petroleom gas | 
| cng | Compressed natural gas | 
| electric | Electric | 
  interface FuelConfiguration : VehicleCommonDataType {
    readonly    attribute FuelTypeEnum[]? fuelType;
    readonly    attribute Zone?           refuelPosition;
};
5.4.1 Attributes
- fuelTypeof type array of- FuelTypeEnum, readonly   , nullable
- MUST return type of fuel used by vehicle. If the vehicle uses multiple fuels, fuelType returns an array of fuel types.
- refuelPositionof type Zone, readonly   , nullable
- MUST return location on the vehicle with access to the fuel door
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
- wheelRadiusof type unsigned short, readonly   , nullable
- MUST return radius of the front wheel (Unit: millimeters)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
The SteeringWheelConfiguration interface provides steering wheel configuration
  information about a vehicle.
  interface SteeringWheelConfiguration : VehicleCommonDataType {
    readonly    attribute Zone?           steeringWheelLocation;
                attribute unsigned short? steeringWheelTelescopingPosition;
                attribute unsigned short? steeringWheelPositionTilt;
};
5.7.1 Attributes
- steeringWheelLocationof type Zone, readonly   , nullable
- MUST return the location on the steering wheel within the vehicle
- steeringWheelPositionTiltof type unsigned short,            , nullable
- MUST return steering wheel position as percentage of tilt
     (Unit: percentage, 0%:tilted lowest downward-facing position, 100%:highest upward-facing position)
     
- steeringWheelTelescopingPositionof type unsigned short,            , nullable
- MUST return steering wheel position as percentage of extension from the dash
     (Unit: percentage, 0%:closest to dash, 100%:farthest from dash)
     
6. Running Status Interfaces
      Interfaces relating to the running/operation of a vehicle including:  speed, temperatures, acceleration,
      etc...
      
      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 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 ignitionTime;
    readonly    attribute VehicleSignalInterface gyro;
    readonly    attribute VehicleSignalInterface brakeOperation;
    readonly    attribute VehicleSignalInterface wheelTick;
    readonly    attribute VehicleSignalInterface buttonEvent;
    readonly    attribute VehicleSignalInterface drivingStatus;
    readonly    attribute VehicleSignalInterface nightMode;
};6.1 Attributes
- accelerationof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Acceleration
- acceleratorPedalPositionof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing AcceleratorPedalPosition
- brakeOperationof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing BrakeOperation
- buttonEventof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing ButtonEvent
- chimeof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Chime
- cruiseControlStatusof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing CruiseControlStatus
- drivingStatusof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing DrivingStatus
- engineCoolantof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing EngineCoolant
- engineOilof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing EngineOil
- engineSpeedof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing EngineSpeedor undefined if not supported
- fuelof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Fuel
- gyroof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Gyro
- hornof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Horn
- ignitionTimeof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing IgnitionTime
- interiorLightStatusof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing InteriorLightStatus
- lightStatusof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing LightStatus
- nightModeof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing NightMode
- powertrainTorqueof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing PowertrainTorque
- steeringWheelof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing SteeringWheel
- throttlePositionof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing ThrottlePosition
- transmissionof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Transmission
- tripMetersof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing TripMeters
- vehicleSpeedof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing VehicleSpeed
- wheelSpeedof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing WheelSpeed
- wheelTickof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing WheelTick
The VehicleSpeed interface represents vehicle speed information
  interface VehicleSpeed : VehicleCommonDataType {
    readonly    attribute unsigned short speed;
};
6.2.1 Attributes
- speedof type unsigned short, readonly
- MUST return vehicle speed (Unit: meters per hour)
The WheelSpeed interface represents wheel speed information.
  interface WheelSpeed : VehicleCommonDataType {
    readonly    attribute unsigned short speed;
    readonly    attribute Zone?          zone;
};
6.3.1 Attributes
- speedof type unsigned short, readonly
- MUST return wheel speed (Unit: meters per hour)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
The EngineSpeed interface represents engine speed information.
  interface EngineSpeed : VehicleCommonDataType {
    readonly    attribute unsigned long speed;
};
6.4.1 Attributes
- speedof type unsigned long, readonly
- MUST return engine speed (Unit:  rotations per minute)
The VehiclePowerModeType interface represents position of the ignition switch.
  enum VehiclePowerMode {
    "off",
    "accessory1",
    "accessory2",
    "running",
    "cranking"
};| Enumeration description | 
|---|
| off | Off - No power | 
| accessory1 | Accessory power mode 1: Some electronics and modules are powered | 
| accessory2 | Accessory power mode 2: All electronics and modules are powered | 
| running | Power mode during engine running | 
| cranking | Power mode during engine cranking | 
  interface VehiclePowerModeType : VehicleCommonDataType {
    readonly    attribute VehiclePowerMode value;
};
6.5.1 Attributes
- valueof type- VehiclePowerMode, readonly
- MUST return position of the ignition switch
The PowertrainTorque interface represents powertrain torque.
  interface PowertrainTorque : VehicleCommonDataType {
    readonly    attribute short value;
};
6.6.1 Attributes
- valueof type short, readonly
- MUST return powertrain torque (Unit: newton meters)
The AcceleratorPedalPosition
  interface represents the accelerator pedal position.
  interface AcceleratorPedalPosition : VehicleCommonDataType {
    readonly    attribute unsigned short value;
};
6.7.1 Attributes
- valueof type unsigned short, readonly
- MUST return accelerator pedal position as a percentage (Unit: percentage, 0%: released pedal, 100%: fully depressed)
The ThrottlePosition
  represents position of the throttle.
  interface ThrottlePosition : VehicleCommonDataType {
    readonly    attribute unsigned short value;
};
6.8.1 Attributes
- valueof type unsigned short, readonly
- MUST return throttle position as a percentage (Unit: percentage, 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 short? averageSpeed;
    readonly    attribute unsigned short? fuelConsumption;
};6.9.1 Attributes
- averageSpeedof type unsigned short, readonly   , nullable
- MUST return average speed based on trip meter (Unit: meters per hour)
- distanceof type unsigned long, readonly
- MUST return distance travelled based on trip meter (Unit: meters)
- fuelConsumptionof 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
The Transmission interface represents the current transmission gear and mode.
  
enum TransmissionMode {
    "park",
    "reverse",
    "neutral",
    "low",
    "drive",
    "overdrive"
};| Enumeration description | 
|---|
| park | Transmission is in park | 
| reverse | Transmission is in reverse | 
| neutral | Transmission is in neutral | 
| low | Transmission is in low | 
| drive | Transmission is in drive | 
| overdrive | Transmission is in overdrive | 
  interface Transmission : VehicleCommonDataType {
    readonly    attribute octet?            gear;
    readonly    attribute TransmissionMode? mode;
};
6.10.1 Attributes
- gearof type octet, readonly   , nullable
- MUST return transmission gear position. Range 0 - 10
- modeof type- TransmissionMode, readonly   , nullable
- MUST return transmission Mode (see TransmissionMode)
The CruiseControlStatus interface represents cruise control settings.
  
interface CruiseControlStatus : VehicleCommonDataType {
    readonly    attribute boolean        status;
    readonly    attribute unsigned short speed;
};
6.11.1 Attributes
- speedof type unsigned short, readonly
- MUST return target Cruise Control speed (Unit: meters per hour)
- statusof type boolean, readonly
- MUST return whether or not the Cruise Control system is on (true) or off (false)
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
- automaticHeadlightsof type boolean,            , nullable
- MUST return whether automatic head lights status: activated (true) or not (false)
- brakeof type boolean,
- MUST return Brake light status: on (true), off (false)
- dynamicHighBeamof type boolean,            , nullable
- MUST return whether dynamic high beam status: activated (true) or not (false)
- fogof type boolean,            , nullable
- MUST return Fog light status: on (true), off (false)
- hazardof type boolean,
- MUST return Hazard light status: on (true), off (false)
- headof type boolean,
- MUST return headlight status: on (true), off (false)
- highBeamof type boolean,
- MUST return HighBeam light status: on (true), off (false)
- leftTurnof type boolean,
- MUST return left turn signal status: on (true), off (false)
- parkingof type boolean,
- MUST return Parking light status: on (true), off (false)
- rightTurnof type boolean,
- MUST return right turn signal status: on (true), off (false)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
The InteriorLightStatus interface represents interior light status.
  
interface InteriorLightStatus : VehicleCommonDataType {
                attribute boolean status;
    readonly    attribute Zone?   zone;
};
6.13.1 Attributes
- statusof type boolean,
-  MUST return interior light status for the given zone: on (true), off (false)
- zoneof 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
- statusof 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
- statusof 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 unsigned short? 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
- averageConsumptionof 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'
- fuelConsumedSinceRestartof type unsigned long, readonly   , nullable
- MUST return fuel consumed since engine start; (Unit:  milliliters per 100 kilometers)  resets to 0 each restart
- instantConsumptionof type unsigned long, readonly   , nullable
- MUST return instant fuel consumption in per distance travelled (Unit:  milliliters per 100 kilometers)
- levelof type unsigned short, readonly   , nullable
- MUST return fuel level as a percentage of fullness
- rangeof type unsigned long, readonly   , nullable
- MUST return estimated fuel range (Unit:  meters)
- timeSinceRestartof type unsigned long, readonly   , nullable
- MUST return time elapsed since vehicle restart (Unit:  seconds)
The EngineOil interface represents engine oil status.
  
interface EngineOil : VehicleCommonDataType {
    readonly    attribute unsigned short level;
    readonly    attribute unsigned short lifeRemaining;
    readonly    attribute long           temperature;
    readonly    attribute unsigned short pressure;
    readonly    attribute boolean        change;
};
6.17.1 Attributes
- changeof type boolean, readonly
- MUST return engine oil change indicator status: change oil (true) or no change (false)
- levelof type unsigned short, readonly
- MUST return engine oil level (Unit: percentage, 0%: empty, 100%: full)
- lifeRemainingof type unsigned short, readonly
- MUST return remaining engine oil life (Unit: percentage, 0%:no life remaining, 100%: full life remaining)
- pressureof type unsigned short, readonly
- MUST return Engine Oil Pressure (Unit: kilopascals)
- temperatureof type long, readonly
- MUST return Engine Oil Temperature (Unit: celsius)
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
- xof type long, readonly
- MUST return acceleration on the "X" axis (Unit:  centimeters per second squared)
- yof type long, readonly
- MUST return acceleration on the "Y" axis (Unit:  centimeters per second squared)
- zof type long, readonly
- MUST return acceleration on the "Z" axis (Unit:  centimeters per second squared)
The EngineCoolant
  represents values related to engine coolant.
  interface EngineCoolant : VehicleCommonDataType {
    readonly    attribute octet level;
    readonly    attribute short temperature;
};
6.19.1 Attributes
- levelof type octet, readonly
- MUST return engine coolant level (Unit: percentage 0%: empty, 100%: full)
- temperatureof type short, readonly
- MUST return engine coolant temperature (Unit: celsius)
The SteeringWheel
  represents steering wheel data.
  interface SteeringWheel : VehicleCommonDataType {
    readonly    attribute short angle;
};
6.20.1 Attributes
- angleof type short, readonly
- MUST return angle of steering wheel off centerline (Unit: degrees -:degrees to the left, +:degrees to the right)
The WheelTick
  number of ticks per second.
  interface WheelTick : VehicleCommonDataType {
    readonly    attribute unsigned long value;
    readonly    attribute Zone?         zone;
};
6.21.1 Attributes
- valueof type unsigned long, readonly
- MUST return number of ticks per second (Unit: ticks per second)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
The IgnitionTime
  represents status of ignition.
  interface IgnitionTime : VehicleCommonDataType {
    readonly    attribute DOMTimeStamp ignitionOnTime;
    readonly    attribute DOMTimeStamp ignitionOffTime;
};
6.22.1 Attributes
- ignitionOffTimeof type DOMTimeStamp, readonly
- MUST return time at ignition off
- ignitionOnTimeof type DOMTimeStamp, readonly
- MUST return time at ignition on
6.23 Gyro Interface
  The Gyro interface represents vehicle angular rates.
  
interface Gyro : VehicleCommonDataType {
    readonly    attribute short yawRate;
    readonly    attribute short pitchRate;
    readonly    attribute short rollRate;
};
6.23.1 Attributes
- pitchRateof type short, readonly
- MUST return pitch rate of vehicle.  (Unit:  degrees per second)
- rollRateof type short, readonly
- MUST return roll rate of vehicle. (Unit:  degrees per second)
- yawRateof type short, readonly
- MUST return yaw rate of vehicle.  (Unit:  degrees per second)
The BrakeOperation
  represents vehicle brake operation.
  interface BrakeOperation : VehicleCommonDataType {
    readonly    attribute boolean brakePedalDepressed;
};
6.24.1 Attributes
- brakePedalDepressedof type boolean, readonly
- MUST return whether brake pedal is depressed or not.  true: brake pedal is depressed, false: brake pedal is not depressed
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, transmission gear, etc.  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
- statusof type boolean, readonly
- 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, sunrise/sunset, etc 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
- modeof type boolean, readonly
- MUST return true if it is night time
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
- startStopActiveof type boolean, readonly   , nullable
- MUST return true if start/stop is currently active
- startStopEnabledof 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 diagnostic;
};7.1 Attributes
- batteryStatusof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing BatteryStatus
- brakeMaintenanceof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing BrakeMaintenance
- diagnosticof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Diagnostic
- malfunctionIndicatorof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing MalfunctionIndicator
- odometerof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Odometeror undefined if not supported
- tireof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Tire
- transmissionClutchof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing TransmissionClutch
- transmissionOilof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing TransmissionOil
- washerFluidof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing WasherFluid
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
- distanceSinceStartof type unsigned long, readonly   , nullable
- MUST return the distance traveled by vehicle since start (Unit: meters).
- distanceTotalof type unsigned long, readonly
- MUST return the total distance traveled by the vehicle (Unit: meters).
The TransmissionOil interface provides information about the state of a
  vehicle's transmission oil.
  
interface TransmissionOil : VehicleCommonDataType {
    readonly    attribute octet? wear;
    readonly    attribute byte?  temperature;
};
7.3.1 Attributes
- temperatureof type byte, readonly   , nullable
- MUST return current temperature of the transmission oil (Unit: celsius).
- wearof type octet, readonly   , nullable
- MUST return transmission oil wear (Unit: percentage, 0%: no wear, 100%: completely worn).
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
- wearof type octet, readonly
- MUST return transmission clutch wear (Unit: percentage, 0%: no wear, 100%: completely worn).
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
- brakesWornof type boolean, readonly   , nullable
- MUST return true if brakes are worn: worn (true), not worn (false)
- fluidLevelof type octet, readonly   , nullable
- MUST return brake fluid level (Unit: percentage, 0%: empty, 100%: full).
- fluidLevelLowof type boolean, readonly   , nullable
- MUST return true if brake fluid level: low (true), not low (false)
- padWearof type octet, readonly   , nullable
- MUST return brake pad wear (Unit: percentage, 0%: no wear, 100%: completely worn).
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
The WasherFluid interface provides information about the state of a
  vehicle's washer fluid.
  
interface WasherFluid : VehicleCommonDataType {
    readonly    attribute unsigned short? level;
    readonly    attribute boolean?        levelLow;
};
7.6.1 Attributes
- levelof type unsigned short, readonly   , nullable
- MUST return washer fluid level (Unit: percentage, 0%: empty, 100%: full).
- levelLowof type boolean, readonly   , nullable
- MUST return true if washer fluid level is low: low (true), not low: (false)
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
- onof type boolean, readonly
- MUST return true if malfunction indicator lamp is on:  lamp on (true), lamp not on (false)
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;
};
7.8.1 Attributes
- chargeLevelof type octet, readonly   , nullable
- MUST return battery charge level (Unit: percentage, 0%: empty, 100%: full).
- currentof type unsigned short, readonly   , nullable
- MUST return battery current (Unit: amperes).
- voltageof type unsigned short, readonly   , nullable
- MUST return battery voltage (Unit: volts).
- zoneof 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 short?          temperature;
    readonly    attribute Zone?           zone;
};
7.9.1 Attributes
- pressureof type unsigned short, readonly   , nullable
- MUST return tire pressure (Unit: kilopascal).
- pressureLowof type boolean, readonly   , nullable
- MUST return true if any tire pressure is low: pressure low (true), pressure not low (false)
- temperatureof type short, readonly   , nullable
- MUST return tire temperature (Unit: celsius). 
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
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
- TroubleCodeValueof type array of DOMString, readonly
- MUST return alphanumeric value of trouble code
- typeof type array of- TroubleCodeType, readonly
- MUST return type of trouble code
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
- accumulatedEngineRuntimeof 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)
- distanceWithMILOnof type unsigned long, readonly
- MUST return distance travelled with the malfunction indicator light on (Unit: meters)
- timeRunMILOnof type unsigned long, readonly
- MUST return time elapsed with the malfunction indicator light on (Unit: seconds)
- timeTroubleCodeClearof 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
- dashboardIlluminationof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing DashboardIllumination
- driveModeof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing DriveMode
- languageConfigurationof type VehicleSignalInterface, readonly   , nullable
- MUST return VehicleSignalInterface for accessing LanguageConfiguration
- mirrorof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Mirror
- seatAdjustmentof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing SeatAdjustment
- unitsOfMeasureof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing UnitsOfMeasure
- vehicleSoundof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing VehicleSound
The LanguageConfiguration interface provides language information about a
  vehicle.
  
interface LanguageConfiguration : VehicleCommonDataType {
                attribute DOMString? language;
};
8.2.1 Attributes
- languageof type DOMString,            , nullable
- MUST return language identifier based on two-letter codes as specified in ISO 639-1
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
- isMKSSystemof 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).
     
- unitsDistanceof type DOMString,            , nullable
- MUST return distance unit of measurement. The value is one of both "km" and "mile".
- unitsFuelConsumptionof type DOMString,            , nullable
- MUST return fuel consumption unit of measurement.
     The value is one of following values: "l/100", "mpg", "km/l".
- unitsFuelVolumeof type DOMString,            , nullable
- MUST return fuel unit of measurement. The value is one of both "litter" and "gallon".
- unitsSpeedof 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
- mirrorPanof type byte,            , nullable
- MUST return mirror pan position in percentage distance travelled, from left to right
     position (Unit: percentage, 0%:center position, -100%:fully left, 100%:fully right)
- mirrorTiltof type byte,            , nullable
- MUST return mirror tilt position in percentage distance travelled, from downward-facing to
     upward-facing position (Unit: percentage, 0%:center position, -100%:fully downward, 100%:full upward)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
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
- reclineSeatBackof type octet,            , nullable
- MUST return seat back recline position as percent to completely reclined
     (Unit: percentage, 0%: fully forward, 100%: fully reclined)
- seatBackCushionof type octet,            , nullable
- MUST return back cushion position as a percentage of lumbar curvature
     (Unit: percentage,  0%: flat, 100%: maximum curvature)
- seatCushionHeightof type octet,            , nullable
- MUST return seat cushion height position as a percentage of upward distance travelled
     (Unit: percentage, 0%: lowest. 100%: highest)
- seatHeadrestof type octet,            , nullable
-  MUST return headrest position as a percentage of upward distance travelled
     (Unit: percentage,  0%: lowest, 100%: highest)
- seatSideCushionof type octet,            , nullable
- MUST return sides of back cushion position as a percentage of curvature
     (Unit: percentage,  0%: flat, 100%: maximum curvature)
- seatSlideof type octet,            , nullable
- MUST return seat slide position as percentage of distance travelled away from forwardmost
     position (Unit: percentage, 0%: farthest forward, 100%: farthest back)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
The DriveMode interface provides or sets information about a vehicles
  drive mode.
  enum DriveModeType {
    "comfort",
    "auto",
    "sport",
    "eco",
    "manual",
    "winter"
};| Enumeration description | 
|---|
| comfort | Comfort mode | 
| auto | Automatically set mode | 
| sport | Sport mode | 
| eco | Ecological/fuel efficient mode | 
| manual | Manual mode | 
| winter | Winter/slippery mode | 
  interface DriveMode : VehicleCommonDataType {
                attribute DriveModeType? driveMode;
};
8.6.1 Attributes
- driveModeof type- DriveModeType,            , nullable
- MUST return vehicle drive mode
The DashboardIllumination interface provides or sets information about dashboard
  illumination in vehicle.
  
interface DashboardIllumination : VehicleCommonDataType {
                attribute octet? dashboardIllumination;
};
8.7.1 Attributes
- dashboardIlluminationof type octet,            , nullable
- MUST return illumination of dashboard as a percentage
     (Unit: percentage, 0%: none, 100%: maximum illumination)
     
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
- activeNoiseControlModeof type boolean,
- MUST return active noise control status: not-activated (false), activated (true)
- availableSoundsof type array of DOMString, readonly   , nullable
- MUST return array of available sounds.  See engineSoundEnhancementMode
- engineSoundEnhancementModeof 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
- airbagStatusof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing AirbagStatus
- antilockBrakingSystemof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing AntilockBrakingSystem
- childSafetyLockof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing ChildSafetyLock
- doorof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Door
- electronicStabilityControlof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing ElectronicStabilityControl
- seatof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Seat
- topSpeedLimitof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing TopSpeedLimit
- tractionControlSystemof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing TractionControlSystem
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
- enabledof type boolean, readonly
- MUST return whether or not the ABS Setting is enabled: enabled (true) or disabled (false)
- engagedof type boolean, readonly
- MUST return whether or not the ABS is engaged: engaged (true) or idle (false)
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
- enabledof type boolean, readonly
- MUST return whether or not the TCS Setting is enabled: enabled (true) or disabled (false)
- engagedof type boolean, readonly
- MUST return whether or not the TCS is engaged: engaged (true) or idle (false)
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
- enabledof type boolean, readonly
- MUST return whether or not the ESC Setting is enabled: enabled (true) or disabled (false)
- engagedof type boolean, readonly
- MUST return whether or not the ESC is engaged: engaged (true) or idle (false)
The TopSpeedLimit interface
  provides the current setting of top speed limit of the vehicle.
  interface TopSpeedLimit : VehicleCommonDataType {
    readonly    attribute unsigned short speed;
};
9.5.1 Attributes
- speedof type unsigned short, readonly
- MUST return vehicle top speed limit (Unit: meters per hour)
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
- activatedof type boolean, readonly
- MUST return whether or not the airbag is activaged: activated (true) or deactivated (false)
- deployedof type boolean, readonly
- MUST return whether the airbag is deployed: deployed (true) or not (false)
- zoneof 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 | 
|---|
| open | Door is opened | 
| ajar | Door is ajar | 
| closed | Door is closed | 
  interface Door : VehicleCommonDataType {
    readonly    attribute DoorOpenStatus status;
                attribute boolean        lock;
    readonly    attribute Zone?          zone;
};
9.7.1 Attributes
- lockof type boolean,
- MUST return whether or not the door is locked: locked (true) or unlocked (false)
- statusof type- DoorOpenStatus, readonly
- MUST return the status of door's open status
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
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
- lockof type boolean,
- MUST return whether or not the Child Safety Lock is locked: locked (true) or unlocked (false)
- zoneof 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 | 
|---|
| adult | Occupant is an adult | 
| child | Occupant is a child | 
| vacant | Seat is vacant | 
  enum IdentificationType {
    "pin",
    "keyfob",
    "Bluetooth",
    "NFC",
    "fingerprint",
    "camera",
    "voice"
};| Enumeration description | 
|---|
| pin | Four digit pin number entered by user | 
| keyfob | Identification by key fob | 
| Bluetooth | Identification by Bluetooth device | 
| NFC | Identification by NFC device | 
| fingerprint | Identification by fingerprint | 
| camera | Identification by camera | 
| voice | Identification 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
- identificationTypeof type- IdentificationType, readonly
- MUST return identification type
- occupantof type- OccupantStatus, readonly
- MUST return the status of seat occupant
- occupantNameof type DOMString, readonly   , nullable
- Must return occupant identifier
- seatbeltof type boolean, readonly
- MUST return whether or not the seat belt is fastened: fastened (true) or unfastened (false)
- zoneof 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
- atmosphericPressureof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing AtmosphericPressure
- climateControlof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing ClimateControlor undefined if not supported
- convertibleRoofof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing ConvertibleRoof
- defrostof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Defrost
- rainSensorof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing RainSensor
- sideWindowof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing SideWindow
- sunroofof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Sunroof
- temperatureof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing Temperature
- wiperStatusof type VehicleSignalInterface, readonly
- MUST return VehicleSignalInterface for accessing WiperStatus
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
- exteriorTemperatureof type float, readonly
- MUST return the current temperature of the air around the vehicle (Unit: celsius)
- interiorTemperatureof type float, readonly
- MUST return the current temperature of the air inside of the vehicle (Unit: celsius)
The RainSensor interface provides information about ambient light levels.
  
interface RainSensor : VehicleCommonDataType {
    readonly    attribute octet rainIntensity;
    readonly    attribute Zone? zone;
};
10.3.1 Attributes
- rainIntensityof type octet, readonly
- MUST return the amount of rain detected by the rain sensor. level of rain intensity (0: No Rain, 10:Heaviest Rain)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
The WiperStatus interface represents the status of wiper operation.
  
  
enum WiperControl {
    "off",
    "once",
    "slowest",
    "slow",
    "middle",
    "fast",
    "fastest",
    "auto"
};| Enumeration description | 
|---|
| off | Wiper is not in operation | 
| once | Wipe single. It's a transient state and goes to the off mode | 
| slowest | Wiper is on mode with the slowest speed | 
| slow | Wiper is on mode with slow speed | 
| middle | Wiper is on mode with middle speed | 
| fast | Wiper is on mode with fast speed | 
| fastest | Wiper is on mode with the fastest speed | 
| auto | Wiper is on the automatic mode which controls wiping speed with accordance with the amount of rain | 
  
  interface WiperStatus : VehicleCommonDataType {
    readonly    attribute WiperControl wiperSpeed;
                attribute WiperControl wiperSetting;
    readonly    attribute Zone?        zone;
};
10.4.1 Attributes
- wiperSettingof type- WiperControl,
- MUST return current setting of the front wiper controller. It can be used to send user's request for changing setting.
- wiperSpeedof type- WiperControl, readonly
- MUST return current speed interval of wiping windshield
- zoneof 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
- defrostMirrorsof 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.
- defrostWindowof 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.
- zoneof 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
- opennessof type octet,
- MUST return current status of Sunroof as a percentage of openness (0%: closed, 100%: fully opened)
- tiltof type octet,
- MUST return current status of Sunroof as a percentage of tilted (0%: closed, 100%: maximum tilted)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
Both can be used to send user's request for changing setting.
  
  The ConvertibleRoof interface represents the current status of Convertible Roof.
  
enum ConvertibleRoofStatus {
    "closed",
    "closing",
    "opening",
    "opened"
};| Enumeration description | 
|---|
| closed | the convertible roof is closed | 
| closing | the convertible roof is closing | 
| opening | the convertible roof is opening | 
| opened | the convertible roof is opened | 
  interface ConvertibleRoof : VehicleCommonDataType {
    readonly    attribute ConvertibleRoofStatus status;
                attribute boolean?              setting;
};
10.7.1 Attributes
- settingof type boolean,            , nullable
- MUST return current setting of Convertible Roof.  This is used to open (true) and close (false).
- statusof 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.
  
  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
- lockof type boolean,            , nullable
- MUST return whether or not the window is locked: locked (true) or unlocked (false)
- opennessof type octet,            , nullable
- MUST return current status of the side window as a percentage of openness. (0%: Closed, 100%: Fully Opened)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
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 | 
|---|
| frontpanel | Air flow is directed to the instrument panel outlets | 
| floorduct | Air flow is directed to the floor outlets | 
| bilevel | Air flow is directed to the instrument panel outlets and the floor outlets | 
| defrostfloor | Air flow is directed to the floor outlets and the windshield | 
  interface ClimateControl : VehicleCommonDataType {
                attribute AirflowDirection airflowDirection;
                attribute octet            fanSpeedLevel;
                attribute byte?            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
- airConditioningof type boolean,
- MUST return current status of the air conditioning system: on (true) or off (false)
- airRecirculationof type boolean,
- MUST return current setting of air recirculation: on (true) or pulling in outside air (false).
- airflowDirectionof type- AirflowDirection,
- MUST return current status of the direction of the air flow through the ventilation system
- fanSpeedLevelof type octet,
- MUST return current status of the fan speed of the air flowing (0: off, 1: weakest, 10: strongest )
- heaterof type boolean,
- MUST return current status of the heating system: on (true) or off (false)
- seatCoolerof type octet,            , nullable
- MUST return current status of the seat ventilation ( 0: off, 1: least warm, 10: warmest )
- seatHeaterof type octet,            , nullable
- MUST return current status of the seat warmer ( 0: off, 1: least warm, 10: warmest )
- steeringWheelHeaterof type octet,            , nullable
- MUST return current status of steering wheel heater ( 0: off, 1: least warm, 10: warmest ).
- targetTemperatureof type byte,            , nullable
- MUST return current setting of the desired temperature (Unit: celsius)
- zoneof type Zone, readonly   , nullable
- MUST return Zone for requested attribute
ClimateControl can be used to send user's request for changing setting.
  
  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
- pressureof type unsigned short, readonly
- MUST return the current atmospheric pressure outside of the vehicle (Unit: hectopascal)