X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2F2-Installation.md;h=784a0623094f76deaf455ac2b56e46ade34d84bb;hb=429fa417e5822b33b41d35f7d3d590327c145adf;hp=b519de33081a549b48948a05f26e9bb4b2df9109;hpb=2ab5cbcde5c8df39b150f590df559e082411c722;p=apps%2Fagl-service-can-low-level.git diff --git a/docs/2-Installation.md b/docs/2-Installation.md index b519de33..784a0623 100644 --- a/docs/2-Installation.md +++ b/docs/2-Installation.md @@ -6,27 +6,21 @@ It will produce a _configuration-generated.cpp_ file to paste in the source, _src/_, directory. -* Make sure you already set up the AGL SDK using the following [guide](http://docs.iot.bzh/docs/getting_started/en/dev/reference/setup-sdk-environment.html). +* Make sure you already set up the AGL SDK using the following [SDK Quick Setup Guide](http://docs.iot.bzh/docs/getting_started/en/dev/reference/setup-sdk-environment.html). Alternatively, please refer to official guides available on [AGL Developer Site](http://docs.automotivelinux.org/docs/devguides/en/dev/#guides). -To get the correct SDK version installed, you **must** prepare your environment with the **chinook-next** version. To do so, run the following command in your docker image: +To get the correct SDK version installed, you **must** prepare your environment with the **chinook-next** version. To do so, run the following command in your docker image in the step 4 in place of `... [ prepare build environment ] ...`: -> **NOTE** This command assume that proprietary graphic drivers for Renesas Porter board are located in `/home/devel/share/proprietary-renesas-rcar` directory. +> **NOTE** These commands assume that proprietary graphic drivers for Renesas Porter board are located in `/home/devel/share/proprietary-renesas-rcar` directory. ```bash $ prepare_meta -f chinook-next -o /xdt -l /home/devel/mirror -p /home/devel/share/proprietary-renesas-rcar/ -t porter -e wipeconfig -e rm_work -``` - -* Check that you updated git submodules, executing the following commands from this repository: - -```bash -$ git clone https://github.com/iotbzh/CAN_signaling -$ cd CAN_signaling -$ git submodule init -$ git submodule update +$ /xdt/build/agl-init-build-env ``` * An [USB CAN adapter](http://shop.8devices.com/usb2can) connected to connector through the [right cable](http://www.mouser.fr/ProductDetail/EasySync/OBD-M-DB9-F-ES/)). + + # Getting started ## Use of CAN config generator @@ -34,7 +28,7 @@ $ git submodule update ### Build requirements * CMake version 3.0 or later -* G++, Clang++ or any C++11 complient compiler. +* G++, Clang++ or any C++11 compliant compiler. * Boost * filesystem * program\_options @@ -55,9 +49,10 @@ You may want to install `libboost-all-dev` to get all boost components even if i ```bash $ export PATH=$PATH:/xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/bin +$ export WD=$(pwd) $ git clone https://github.com/iotbzh/can-config-generator.git $ cd can-config-generator -$ mkdir build +$ mkdir -p build $ cd build $ cmake -G "Unix Makefiles" .. $ make @@ -95,15 +90,23 @@ engine.torque > **NOTE** It's recommended that you follow this naming convention to named your CAN signals. > -> There is only character `*` that is forbidden in names because it's used as wildcard for subscription and unsubscrition. +> There is only character `*` that is forbidden in names because it's used as wildcard for subscription and unsubscription. > > This described in the below chapter. +### Available decoder + +You can use some basic decoder provided by default by the binding which are: + +* decoder_t::noopDecoder : Default decoder if not specified, return raw value from signal's bitfield. +* decoder_t::booleanDecoder : Coerces a numerical value to a boolean. +* decoder_t::stateDecoder : Find and return the corresponding string state for a CAN signal's raw integer value. + ### Generating JSON from Vector CANoe Database -> **CAUTION** This chapter has not been tested since we haven't necessary automotive tools for that. +> **CAUTION** This chapter has not been tested since we haven't necessary automotive tools for that. -If you use Canoe to store your `gold standard` CAN signal definitions, you may be able to use the OpenXC `xml_to_json.py` script to make your JSON for you. First, export the Canoe .dbc file as XML - you can do this with Vector CANdb++. Next, create a JSON file according to the format defined above, but only define: +If you use CANoe to store your `gold standard` CAN signal definitions, you may be able to use the OpenXC `xml_to_json.py` script to make your JSON for you. First, export the Canoe .dbc file as XML - you can do this with Vector CANdb++. Next, create a JSON file according to the format defined above, but only define: - CAN messages. - Name of CAN signals within messages and their generic_name. @@ -134,16 +137,16 @@ To generate your config file you just have to run the generator using the `-m` o $ ./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. +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. > **CAUTION:** Each `diagnostic_message` must define the same `bus` as the binding will use only one bus. ### Supported OpenXC items -About now, compliance with OpenXC reference is in progress, can-config-generator and CAN\_signaling will implement them soon. +About now, compliance with OpenXC reference is in progress, can-config-generator and CAN\_signaling will implement them soon. `initializers`, `loopers`, `commands` and `handlers` nodes are ignored for now. This generator will follow OpenXC support status of the low level CAN signaling binding. @@ -151,21 +154,35 @@ This generator will follow OpenXC support status of the low level CAN signaling > **NOTE**: The `buses` item will not be supported by this generator because the binding use another way to declare and configure buses. Please refer to the binding's documentation. ## Compile and install the binding +Clone the binding repository, copy the generated file and updated the git submodules. + +Execute the following commands from this repository: + +```bash +$ cd $WD +$ git clone https://github.com/iotbzh/CAN_signaling -b v1.0 +$ cd CAN_signaling +$ git submodule init +$ git submodule update +$ cp $WD/can-config-generator/build/configuration-generated.cpp src/ +``` -With an AGL SDK environment correctly configured and **sourced**, I suggest you to set the TARGET variable in the root CMakeLists.txt file if you have an AGL target already running in your network. +### Installation using *make install* + +With an AGL SDK environment correctly configured and **sourced**, I suggest you to set the TARGET variable in the CMakeLists.txt file located under _src_ directory if you have an AGL target already running in your network. Then you can directly build and install the binding and source directory on your target system. -Execute these commands to get your binding compile : +Execute these commands to get your binding compile: ```bash -$ mkdir build +$ mkdir -p build $ cd build $ cmake .. $ make ``` -And if you have set TARGET variable, you can install it on your AGL system : +And if you have set TARGET variable, you can install it on your AGL system: ```bash $ make install @@ -191,6 +208,8 @@ It's because installation remove the binding before installing it. If it is the first time that you make the installation then you'll have this message in place of _**true**_. +### Manual Installation + To install it manually, you need to copy the _low-can-binding.wgt_ file on your target, then from it execute the following commands : On your host, to copy over the network : @@ -199,9 +218,9 @@ On your host, to copy over the network : $ scp low-can-binding.wgt root@:~ ``` -On the target, assuming _**wgt**_ file is in the root home directory : +On the target, assuming _**wgt**_ file is in the root home directory: ```bash -~# afm-util install low-can-binding.wgt +# afm-util install low-can-binding.wgt { "added": "low-can-binding@0.1" } ```