Vehicle Signal Specification (VSS)/Vehicle Data Spec

From Auto

VSS/Vehicle Data Spec

Genivi VSS repo

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>