# Prerequisites
-* An AGL system installed with latest Daring Dab version.
+* An AGL system installed with latest Daring Dab version with latest Application
+framework version >= 0.6.
* Make sure you built the AGL generator else you will not be able to generate custom low-level CAN binding.
It will produce a _application-generated.cpp_ file to paste in the source, _CAN-binder/low-can-binding/binding/_, directory.
-* 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).
+* Make sure you already set up the AGL SDK using the following [Download or Build Your SDK Installer](../../../getting_started/reference/getting-started/app-workflow-sdk.html). Alternatively, please refer to official guides available on [AGL Developer Site](../../../devguides).
-To get the correct SDK version installed, you **must** prepare your environment with the **iotbzh** flavor using _prepare_meta_ tool. To do so, run the following command in your docker image in the step 4 in place of `... [ prepare build environment ] ...`:
+If you need to have the graphic stack inside your SDK, you have to prepare your environment with the **iotbzh**, or **Daring Dab** flavor using _prepare_meta_ tool. To do so, run the following command in your docker image in the step 4 in place of `... [ prepare build environment ] ...`:
> **NOTE** These commands assume that proprietary graphic drivers for Renesas Porter board are located in _/home/devel/share/proprietary-renesas-rcar_ directory.
/xdt/build/m3ulcb/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/)).
+* (Optionnal) An [USB CAN adapter](https://shop.8devices.com/index.php?route=product/product&path=67&product_id=54) connected to connector through the [right cable](https://www.mouser.fr/ProductDetail/EasySync/OBD-M-DB9-F-ES?qs=pLQRQR43dtrcAQQLCUAIxA%3D%3D) if you want to connect to a real car through the OBD2 connector.
<!-- pagebreak -->
# Getting started
-## Use of CAN config generator
+## CAN config generator usage
### Build requirements
-* CMake version 3.0 or later
+* CMake version 3.3 or later
* G++, Clang++ or any C++11 compliant compiler.
### Compile
-> **CAUTION** It is **very important** that you do not source the SDK environment file to compile this project because some build requirements aren't installed in the AGL SDK for now.
-
```bash
+source /xdt/sdk/environment-setup-aarch64-agl-linux
export PATH=$PATH:/xdt/sdk/sysroots/x86_64-aglsdk-linux/usr/bin
export WD=$(pwd)
-git clone --recursive https://gerrit.automotivelinux.org/gerrit/apps/low-level-can-service
-export GENERATOR=${WD}/CAN-signaling/CAN-config-generator
-cd ${GENERATOR}
+git clone --recursive https://gerrit.automotivelinux.org/gerrit/apps/agl-service-can-low-level -b Renesas_delivery_Q2
+git clone --recursive https://gerrit.automotivelinux.org/gerrit/apps/low-level-can-generator
+cd ${WD}/low-level-can-generator
mkdir -p build
cd build
cmake -G "Unix Makefiles" ..
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***s : Find and return the corresponding string state for a CAN signal's raw integer value.
+* ***decoder_t::decode_noop*** : Default decoder if not specified, return raw value from signal's bitfield.
+* ***decoder_t::decode_boolean*** : Coerces a numerical value to a boolean.
+* ***decoder_t::decode_state*** : 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 it 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:
## Compile and install the binding
+### Build requirements
+
+* Kernel >= 4.8
+* CMake version 3.3 or later
+* G++, Clang++ or any C++11 compliant compiler.
+
+### Compile
+
Clone the binding repository, copy the generated file and updated the git submodules.
Execute the following commands from this repository:
```bash
-cd $WD/low-level-can-service/CAN-binder
-cp ${GENERATOR}/build/application-generated.cpp ../low-can-binding/binding
+cd ${WD}/agl-service-can-low-level
+cp ${WD}/low-level-can-generator/build/application-generated.cpp ../low-can-binding/binding
```
### Installation
```bash
-cd $WD/low-level-can-service/CAN-binder
+cd ${WD}/agl-service-can-low-level
mkdir build
cd build
cmake ..
```bash
afm-util install low-can-service.wgt
-{ "added": "low-can-service@2.0" }
+{ "added": "low-can-service@4.0" }
```