From a3cbfc8490394437006dd8bedabfd336cf06fc74 Mon Sep 17 00:00:00 2001 From: Loïc Collignon Date: Fri, 17 Mar 2017 23:31:21 +0100 Subject: updated documentation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Loïc Collignon --- README.md | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) (limited to 'README.md') diff --git a/README.md b/README.md index 9c0daaff..35bccdff 100644 --- a/README.md +++ b/README.md @@ -1 +1,102 @@ -# can-config-generator \ No newline at end of file +#CAN Configuration Generator + +##Abstract + +This tool is used to generate a configuration source file for the Low Level CAN bus binding. +This binding need a configuration provided as a C++ source file. +As long this binding is based on [OpenXC vi-firmware](https://github.com/openxc/vi-firmware), this generator use the JSON format from the [python generator](https://github.com/openxc/openxc-python). +The reference documentation of the JSON file can be found [here](https://github.com/openxc/vi-firmware/blob/master/docs/config/reference.rst). + +## Getting started +### Build requirements + +* CMake version 3.0 or later +* G++, Clang++ or any C++11 complient compiler. +* Boost + * filesystem + * program_options + * system + +You can install any of these using your package manager. For instance, inside the iotbzh's docker image, you must enter this command : + + devel@bsp-devkit:~/$ sudo apt-get install cmake libboost-system-dev libboost-filesystem-dev libboost-program-options-dev + +You may want to install `libboost-all-dev` to get all boost components even if it's not required. + +## Compile + +
+devel@bsp-devkit:~/projects/$ git clone https://github.com/iotbzh/can-config-generator.git
+Cloning into 'can-config-generator'...
+remote: Counting objects: 74, done.
+remote: Compressing objects: 100% (42/42), done.
+remote: Total 74 (delta 30), reused 67 (delta 27), pack-reused 0
+Unpacking objects: 100% (74/74), done.
+Checking connectivity... done.
+	
+devel@bsp-devkit:~/projects/$ cd can-config-generator
+devel@bsp-devkit:~/projects/can-config-generator/(master)$ mkdir build
+devel@bsp-devkit:~/projects/can-config-generator/build(master)$ cmake -G "Unix Makefiles" ..
+-- The C compiler identification is GNU 4.9.2
+-- The CXX compiler identification is GNU 4.9.2
+-- Check for working C compiler: /usr/bin/cc
+-- Check for working C compiler: /usr/bin/cc -- works
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Check for working CXX compiler: /usr/bin/c++
+-- Check for working CXX compiler: /usr/bin/c++ -- works
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Boost version: 1.55.0
+-- Found the following Boost libraries:
+--   program_options
+--   filesystem
+--   system
+-- Configuring done
+-- Generating done
+-- Build files have been written to: /home/devel/projects/can-config-generator/build
+devel@bsp-devkit:~/projects/can-config-generator/build(master)$ make
+Scanning dependencies of target can-config-generator
+[ 12%] Building CXX object CMakeFiles/can-config-generator.dir/src/main.cpp.o
+[ 25%] Building CXX object CMakeFiles/can-config-generator.dir/src/openxc/message_set.cpp.o
+[ 37%] Building CXX object CMakeFiles/can-config-generator.dir/src/openxc/can_bus.cpp.o
+[ 50%] Building CXX object CMakeFiles/can-config-generator.dir/src/openxc/can_message.cpp.o
+[ 62%] Building CXX object CMakeFiles/can-config-generator.dir/src/openxc/command.cpp.o
+[ 75%] Building CXX object CMakeFiles/can-config-generator.dir/src/openxc/diagnostic_message.cpp.o
+[ 87%] Building CXX object CMakeFiles/can-config-generator.dir/src/openxc/mapping.cpp.o
+[100%] Building CXX object CMakeFiles/can-config-generator.dir/src/openxc/signal.cpp.o
+Linking CXX executable can-config-generator
+[100%] Built target can-config-generator
+
+ +## Generate your config file + +To generate your config file you just have to run the generator using the `-m` option to specify your JSON file. +
+devel@bsp-devkit:~/projects/can-config-generator/build(master)$ can-config-generator -m ../tests/basic.json -o configuration-generated.cpp
+
+ +If you omit the `-o` option, then code is generated on the stdout. +You also can specify a header and a footer file. +These files must be valid C++ fragment as long as they will be inserted as is. +Use the `-h` option to display help. + +## Supported OpenXC items + +As long as the low level CAN signaling binding doesn't fully support OpenXC yet, this generator is also limited. +For instance, `initializers`, `loopers`, `buses`, `commands` and `handlers` nodes are ignored for now. +This generator will follow OpenXC support status of the low level CAN signaling binding. + +## Known issues + +* Each `diagnostic_message` must define the same `bus` as the binding will use only one bus. + +## Dependencies + +* [json](https://github.com/nlohmann/json) by nlohmann + +## License + +Copyright 2017 - iotbzh + +Licensed under the [Apache License 2.0](https://github.com/iotbzh/can-config-generator/blob/master/LICENSE) \ No newline at end of file -- cgit 1.2.3-korg