This specification is a part of the [OpenXC platform][OpenXC].
An OpenXC vehicle interface sends generic vehicle data over one or more output
-interfaces (e.g. USB or Bluetooth) as JSON objects, separated by newlines.
+interfaces (e.g. USB or Bluetooth) as JSON or Protocol Buffers (protobuf).
-There are two valid message types - single valued and evented.
+This document describes the JSON format and includes a high level description of
+each type and field. Each JSON message published by a VI is delimited with a
+`\0` character.
+
+The Protocol Buffer format is specified in the file `openxc.proto`. Those are
+published using the standard length-delimited method (any protobuf library
+should support this).
+
+## Single Valued
There may not be a 1:1 relationship between input and output signals - i.e. raw
engine timing CAN signals may be summarized in an "engine performance" metric on
the abstract side of the interface.
-## Single Valued
-
The expected format of a single valued message is:
{"name": "steering_wheel_angle", "value": 45}
## Raw CAN Message format
-An OpenXC vehicle interface may also output raw CAN messages. Each CAN message
-is sent as a JSON object, separated by newlines. The format of each object is:
+The format for a raw CAN message:
{"bus": 1, "id": 1234, "value": "0x12345678"}
## Trace File Format
An OpenXC vehicle trace file is a plaintext file that contains JSON objects,
-separated by newlines.
+separated by newlines (which may be either `\r\n` or `\n`, depending on the
+platform the trace file was recorded).
The first line may be a metadata object, although this is optional:
* numerical, -179.0 to 179.0 degrees with standard GPS accuracy
* 1Hz
+### Signals from Diagnostics Messages
+
+This set of signals is often retreived from OBD-II requests. The units can be
+found in the [OBD-II standard](http://en.wikipedia.org/wiki/OBD-II_PIDs#Mode_01).
+
+* engine_load
+* engine_coolant_temperature
+* barometric_pressure
+* commanded_throttle_position
+* throttle_position
+* fuel_level
+* intake_air_temperature
+* intake_manifold_pressure
+* running_time
+* fuel_pressure
+* mass_airflow
+* accelerator_pedal_position
+* ethanol_fuel_percentage
+* engine_oil_temperature
+* engine_torque
+
License
=======
-Copyright (c) 2012-2013 Ford Motor Company
+Copyright (c) 2012-2014 Ford Motor Company
Licensed under the BSD license.