Vehicle Signal Specification (VSS)/Vehicle Data Spec
VSS/Vehicle Data Spec
Action Items
- Determine what happens to data spec. What is generated/specified if anything from VSS.
- Determine data definition format (JSON)
- Align current elements from Vehicle Data spec
- Where does VSS reside external/internal
Task Force
- Rudi Streif
- Paul Boyes
- Magnus Feuer
- Kevin Gavigan
- Peter Winzell
- Tatsuhiko Hirabayashi
- Kaz Ashimura
- Adam Crofts
VSS vs W3C data specifications
- The June 8 W3C editors draft(Vehicle Information Access API and Data spec) have been used for the comparision.
Data types
- NUIAS stands for data types not used in current W3C automotive specification.
- WebIDL also have the notion of nullable types , <type name>?
VSS name | VSS type | WebIDL name | WebIDL type | Range |
---|---|---|---|---|
UInt8 | usigned 8-bit integer | Octet | unsigned integer | 0,255 |
Int8 | signed 8-bit integer | Byte | signed integer | -128,127 |
UInt16 | unsigned 16-bit integer | UnsignedShort | unsigned integer | 0,65535 |
Int16 | signed 16-bit integer | Short | signed integer | -32768, 32767 |
UInt32 | usigned 32-bit integer | UnsignedLong | usigned integer | 0,4294967295 |
Int32 | signed 32-bit integer | Long | signed integer | -2147483648,2147483647 |
UInt64 | unsigned 64-bit integer | UnsignedLongLong | unsigned integer | 0,2^64 |
Int64 | signed 64-bit integer | NUIAS | NUIAS | 2^63 - 1 |
Boolean | boolean value | Boolean | boolean value | 0/false, 1/true |
Float | floating point number | Float | 32 bit IEEE 754 single precision floating point number | -3.4e -38,3.4e 38 |
Double | double precision floating point number | NUIAS | NUIAS | -1.7e -300,1.7e 300 |
String | character string | DOMString | UTF-16 encoded strings | N/A |
Bytebuffer | ------ | Not available | Not available | N/A |
Not available | Not available | DOMTimeStamp | unsigned long long | N/A |
Units
- Unit "issues" , W3C should be specified using SI-units, except for speed, acceleration ?(? because the spec states that the only exception is speed but then we define acceleration using cm/s^2 which is not SI).
VSS | W3C | Signals/Data affected |
---|---|---|
km/h | m/h | Speed, Wheel speed |
m/s ??? | cm/s^2 | Acceleration(X,Y,Z) |
km,m,mm | m,mm | distance |
hz W kwh ms min h g/s N | not used in W3C spec | not specified |
not defined in VSS | mm/ 100 km, degrees | fuel consumption, various angle measurements |
Converting zone based data or not
The concept of Zone will be replaced by the tree structure.
Converting current W3C Data specification to YAML and JSON
YAML W3C vspec
The YAML is based on the current WebIDL. In the current w3c specification all "leaf" data signals are accompanied with a timestamp string. This common data type is inherited by all data signals. The example below put this timestamp as a leaf next to the actual signal. Question: How to set a specific data signal as readonly ? Should it also be defined as a boolean value next to the data signal ?
VehicleW3CDataSpec.vspec
# # An uncontrolled private branch. # - Private: type: branch description: Uncontrolled branch where non-public signals can be defined. # # The Vehicle branch and its included signals from Vehicle/Vehicle.vspec # - Vehicle: type: branch description: Vehicle W3C data spec. # Include the Vehicle/Vehicle.vspec file and attach all its signals under the # Vehicle branch created above. #include Vehicle/Vehicle.vspec Vehicle
Vehicle.vspec
# # (C) W3C vehicle data spec example # License ? ## # First W3C generated JSON from W3C Vehicle data spec # ## # Vehicle speed signal ## - VehicleSpeed: type: branch description: Vehicle speed data - VehicleSpeed.Speed: type: unsigned integer unit: km/h min: 0 max: 300 description: Vehicle speed in kilometers per hour # # Common data for all signals , not a leaf here ? # - VehicleSpeed.Timestamp: type: String description: Common data timestamp attached to all data signals
Generated json
{ "Private": { "description": "Uncontrolled branch where non-public signals can be defined.", "type": "branch", "children": {} }, "Vehicle": { "type": "branch", "children": { "VehicleSpeed": { "type": "branch", "children": { "Timestamp": { "description": "Common data timestamp attached to all data signals", "type": "String", "id": -1 }, "Speed": { "description": "Vehicle speed in kilometers per hour", "min": 0, "max": 300, "type": "unsigned integer", "id": -1, "unit": "km/h" } }, "description": "Vehicle speed data" } }, "description": "Vehicle W3C data spec." } }
- Differences in data signal specification
<TODO>
- W3C specific branch using VSS tree structure
<TODO>