-Insert the modified SDcard in your Porter board and boot from it. Your are ready to go.
-
-## Configure the AGL system
-
-### Virtual CAN device
-
- Connected to the target, here is how to load the virtual CAN device driver and set up a new vcan device :
-
-```bash
-# modprobe vcan
-# ip link add vcan0 type vcan
-# ip link set vcan0 up
- ```
-
-### CAN device using the USB CAN adapter
-
-Using real connection to CAN bus of your car using the USB CAN adapter connected to the OBD2 connector.
-
-Once connected, launch ```dmesg``` command and search which device to use :
-
-```bash
-# dmesg
-[...]
-[ 131.871441] usb 1-3: new full-speed USB device number 4 using ohci-pci
-[ 161.860504] can: controller area network core (rev 20120528 abi 9)
-[ 161.860522] NET: Registered protocol family 29
-[ 177.561620] usb 1-3: USB disconnect, device number 4
-[ 191.061423] usb 1-2: USB disconnect, device number 3
-[ 196.095325] usb 1-2: new full-speed USB device number 5 using ohci-pci
-[ 327.568882] usb 1-2: USB disconnect, device number 5
-[ 428.594177] CAN device driver interface
-[ 1872.551543] usb 1-2: new full-speed USB device number 6 using ohci-pci
-[ 1872.809302] usb_8dev 1-2:1.0 can0: firmware: 1.7, hardware: 1.0
-[ 1872.809356] usbcore: registered new interface driver usb_8dev
-```
-
-Here device is named **can0**.
-
-This instruction assuming a speed of 500000kbps for your CAN bus, you can try others supported bitrate like 125000, 250000 if 500000 doesn't work:
-
-```bash
-# ip link set can0 type can bitrate 500000
-# ip link set can0 up
-# ip link show can0
- can0: <NOARP,UP,LOWER_UP,ECHO> mtu 16 qdisc pfifo_fast state UNKNOWN qlen 10
- link/can
- can state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 0
- bitrate 500000 sample-point 0.875
- tq 125 prop-seg 6 phase-seg1 7 phase-seg2 2 sjw 1
- sja1000: tseg1 1..16 tseg2 1..8 sjw 1..4 brp 1..64 brp-inc 1
- clock 16000000
-```
-
-## Configure the binding
-
-Configure the binding specifying in the JSON configuration file the CAN device(s) that it will to connect to. Edit file */var/lib/afm/applications/low-can-binding/0.1/can_buses.json* and change the CAN device name to the one you have :
-
-```json
-{
- "canbus": "can0"
-}
-```
-
-If you have several specify CAN bus devices use an array:
-
-```json
-{
- "canbus": [ "vcan0", "can0" ]
-}
-```
-
-## Run it, test it, use it !
-
-You can run the binding using **afm-util** tool, here is the classic way to go :
-
-```bash
-# afm-util run low-can-binding@0.1
-1
-```
-
-You can find instructions to use afm-util tool [here][afm-util], as well as documentation about Application Framework.
-
-But you can't control nor interact with it because you don't know security token that **Application Framework** gave it at launch.
-
-So, to test it, it is better to launch the binding manually. In the following example, we will use port **1234** and left empty security token for testing purpose:
-
-```bash
-# afb-daemon --ldpaths=/usr/lib/afb:/var/lib/afm/applications/low-can-binding/0.1/libs/ --rootdir=/var/lib/afm/applications/low-can-binding/0.1/ --port=1234 --token=
-NOTICE: binding [/usr/lib/afb/afb-dbus-binding.so] calling registering function afbBindingV1Register
-NOTICE: binding /usr/lib/afb/afb-dbus-binding.so loaded with API prefix dbus
-NOTICE: binding [/usr/lib/afb/authLogin.so] calling registering function afbBindingV1Register
-NOTICE: binding /usr/lib/afb/authLogin.so loaded with API prefix auth
-NOTICE: binding [/var/lib/afm/applications/low-can-binding/0.1/libs//low-can-binding.so] calling registering function afbBindingV1Register
-NOTICE: binding /var/lib/afm/applications/low-can-binding/0.1/libs//low-can-binding.so loaded with API prefix low-can
-NOTICE: Waiting port=1234 rootdir=/var/lib/afm/applications/low-can-binding/0.1/
-NOTICE: Browser URL= http:/*localhost:1234
-NOTICE: vcan0 device opened and reading {binding low-can}
-NOTICE: Initialized 1/1 can bus device(s) {binding low-can}
-```
-
-Then connect to the binding using previously installed ***AFB Websocket CLI*** tool :
-
-```bash
-# afb-client-demo ws://localhost:1234/api?token=
-```
-
-You will be on an interactive session where you can pass ask directly to the binding API.
-
-Binding provide at this moment 2 verbs, subscribe and unsubscribe, which can take argument by a JSON **event** object.
-
-The argument value is the CAN message name as described in the JSON file used to generate cpp file for the binding.
-
-To use the ***AFB Websocket CLI*** tool, a command line will be like the following :
-
-```
-<api> <verb> <arguments>
-```
-
-Where API will be : ***low-can***.
-Verb : ***subscribe*** or ***unsubscribe***
-Arguments : ***{ "event": "driver.doors.open" }***
-
-### Subscription and unsubscription
-
-You can ask to subscribe to chosen CAN event with a call to *subscribe* API verb with the CAN messages name as JSON argument.
-
-For example from a websocket session:
-
-```json
-low-can subscribe { "event": "doors.driver.open" }
-ON-REPLY 1:low-can/subscribe: {"jtype":"afb-reply","request":{"status":"success","uuid":"a18fd375-b6fa-4c0e-a1d4-9d3955975ae8"}}
-```
-
-Subscription and unsubscription can take wildcard in their *event* value.
-
-To reveive all doors events :
-
-```json
-low-can subscribe { "event" : "doors*" }
-ON-REPLY 1:low-can/subscribe: {"jtype":"afb-reply","request":{"status":"success","uuid":"511c872e-d7f3-4f3b-89c2-aa9a3e9fbbdb"}}
-```
-
-Then you will receive an event each time a CAN message is decoded for the event named *doors.driver.open*
-
-```json
-ON-EVENT low-can/messages.doors.driver.open({"event":"low-can\/messages.doors.driver.open","data":{"name":"messages.doors.driver.open","value":true},"jtype":"afb-event"})
-```
-
-Notice that event shows you that the CAN event is named *messages.doors.driver.open* but you ask for event about *doors.driver.open*.
-
-This is because all CAN messages or diagnostic messages are prefixed by the JSON parent node name, **messages** for CAN messages and **diagnostic_messages** for diagnostic messages like OBD2.
-
-This will let you subscribe or unsubcribe to all signals at once, not recommended, and better make filter on subscribe operation based upon their type. Examples:
-
-```json
-low-can subscribe { "event" : "*speed*" } --> will subscribe to all messages with speed in their name. Search will be make without prefix for it.
-low-can subscribe { "event" : "speed*" } --> will subscribe to all messages begin by speed in their name. Search will be make without prefix for it.
-low-can subscribe { "event" : "messages*speed*" } --> will subscribe to all CAN messages with speed in their name. Search will be on prefixed messages here.
-low-can subscribe { "event" : "messages*speed" } --> will subscribe to all CAN messages ending with speed in their name. Search will be on prefixed messages here.
-low-can subscribe { "event" : "diagnostic*speed*" } --> will subscribe to all diagnostic messages with speed in their name. Search will be on prefixed messages here.
-low-can subscribe { "event" : "diagnostic*speed" } --> will subscribe to all diagnostic messages ending with speed in their name. Search will be on prefixed messages here.
-```
-
-You can stop receiving event from it by unsubscribe the signal the same way you did for subscribe
-
-```json
-low-can unsubscribe { "event": "doors.driver.open" }
-ON-REPLY 2:low-can/unsubscribe: {"jtype":"afb-reply","request":{"status":"success"}}
-low-can unsubscribe { "event" : "doors*" }
-ON-REPLY 3:low-can/unsubscribe: {"jtype":"afb-reply","request":{"status":"success"}}
-```
-
-[OpenXC_to_AGL]: images/OpenXC_to_AGL.png "From OpenXC firmware to AGL binding"
-[CAN_bindings_communication]: images/CAN_bindings_communication.png "Communication between CAN bindings and third applications"
-[CAN_mapping]: images/CAN_level_mapping.png "CAN low and high level bindings mapping"
-
-[USB_CAN]: http://shop.8devices.com/usb2can "USB CAN adapter recommended"
-[OBD2_cable]: http://www.obd2cables.com/ "OBD2<->DB9 recommended cable"
-[SDK_instructions]: http://docs.iot.bzh/docs/getting_started/en/dev/reference/setup-sdk-environment.html "Setup SDK environment"
-[generator]: http://github.com/iotbzh/can-config-generator "AGL low level CAN binding Generator"
-[afm-util]: http://docs.iot.bzh/docs/apis_services/en/dev/reference/af-main/afm-daemons.html#using-afm-util "afm-util usage"
\ No newline at end of file