X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=README.md;h=a608363b2d606eb927343437b0fae948a6fedb04;hb=fa6d02155e06bee279e017c1c844c2b546bf0d1c;hp=b078bf0b55ec14f7d116613d9044408f2592cfad;hpb=3a12d5a93e9430d8bd9ddbb214c9f95ff37fa3b6;p=apps%2Flow-level-can-service.git diff --git a/README.md b/README.md index b078bf0..a608363 100644 --- a/README.md +++ b/README.md @@ -1,162 +1,67 @@ -# OpenXC Message Format Specification +# CAN signaling binder -Version: v0.4 +CAN bus binder, based upon OpenXC vi-firmware project. -This specification is a part of the [OpenXC platform][OpenXC]. +There are 2 separated projects here, one with the CAN-binder that is installed +on an AGL target and the CAN config generator used to generate a source file for +the low level binding. -An OpenXC vehicle interface sends generic vehicle data over one or more output -interfaces (e.g. USB or Bluetooth) as JSON or Protocol Buffers (protobuf). +Full document can be found under `docs` directory. -## JSON +# Fast build procedure -The JSON format is the most flexible and easiest to use. The format is fully -specified in the [JSON.mkd](JSON.mkd) file in this repository. -a more flexible option than binary, but is less compact and -therefore takes more bandwidth and processing power. +Just use build.sh script: -The JSON format is best for most developers, as it is fairly efficient and very -flexible. +```bash +./build.sh +``` + +This will build both projects under build directory for each of them. -## Binary (Protocol Buffers) +# Generate documentation -The binary format is encoded using [Google Protocol -Buffers](https://code.google.com/p/protobuf/). The format is specified in the -file [openxc.proto](openxc.proto). The descriptions of the messages can be foud -in the JSON specs - the binary format mirrors this. +## Prerequisites -The binary messages are published by the VI using the standard length-delimited -method (any protobuf library should support this). +You can use gitbook to serve documentation. To do so, please install it using *npm* as well as *calibre* package from your package distribution manager: -The binary format is best if you need to maximize the amount of data that can be -sent from the VI, trading off flexibility for efficiency. +```bash +sudo npm install -g gitbook-cli +sudo apt-get install calibre +``` -## Trace File Format +To generate Doxygen documentation, you'll need doxygen and graphviz: -An OpenXC vehicle trace file is a plaintext file that contains JSON objects, -separated by newlines (which may be either `\r\n` or `\n`, depending on the -platform the trace file was recorded). +```bash +sudo apt-get install doxygen graphviz +``` -The first line may be a metadata object, although this is optional: +Prepare your build environment: +```bash +mkdir build && cd build +cmake .. ``` -{"metadata": { - "version": "v3.0", - "vehicle_interface_id": "7ABF", - "vehicle": { - "make": "Ford", - "model": "Mustang", - "trim": "V6 Premium", - "year": 2013 - }, - "description": "highway drive to work", - "driver_name": "TJ Giuli", - "vehicle_id": "17N1039247929" -} + +## Generation + +Generate a PDF version : + +```bash +gendocs.sh pdf ``` -The following lines are OpenXC messages with a `timestamp` field added, e.g.: - - {"timestamp": 1385133351.285525, "name": "steering_wheel_angle", "value": 45} - -The timestamp is in [UNIX time](http://en.wikipedia.org/wiki/Unix_time) -(i.e. seconds since the UNIX epoch, 00:00:00 UTC, 1/1/1970). - -## Official Signals - -These signal names are a part of the OpenXC specification, although some -manufacturers may support custom message names. - -* steering_wheel_angle - * numerical, -600 to +600 degrees - * 10Hz -* torque_at_transmission - * numerical, -500 to 1500 Nm - * 10Hz -* engine_speed - * numerical, 0 to 16382 RPM - * 10Hz -* vehicle_speed - * numerical, 0 to 655 km/h (this will be positive even if going in reverse - as it's not a velocity, although you can use the gear status to figure out - direction) - * 10Hz -* accelerator_pedal_position - * percentage - * 10Hz -* parking_brake_status - * boolean, (true == brake engaged) - * 1Hz, but sent immediately on change -* brake_pedal_status - * boolean (True == pedal pressed) - * 1Hz, but sent immediately on change -* transmission_gear_position - * states: first, second, third, fourth, fifth, sixth, seventh, eighth, - ninth, tenth, reverse, neutral - * 1Hz, but sent immediately on change -* gear_lever_position - * states: neutral, park, reverse, drive, sport, low, first, second, third, - fourth, fifth, sixth, seventh, eighth, ninth, tenth - * 1Hz, but sent immediately on change -* odometer - * Numerical, km - 0 to 16777214.000 km, with about .2m resolution - * 10Hz -* ignition_status - * states: off, accessory, run, start - * 1Hz, but sent immediately on change -* fuel_level - * percentage - * 2Hz -* fuel_consumed_since_restart - * numerical, 0 - 4294967295.0 L (this goes to 0 every time the vehicle - restarts, like a trip meter) - * 10Hz -* door_status - * Value is State: driver, passenger, rear_left, rear_right. - * Event is boolean: true == ajar - * 1Hz, but sent immediately on change -* headlamp_status - * boolean, true is on - * 1Hz, but sent immediately on change -* high_beam_status - * boolean, true is on - * 1Hz, but sent immediately on change -* windshield_wiper_status - * boolean, true is on - * 1Hz, but sent immediately on change -* latitude - * numerical, -89.0 to 89.0 degrees with standard GPS accuracy - * 1Hz -* longitude - * numerical, -179.0 to 179.0 degrees with standard GPS accuracy - * 1Hz - -## Signals from Diagnostic 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-2014 Ford Motor Company - -Licensed under the BSD license. - -[OpenXC]: http://openxcplatform.com +Serve an HTML version, this will run a web server that will serve you locally documentation : + +```bash +gendocs.sh serve +``` + +Generate doxygen documentation: + +```bash +gendocs.sh doxygen +``` +or +```bash +cd build && make doxygen +```