From: Romain Forlot Date: Tue, 2 May 2017 15:51:38 +0000 (+0200) Subject: Add 'CAN-binder/libs/openxc-message-format/' from commit 'd9f54f97578429773421abce98d... X-Git-Tag: 5.0.2~275 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=12e680a3c97a2750c657a8c561a79706f3689149;p=apps%2Fagl-service-can-low-level.git Add 'CAN-binder/libs/openxc-message-format/' from commit 'd9f54f97578429773421abce98d5f6579717afcc' git-subtree-dir: CAN-binder/libs/openxc-message-format git-subtree-mainline: f44a5b1549bc4c8a84d0dedf4a8b1e4220a34f42 git-subtree-split: d9f54f97578429773421abce98d5f6579717afcc --- 12e680a3c97a2750c657a8c561a79706f3689149 diff --cc CAN-binder/libs/openxc-message-format/.gitignore index 00000000,00000000..b25c15b8 new file mode 100644 --- /dev/null +++ b/CAN-binder/libs/openxc-message-format/.gitignore @@@ -1,0 -1,0 +1,1 @@@ ++*~ diff --cc CAN-binder/libs/openxc-message-format/.gitmodules index 00000000,00000000..5c591244 new file mode 100644 --- /dev/null +++ b/CAN-binder/libs/openxc-message-format/.gitmodules @@@ -1,0 -1,0 +1,3 @@@ ++[submodule "libs/nanopb"] ++ path = libs/nanopb ++ url = https://github.com/nanopb/nanopb diff --cc CAN-binder/libs/openxc-message-format/CHANGELOG.md index 00000000,294826cd..294826cd mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/CHANGELOG.md +++ b/CAN-binder/libs/openxc-message-format/CHANGELOG.md diff --cc CAN-binder/libs/openxc-message-format/JSON.mkd index 00000000,d320aad0..d320aad0 mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/JSON.mkd +++ b/CAN-binder/libs/openxc-message-format/JSON.mkd diff --cc CAN-binder/libs/openxc-message-format/LICENSE index 00000000,00000000..9a30ce45 new file mode 100644 --- /dev/null +++ b/CAN-binder/libs/openxc-message-format/LICENSE @@@ -1,0 -1,0 +1,24 @@@ ++Copyright (c) 2012 Ford Motor Company ++All rights reserved. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are met: ++ * Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above copyright ++ notice, this list of conditions and the following disclaimer in the ++ documentation and/or other materials provided with the distribution. ++ * Neither the name of the nor the ++ names of its contributors may be used to endorse or promote products ++ derived from this software without specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ++ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY ++DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --cc CAN-binder/libs/openxc-message-format/Makefile index 00000000,7b968e63..7b968e63 mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/Makefile +++ b/CAN-binder/libs/openxc-message-format/Makefile diff --cc CAN-binder/libs/openxc-message-format/README.md index 00000000,00000000..77758b83 new file mode 100644 --- /dev/null +++ b/CAN-binder/libs/openxc-message-format/README.md @@@ -1,0 -1,0 +1,177 @@@ ++# OpenXC Message Format Specification ++ ++Version: v0.6.0 ++ ++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 or Protocol Buffers (protobuf). ++ ++## JSON ++ ++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. ++ ++The JSON format is best for most developers, as it is fairly efficient and very ++flexible. ++ ++## Binary (Protocol Buffers) ++ ++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. ++ ++The binary messages are published by the VI using the standard length-delimited ++method (any protobuf library should support this). ++ ++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. ++ ++## Message Pack ++MessagePack is an efficient binary serialization format. It lets you exchange data ++among multiple languages like JSON, but it's faster and smaller. Small integers are ++encoded into a single byte, and typical short strings require only one extra byte ++in addition to the strings themselves ++ ++For protocol specification visit: ++https://github.com/msgpack/msgpack/blob/master/spec.md ++ ++We are using the following lib: ++https://github.com/camgunz/cmp ++ ++MessagePack provides a binary alternative to ProtoBuf. There are pros & cons to each ++so you can decide what works best for your project. ++ ++## Trace File Format ++ ++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). ++ ++The first line may be a metadata object, although this is optional: ++ ++``` ++{"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" ++} ++``` ++ ++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 diff --cc CAN-binder/libs/openxc-message-format/benchmark/proto/.gitignore index 00000000,0520d7d2..0520d7d2 mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/benchmark/proto/.gitignore +++ b/CAN-binder/libs/openxc-message-format/benchmark/proto/.gitignore diff --cc CAN-binder/libs/openxc-message-format/benchmark/proto/compare_sizes.py index 00000000,0ed445fd..0ed445fd mode 000000,100755..100755 --- a/CAN-binder/libs/openxc-message-format/benchmark/proto/compare_sizes.py +++ b/CAN-binder/libs/openxc-message-format/benchmark/proto/compare_sizes.py diff --cc CAN-binder/libs/openxc-message-format/gen/README.mkd index 00000000,e607772d..e607772d mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/gen/README.mkd +++ b/CAN-binder/libs/openxc-message-format/gen/README.mkd diff --cc CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb index 00000000,104c2065..104c2065 mode 000000,100644..100644 Binary files differ diff --cc CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.c index 00000000,9b90c36b..9b90c36b mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.c +++ b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.c diff --cc CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.h index 00000000,09735ee7..09735ee7 mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.h +++ b/CAN-binder/libs/openxc-message-format/gen/cpp/openxc.pb.h diff --cc CAN-binder/libs/openxc-message-format/gen/java/com/openxc/BinaryMessages.java index 00000000,4fad1d6a..4fad1d6a mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/gen/java/com/openxc/BinaryMessages.java +++ b/CAN-binder/libs/openxc-message-format/gen/java/com/openxc/BinaryMessages.java diff --cc CAN-binder/libs/openxc-message-format/gen/python/openxc_pb2.py index 00000000,cd5ec5f0..cd5ec5f0 mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/gen/python/openxc_pb2.py +++ b/CAN-binder/libs/openxc-message-format/gen/python/openxc_pb2.py diff --cc CAN-binder/libs/openxc-message-format/libs/nanopb index 00000000,b947dc6e..b947dc6e mode 000000,160000..160000 --- a/CAN-binder/libs/openxc-message-format/libs/nanopb +++ b/CAN-binder/libs/openxc-message-format/libs/nanopb diff --cc CAN-binder/libs/openxc-message-format/openxc.options index 00000000,53726fc4..53726fc4 mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/openxc.options +++ b/CAN-binder/libs/openxc-message-format/openxc.options diff --cc CAN-binder/libs/openxc-message-format/openxc.proto index 00000000,db7164ff..db7164ff mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/openxc.proto +++ b/CAN-binder/libs/openxc-message-format/openxc.proto diff --cc CAN-binder/libs/openxc-message-format/pip-requirements.txt index 00000000,7f147d92..7f147d92 mode 000000,100644..100644 --- a/CAN-binder/libs/openxc-message-format/pip-requirements.txt +++ b/CAN-binder/libs/openxc-message-format/pip-requirements.txt diff --cc CAN-binder/libs/openxc-message-format/script/bootstrap.sh index 00000000,c0422422..c0422422 mode 000000,100755..100755 --- a/CAN-binder/libs/openxc-message-format/script/bootstrap.sh +++ b/CAN-binder/libs/openxc-message-format/script/bootstrap.sh