summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules10
-rw-r--r--CAN-binder/CMakeLists.txt (renamed from CMakeLists.txt)0
-rw-r--r--CAN-binder/Makefile37
-rw-r--r--CAN-binder/can_samples/citroen/citroen_c5_highway_1 (renamed from can_samples/citroen/citroen_c5_highway_1)0
-rw-r--r--CAN-binder/can_samples/citroen/citroen_c5_highway_2 (renamed from can_samples/citroen/citroen_c5_highway_2)0
-rw-r--r--CAN-binder/can_samples/ford/focus/accel (renamed from can_samples/ford/focus/accel)0
-rw-r--r--CAN-binder/can_samples/ford/focus/alldoors_lock (renamed from can_samples/ford/focus/alldoors_lock)0
-rw-r--r--CAN-binder/can_samples/ford/focus/alldoors_open (renamed from can_samples/ford/focus/alldoors_open)0
-rw-r--r--CAN-binder/can_samples/ford/focus/brake (renamed from can_samples/ford/focus/brake)0
-rw-r--r--CAN-binder/can_samples/ford/focus/handbrake (renamed from can_samples/ford/focus/handbrake)0
-rw-r--r--CAN-binder/can_samples/ford/focus/ignition (renamed from can_samples/ford/focus/ignition)0
-rw-r--r--CAN-binder/can_samples/ford/focus/lights (renamed from can_samples/ford/focus/lights)0
-rw-r--r--CAN-binder/can_samples/ford/focus/turnleft (renamed from can_samples/ford/focus/turnleft)0
-rw-r--r--CAN-binder/can_samples/ford/focus/turnright (renamed from can_samples/ford/focus/turnright)0
-rwxr-xr-xCAN-binder/can_samples/init_can.sh (renamed from can_samples/init_can.sh)0
-rwxr-xr-xCAN-binder/can_samples/init_vcan.sh (renamed from can_samples/init_vcan.sh)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/accel (renamed from can_samples/toyota/auris/accel)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/alldoors_lock (renamed from can_samples/toyota/auris/alldoors_lock)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/alldoors_unlock (renamed from can_samples/toyota/auris/alldoors_unlock)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/brake (renamed from can_samples/toyota/auris/brake)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/engineoff (renamed from can_samples/toyota/auris/engineoff)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/handbrake (renamed from can_samples/toyota/auris/handbrake)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/ignition (renamed from can_samples/toyota/auris/ignition)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/keydisengage (renamed from can_samples/toyota/auris/keydisengage)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/keyengage (renamed from can_samples/toyota/auris/keyengage)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/keyin (renamed from can_samples/toyota/auris/keyin)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/keyout (renamed from can_samples/toyota/auris/keyout)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/lights (renamed from can_samples/toyota/auris/lights)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/trip_test_with_obd2_vehicle_speed_requests (renamed from can_samples/toyota/auris/trip_test_with_obd2_vehicle_speed_requests)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/turnleft (renamed from can_samples/toyota/auris/turnleft)0
-rw-r--r--CAN-binder/can_samples/toyota/auris/turnright (renamed from can_samples/toyota/auris/turnright)0
-rw-r--r--CAN-binder/etc/config.cmake (renamed from etc/config.cmake)0
-rw-r--r--CAN-binder/etc/export.map (renamed from etc/export.map)0
-rw-r--r--CAN-binder/examples/basic/generate_example.cpp (renamed from examples/basic/generate_example.cpp)0
-rw-r--r--CAN-binder/examples/basic/handlers.cpp (renamed from can-config-generator/tests/handlers.cpp)0
-rw-r--r--CAN-binder/examples/basic/signals.json (renamed from examples/basic/signals.json)0
-rw-r--r--CAN-binder/examples/toyota/configuration-generated.cpp (renamed from examples/toyota/configuration-generated.cpp)0
-rw-r--r--CAN-binder/examples/toyota/signals.json (renamed from examples/toyota/signals.json)0
-rw-r--r--CAN-binder/libs/CMakeLists.txt (renamed from libs/CMakeLists.txt)0
m---------CAN-binder/libs/bitfield-c (renamed from libs/bitfield-c)0
m---------CAN-binder/libs/isotp-c (renamed from libs/isotp-c)0
m---------CAN-binder/libs/nanopb (renamed from libs/nanopb)0
m---------CAN-binder/libs/openxc-message-format (renamed from libs/openxc-message-format)0
m---------CAN-binder/libs/uds-c (renamed from libs/uds-c)0
-rw-r--r--CAN-binder/low-can-binding/CMakeLists.txt (renamed from low-can-binding/CMakeLists.txt)0
-rw-r--r--CAN-binder/low-can-binding/can/can-bus-dev.cpp (renamed from low-can-binding/can/can-bus-dev.cpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-bus-dev.hpp (renamed from low-can-binding/can/can-bus-dev.hpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-bus.cpp (renamed from low-can-binding/can/can-bus.cpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-bus.hpp (renamed from low-can-binding/can/can-bus.hpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-command.hpp (renamed from low-can-binding/can/can-command.hpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-decoder.cpp (renamed from low-can-binding/can/can-decoder.cpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-decoder.hpp (renamed from low-can-binding/can/can-decoder.hpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-message-definition.cpp (renamed from low-can-binding/can/can-message-definition.cpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-message-definition.hpp (renamed from low-can-binding/can/can-message-definition.hpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-message-set.cpp (renamed from low-can-binding/can/can-message-set.cpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-message-set.hpp (renamed from low-can-binding/can/can-message-set.hpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-message.cpp (renamed from low-can-binding/can/can-message.cpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-message.hpp (renamed from low-can-binding/can/can-message.hpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-signals.cpp (renamed from low-can-binding/can/can-signals.cpp)0
-rw-r--r--CAN-binder/low-can-binding/can/can-signals.hpp (renamed from low-can-binding/can/can-signals.hpp)0
-rw-r--r--CAN-binder/low-can-binding/configuration-generated.cpp (renamed from low-can-binding/configuration-generated.cpp)0
-rw-r--r--CAN-binder/low-can-binding/configuration.cpp (renamed from low-can-binding/configuration.cpp)0
-rw-r--r--CAN-binder/low-can-binding/configuration.hpp (renamed from low-can-binding/configuration.hpp)0
-rw-r--r--CAN-binder/low-can-binding/diagnostic/active-diagnostic-request.cpp (renamed from low-can-binding/diagnostic/active-diagnostic-request.cpp)0
-rw-r--r--CAN-binder/low-can-binding/diagnostic/active-diagnostic-request.hpp (renamed from low-can-binding/diagnostic/active-diagnostic-request.hpp)0
-rw-r--r--CAN-binder/low-can-binding/diagnostic/diagnostic-manager.cpp (renamed from low-can-binding/diagnostic/diagnostic-manager.cpp)0
-rw-r--r--CAN-binder/low-can-binding/diagnostic/diagnostic-manager.hpp (renamed from low-can-binding/diagnostic/diagnostic-manager.hpp)0
-rw-r--r--CAN-binder/low-can-binding/diagnostic/diagnostic-message.cpp (renamed from low-can-binding/diagnostic/diagnostic-message.cpp)0
-rw-r--r--CAN-binder/low-can-binding/diagnostic/diagnostic-message.hpp (renamed from low-can-binding/diagnostic/diagnostic-message.hpp)0
-rw-r--r--CAN-binder/low-can-binding/low-can-binding.cpp (renamed from low-can-binding/low-can-binding.cpp)0
-rw-r--r--CAN-binder/low-can-binding/low-can-binding.hpp (renamed from low-can-binding/low-can-binding.hpp)0
-rw-r--r--CAN-binder/low-can-binding/packaging/wgt/config.xml (renamed from low-can-binding/packaging/wgt/config.xml)0
-rw-r--r--CAN-binder/low-can-binding/packaging/wgt/etc/can_buses.json (renamed from low-can-binding/packaging/wgt/etc/can_buses.json)0
-rw-r--r--CAN-binder/low-can-binding/packaging/wgt/icon.png (renamed from low-can-binding/packaging/wgt/icon.png)bin4035 -> 4035 bytes
-rw-r--r--CAN-binder/low-can-binding/utils/config-parser.cpp (renamed from low-can-binding/utils/config-parser.cpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/config-parser.hpp (renamed from low-can-binding/utils/config-parser.hpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/openxc-utils.cpp (renamed from low-can-binding/utils/openxc-utils.cpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/openxc-utils.hpp (renamed from low-can-binding/utils/openxc-utils.hpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/signals.cpp (renamed from low-can-binding/utils/signals.cpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/signals.hpp (renamed from low-can-binding/utils/signals.hpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/socket.cpp (renamed from low-can-binding/utils/socket.cpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/socket.hpp (renamed from low-can-binding/utils/socket.hpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/timer.cpp (renamed from low-can-binding/utils/timer.cpp)0
-rw-r--r--CAN-binder/low-can-binding/utils/timer.hpp (renamed from low-can-binding/utils/timer.hpp)0
-rwxr-xr-xCAN-config-generator/.gitignore (renamed from can-config-generator/.gitignore)0
-rwxr-xr-xCAN-config-generator/3rdparty/json/json.hpp (renamed from can-config-generator/3rdparty/json/json.hpp)0
-rw-r--r--CAN-config-generator/CMakeLists.txt283
-rw-r--r--CAN-config-generator/LICENSE (renamed from can-config-generator/LICENSE)0
-rw-r--r--CAN-config-generator/Makefile37
-rw-r--r--CAN-config-generator/README.md (renamed from can-config-generator/README.md)0
-rwxr-xr-xCAN-config-generator/build.sh (renamed from can-config-generator/build.sh)0
-rw-r--r--CAN-config-generator/can-config-generator.sln (renamed from can-config-generator/can-config-generator.sln)0
-rw-r--r--CAN-config-generator/can-config-generator.vcxproj (renamed from can-config-generator/can-config-generator.vcxproj)0
-rw-r--r--CAN-config-generator/etc/config.cmake79
-rw-r--r--CAN-config-generator/etc/export.map1
-rw-r--r--CAN-config-generator/src/CMakeLists.txt (renamed from can-config-generator/CMakeLists.txt)18
-rw-r--r--CAN-config-generator/src/main.cpp (renamed from can-config-generator/src/main.cpp)0
-rw-r--r--CAN-config-generator/src/main.hpp (renamed from can-config-generator/src/main.hpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/can_bus.cpp (renamed from can-config-generator/src/openxc/can_bus.cpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/can_bus.hpp (renamed from can-config-generator/src/openxc/can_bus.hpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/can_message.cpp (renamed from can-config-generator/src/openxc/can_message.cpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/can_message.hpp (renamed from can-config-generator/src/openxc/can_message.hpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/command.cpp (renamed from can-config-generator/src/openxc/command.cpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/command.hpp (renamed from can-config-generator/src/openxc/command.hpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/diagnostic_message.cpp (renamed from can-config-generator/src/openxc/diagnostic_message.cpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/diagnostic_message.hpp (renamed from can-config-generator/src/openxc/diagnostic_message.hpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/mapping.cpp (renamed from can-config-generator/src/openxc/mapping.cpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/mapping.hpp (renamed from can-config-generator/src/openxc/mapping.hpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/message_set.cpp (renamed from can-config-generator/src/openxc/message_set.cpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/message_set.hpp (renamed from can-config-generator/src/openxc/message_set.hpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/signal.cpp (renamed from can-config-generator/src/openxc/signal.cpp)0
-rwxr-xr-xCAN-config-generator/src/openxc/signal.hpp (renamed from can-config-generator/src/openxc/signal.hpp)0
-rwxr-xr-xCAN-config-generator/tests/basic.json (renamed from can-config-generator/tests/basic.json)0
-rw-r--r--CAN-config-generator/tests/generated.cpp (renamed from can-config-generator/tests/generated.cpp)0
-rw-r--r--CAN-config-generator/tests/handlers.cpp (renamed from examples/basic/handlers.cpp)0
-rwxr-xr-xCAN-config-generator/tests/signals.json (renamed from can-config-generator/tests/signals.json)0
-rw-r--r--README.md18
-rwxr-xr-xbuild.sh82
118 files changed, 469 insertions, 96 deletions
diff --git a/.gitmodules b/.gitmodules
index db4dd12..8441eea 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,15 +1,15 @@
[submodule "low-can-binding/libs/openxc-message-format"]
- path = libs/openxc-message-format
+ path = CAN-binder/libs/openxc-message-format
url = https://github.com/openxc/openxc-message-format
[submodule "low-can-binding/libs/nanopb"]
- path = libs/nanopb
+ path = CAN-binder/libs/nanopb
url = https://github.com/nanopb/nanopb.git
[submodule "low-can-binding/libs/uds-c"]
- path = libs/uds-c
+ path = CAN-binder/libs/uds-c
url = https://github.com/openxc/uds-c.git
[submodule "low-can-binding/libs/bitfield-c"]
- path = libs/bitfield-c
+ path = CAN-binder/libs/bitfield-c
url = https://github.com/openxc/bitfield-c.git
[submodule "low-can-binding/libs/isotp-c"]
- path = libs/isotp-c
+ path = CAN-binder/libs/isotp-c
url = https://github.com/openxc/isotp-c
diff --git a/CMakeLists.txt b/CAN-binder/CMakeLists.txt
index ec91089..ec91089 100644
--- a/CMakeLists.txt
+++ b/CAN-binder/CMakeLists.txt
diff --git a/CAN-binder/Makefile b/CAN-binder/Makefile
new file mode 100644
index 0000000..658ef32
--- /dev/null
+++ b/CAN-binder/Makefile
@@ -0,0 +1,37 @@
+# Copyright (C) 2015, 2016 "IoT.bzh"
+# Author "Romain Forlot" <romain.forlot@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+BUILD_DIR := build
+
+.PHONY: all clean mrproper ${BUILD_DIR}/Makefile
+
+all: build package
+
+clean:
+ @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean
+
+mrproper:
+ rm -rf ${BUILD_DIR}
+
+build: ${BUILD_DIR}/Makefile
+ cmake --build ${BUILD_DIR} --clean-first
+
+
+package:
+ cmake --build ${BUILD_DIR} --target widget
+
+${BUILD_DIR}/Makefile:
+ @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
+ @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..)
diff --git a/can_samples/citroen/citroen_c5_highway_1 b/CAN-binder/can_samples/citroen/citroen_c5_highway_1
index f904932..f904932 100644
--- a/can_samples/citroen/citroen_c5_highway_1
+++ b/CAN-binder/can_samples/citroen/citroen_c5_highway_1
diff --git a/can_samples/citroen/citroen_c5_highway_2 b/CAN-binder/can_samples/citroen/citroen_c5_highway_2
index 7aa923a..7aa923a 100644
--- a/can_samples/citroen/citroen_c5_highway_2
+++ b/CAN-binder/can_samples/citroen/citroen_c5_highway_2
diff --git a/can_samples/ford/focus/accel b/CAN-binder/can_samples/ford/focus/accel
index 9c63a7b..9c63a7b 100644
--- a/can_samples/ford/focus/accel
+++ b/CAN-binder/can_samples/ford/focus/accel
diff --git a/can_samples/ford/focus/alldoors_lock b/CAN-binder/can_samples/ford/focus/alldoors_lock
index d4a3a56..d4a3a56 100644
--- a/can_samples/ford/focus/alldoors_lock
+++ b/CAN-binder/can_samples/ford/focus/alldoors_lock
diff --git a/can_samples/ford/focus/alldoors_open b/CAN-binder/can_samples/ford/focus/alldoors_open
index 72552d9..72552d9 100644
--- a/can_samples/ford/focus/alldoors_open
+++ b/CAN-binder/can_samples/ford/focus/alldoors_open
diff --git a/can_samples/ford/focus/brake b/CAN-binder/can_samples/ford/focus/brake
index 141ce80..141ce80 100644
--- a/can_samples/ford/focus/brake
+++ b/CAN-binder/can_samples/ford/focus/brake
diff --git a/can_samples/ford/focus/handbrake b/CAN-binder/can_samples/ford/focus/handbrake
index 6614e08..6614e08 100644
--- a/can_samples/ford/focus/handbrake
+++ b/CAN-binder/can_samples/ford/focus/handbrake
diff --git a/can_samples/ford/focus/ignition b/CAN-binder/can_samples/ford/focus/ignition
index e33a991..e33a991 100644
--- a/can_samples/ford/focus/ignition
+++ b/CAN-binder/can_samples/ford/focus/ignition
diff --git a/can_samples/ford/focus/lights b/CAN-binder/can_samples/ford/focus/lights
index ae7b036..ae7b036 100644
--- a/can_samples/ford/focus/lights
+++ b/CAN-binder/can_samples/ford/focus/lights
diff --git a/can_samples/ford/focus/turnleft b/CAN-binder/can_samples/ford/focus/turnleft
index 83b2000..83b2000 100644
--- a/can_samples/ford/focus/turnleft
+++ b/CAN-binder/can_samples/ford/focus/turnleft
diff --git a/can_samples/ford/focus/turnright b/CAN-binder/can_samples/ford/focus/turnright
index f039a4b..f039a4b 100644
--- a/can_samples/ford/focus/turnright
+++ b/CAN-binder/can_samples/ford/focus/turnright
diff --git a/can_samples/init_can.sh b/CAN-binder/can_samples/init_can.sh
index a790034..a790034 100755
--- a/can_samples/init_can.sh
+++ b/CAN-binder/can_samples/init_can.sh
diff --git a/can_samples/init_vcan.sh b/CAN-binder/can_samples/init_vcan.sh
index 531dd1e..531dd1e 100755
--- a/can_samples/init_vcan.sh
+++ b/CAN-binder/can_samples/init_vcan.sh
diff --git a/can_samples/toyota/auris/accel b/CAN-binder/can_samples/toyota/auris/accel
index 9ddd921..9ddd921 100644
--- a/can_samples/toyota/auris/accel
+++ b/CAN-binder/can_samples/toyota/auris/accel
diff --git a/can_samples/toyota/auris/alldoors_lock b/CAN-binder/can_samples/toyota/auris/alldoors_lock
index 10705c9..10705c9 100644
--- a/can_samples/toyota/auris/alldoors_lock
+++ b/CAN-binder/can_samples/toyota/auris/alldoors_lock
diff --git a/can_samples/toyota/auris/alldoors_unlock b/CAN-binder/can_samples/toyota/auris/alldoors_unlock
index 06260c7..06260c7 100644
--- a/can_samples/toyota/auris/alldoors_unlock
+++ b/CAN-binder/can_samples/toyota/auris/alldoors_unlock
diff --git a/can_samples/toyota/auris/brake b/CAN-binder/can_samples/toyota/auris/brake
index 75704e3..75704e3 100644
--- a/can_samples/toyota/auris/brake
+++ b/CAN-binder/can_samples/toyota/auris/brake
diff --git a/can_samples/toyota/auris/engineoff b/CAN-binder/can_samples/toyota/auris/engineoff
index 67451f0..67451f0 100644
--- a/can_samples/toyota/auris/engineoff
+++ b/CAN-binder/can_samples/toyota/auris/engineoff
diff --git a/can_samples/toyota/auris/handbrake b/CAN-binder/can_samples/toyota/auris/handbrake
index 1d939e9..1d939e9 100644
--- a/can_samples/toyota/auris/handbrake
+++ b/CAN-binder/can_samples/toyota/auris/handbrake
diff --git a/can_samples/toyota/auris/ignition b/CAN-binder/can_samples/toyota/auris/ignition
index 7a3209c..7a3209c 100644
--- a/can_samples/toyota/auris/ignition
+++ b/CAN-binder/can_samples/toyota/auris/ignition
diff --git a/can_samples/toyota/auris/keydisengage b/CAN-binder/can_samples/toyota/auris/keydisengage
index 2b4e87a..2b4e87a 100644
--- a/can_samples/toyota/auris/keydisengage
+++ b/CAN-binder/can_samples/toyota/auris/keydisengage
diff --git a/can_samples/toyota/auris/keyengage b/CAN-binder/can_samples/toyota/auris/keyengage
index 7802370..7802370 100644
--- a/can_samples/toyota/auris/keyengage
+++ b/CAN-binder/can_samples/toyota/auris/keyengage
diff --git a/can_samples/toyota/auris/keyin b/CAN-binder/can_samples/toyota/auris/keyin
index c6e0dd9..c6e0dd9 100644
--- a/can_samples/toyota/auris/keyin
+++ b/CAN-binder/can_samples/toyota/auris/keyin
diff --git a/can_samples/toyota/auris/keyout b/CAN-binder/can_samples/toyota/auris/keyout
index 633943f..633943f 100644
--- a/can_samples/toyota/auris/keyout
+++ b/CAN-binder/can_samples/toyota/auris/keyout
diff --git a/can_samples/toyota/auris/lights b/CAN-binder/can_samples/toyota/auris/lights
index fc476cd..fc476cd 100644
--- a/can_samples/toyota/auris/lights
+++ b/CAN-binder/can_samples/toyota/auris/lights
diff --git a/can_samples/toyota/auris/trip_test_with_obd2_vehicle_speed_requests b/CAN-binder/can_samples/toyota/auris/trip_test_with_obd2_vehicle_speed_requests
index b258512..b258512 100644
--- a/can_samples/toyota/auris/trip_test_with_obd2_vehicle_speed_requests
+++ b/CAN-binder/can_samples/toyota/auris/trip_test_with_obd2_vehicle_speed_requests
diff --git a/can_samples/toyota/auris/turnleft b/CAN-binder/can_samples/toyota/auris/turnleft
index b82a7c3..b82a7c3 100644
--- a/can_samples/toyota/auris/turnleft
+++ b/CAN-binder/can_samples/toyota/auris/turnleft
diff --git a/can_samples/toyota/auris/turnright b/CAN-binder/can_samples/toyota/auris/turnright
index f9192e4..f9192e4 100644
--- a/can_samples/toyota/auris/turnright
+++ b/CAN-binder/can_samples/toyota/auris/turnright
diff --git a/etc/config.cmake b/CAN-binder/etc/config.cmake
index 4b910d2..4b910d2 100644
--- a/etc/config.cmake
+++ b/CAN-binder/etc/config.cmake
diff --git a/etc/export.map b/CAN-binder/etc/export.map
index 52c1b4a..52c1b4a 100644
--- a/etc/export.map
+++ b/CAN-binder/etc/export.map
diff --git a/examples/basic/generate_example.cpp b/CAN-binder/examples/basic/generate_example.cpp
index 24b01df..24b01df 100644
--- a/examples/basic/generate_example.cpp
+++ b/CAN-binder/examples/basic/generate_example.cpp
diff --git a/can-config-generator/tests/handlers.cpp b/CAN-binder/examples/basic/handlers.cpp
index 4316f15..4316f15 100644
--- a/can-config-generator/tests/handlers.cpp
+++ b/CAN-binder/examples/basic/handlers.cpp
diff --git a/examples/basic/signals.json b/CAN-binder/examples/basic/signals.json
index 8d9a2d2..8d9a2d2 100644
--- a/examples/basic/signals.json
+++ b/CAN-binder/examples/basic/signals.json
diff --git a/examples/toyota/configuration-generated.cpp b/CAN-binder/examples/toyota/configuration-generated.cpp
index 4ffc902..4ffc902 100644
--- a/examples/toyota/configuration-generated.cpp
+++ b/CAN-binder/examples/toyota/configuration-generated.cpp
diff --git a/examples/toyota/signals.json b/CAN-binder/examples/toyota/signals.json
index e6260c1..e6260c1 100644
--- a/examples/toyota/signals.json
+++ b/CAN-binder/examples/toyota/signals.json
diff --git a/libs/CMakeLists.txt b/CAN-binder/libs/CMakeLists.txt
index cd29ea8..cd29ea8 100644
--- a/libs/CMakeLists.txt
+++ b/CAN-binder/libs/CMakeLists.txt
diff --git a/libs/bitfield-c b/CAN-binder/libs/bitfield-c
-Subproject a34745ec93ae0a1d4f1b640dba8fb6702331a8e
+Subproject a34745ec93ae0a1d4f1b640dba8fb6702331a8e
diff --git a/libs/isotp-c b/CAN-binder/libs/isotp-c
-Subproject ee24440b7c123ab1b0317e57be33e837a1cb51f
+Subproject ee24440b7c123ab1b0317e57be33e837a1cb51f
diff --git a/libs/nanopb b/CAN-binder/libs/nanopb
-Subproject 651bdc45f2180b17c132470ff1a3a515dbffaa7
+Subproject 651bdc45f2180b17c132470ff1a3a515dbffaa7
diff --git a/libs/openxc-message-format b/CAN-binder/libs/openxc-message-format
-Subproject d9f54f97578429773421abce98d5f6579717afc
+Subproject d9f54f97578429773421abce98d5f6579717afc
diff --git a/libs/uds-c b/CAN-binder/libs/uds-c
-Subproject ca20db3dd978871bbb9f01f3c862b510c03d1dc
+Subproject ca20db3dd978871bbb9f01f3c862b510c03d1dc
diff --git a/low-can-binding/CMakeLists.txt b/CAN-binder/low-can-binding/CMakeLists.txt
index a1768ab..a1768ab 100644
--- a/low-can-binding/CMakeLists.txt
+++ b/CAN-binder/low-can-binding/CMakeLists.txt
diff --git a/low-can-binding/can/can-bus-dev.cpp b/CAN-binder/low-can-binding/can/can-bus-dev.cpp
index fb76498..fb76498 100644
--- a/low-can-binding/can/can-bus-dev.cpp
+++ b/CAN-binder/low-can-binding/can/can-bus-dev.cpp
diff --git a/low-can-binding/can/can-bus-dev.hpp b/CAN-binder/low-can-binding/can/can-bus-dev.hpp
index a612e7d..a612e7d 100644
--- a/low-can-binding/can/can-bus-dev.hpp
+++ b/CAN-binder/low-can-binding/can/can-bus-dev.hpp
diff --git a/low-can-binding/can/can-bus.cpp b/CAN-binder/low-can-binding/can/can-bus.cpp
index 33f58fd..33f58fd 100644
--- a/low-can-binding/can/can-bus.cpp
+++ b/CAN-binder/low-can-binding/can/can-bus.cpp
diff --git a/low-can-binding/can/can-bus.hpp b/CAN-binder/low-can-binding/can/can-bus.hpp
index eb47476..eb47476 100644
--- a/low-can-binding/can/can-bus.hpp
+++ b/CAN-binder/low-can-binding/can/can-bus.hpp
diff --git a/low-can-binding/can/can-command.hpp b/CAN-binder/low-can-binding/can/can-command.hpp
index 4cf20cb..4cf20cb 100644
--- a/low-can-binding/can/can-command.hpp
+++ b/CAN-binder/low-can-binding/can/can-command.hpp
diff --git a/low-can-binding/can/can-decoder.cpp b/CAN-binder/low-can-binding/can/can-decoder.cpp
index 8843059..8843059 100644
--- a/low-can-binding/can/can-decoder.cpp
+++ b/CAN-binder/low-can-binding/can/can-decoder.cpp
diff --git a/low-can-binding/can/can-decoder.hpp b/CAN-binder/low-can-binding/can/can-decoder.hpp
index ebe1de2..ebe1de2 100644
--- a/low-can-binding/can/can-decoder.hpp
+++ b/CAN-binder/low-can-binding/can/can-decoder.hpp
diff --git a/low-can-binding/can/can-message-definition.cpp b/CAN-binder/low-can-binding/can/can-message-definition.cpp
index 206d0b0..206d0b0 100644
--- a/low-can-binding/can/can-message-definition.cpp
+++ b/CAN-binder/low-can-binding/can/can-message-definition.cpp
diff --git a/low-can-binding/can/can-message-definition.hpp b/CAN-binder/low-can-binding/can/can-message-definition.hpp
index 98cb2c5..98cb2c5 100644
--- a/low-can-binding/can/can-message-definition.hpp
+++ b/CAN-binder/low-can-binding/can/can-message-definition.hpp
diff --git a/low-can-binding/can/can-message-set.cpp b/CAN-binder/low-can-binding/can/can-message-set.cpp
index a9f8cf2..a9f8cf2 100644
--- a/low-can-binding/can/can-message-set.cpp
+++ b/CAN-binder/low-can-binding/can/can-message-set.cpp
diff --git a/low-can-binding/can/can-message-set.hpp b/CAN-binder/low-can-binding/can/can-message-set.hpp
index 94e2d8d..94e2d8d 100644
--- a/low-can-binding/can/can-message-set.hpp
+++ b/CAN-binder/low-can-binding/can/can-message-set.hpp
diff --git a/low-can-binding/can/can-message.cpp b/CAN-binder/low-can-binding/can/can-message.cpp
index f61de67..f61de67 100644
--- a/low-can-binding/can/can-message.cpp
+++ b/CAN-binder/low-can-binding/can/can-message.cpp
diff --git a/low-can-binding/can/can-message.hpp b/CAN-binder/low-can-binding/can/can-message.hpp
index 6fe0317..6fe0317 100644
--- a/low-can-binding/can/can-message.hpp
+++ b/CAN-binder/low-can-binding/can/can-message.hpp
diff --git a/low-can-binding/can/can-signals.cpp b/CAN-binder/low-can-binding/can/can-signals.cpp
index 6211fa1..6211fa1 100644
--- a/low-can-binding/can/can-signals.cpp
+++ b/CAN-binder/low-can-binding/can/can-signals.cpp
diff --git a/low-can-binding/can/can-signals.hpp b/CAN-binder/low-can-binding/can/can-signals.hpp
index 34ebeeb..34ebeeb 100644
--- a/low-can-binding/can/can-signals.hpp
+++ b/CAN-binder/low-can-binding/can/can-signals.hpp
diff --git a/low-can-binding/configuration-generated.cpp b/CAN-binder/low-can-binding/configuration-generated.cpp
index 2e96570..2e96570 100644
--- a/low-can-binding/configuration-generated.cpp
+++ b/CAN-binder/low-can-binding/configuration-generated.cpp
diff --git a/low-can-binding/configuration.cpp b/CAN-binder/low-can-binding/configuration.cpp
index 8a50cbc..8a50cbc 100644
--- a/low-can-binding/configuration.cpp
+++ b/CAN-binder/low-can-binding/configuration.cpp
diff --git a/low-can-binding/configuration.hpp b/CAN-binder/low-can-binding/configuration.hpp
index 017b148..017b148 100644
--- a/low-can-binding/configuration.hpp
+++ b/CAN-binder/low-can-binding/configuration.hpp
diff --git a/low-can-binding/diagnostic/active-diagnostic-request.cpp b/CAN-binder/low-can-binding/diagnostic/active-diagnostic-request.cpp
index 7ddf1d5..7ddf1d5 100644
--- a/low-can-binding/diagnostic/active-diagnostic-request.cpp
+++ b/CAN-binder/low-can-binding/diagnostic/active-diagnostic-request.cpp
diff --git a/low-can-binding/diagnostic/active-diagnostic-request.hpp b/CAN-binder/low-can-binding/diagnostic/active-diagnostic-request.hpp
index 247eeb1..247eeb1 100644
--- a/low-can-binding/diagnostic/active-diagnostic-request.hpp
+++ b/CAN-binder/low-can-binding/diagnostic/active-diagnostic-request.hpp
diff --git a/low-can-binding/diagnostic/diagnostic-manager.cpp b/CAN-binder/low-can-binding/diagnostic/diagnostic-manager.cpp
index e3a78d0..e3a78d0 100644
--- a/low-can-binding/diagnostic/diagnostic-manager.cpp
+++ b/CAN-binder/low-can-binding/diagnostic/diagnostic-manager.cpp
diff --git a/low-can-binding/diagnostic/diagnostic-manager.hpp b/CAN-binder/low-can-binding/diagnostic/diagnostic-manager.hpp
index 3edb2b1..3edb2b1 100644
--- a/low-can-binding/diagnostic/diagnostic-manager.hpp
+++ b/CAN-binder/low-can-binding/diagnostic/diagnostic-manager.hpp
diff --git a/low-can-binding/diagnostic/diagnostic-message.cpp b/CAN-binder/low-can-binding/diagnostic/diagnostic-message.cpp
index 6f61557..6f61557 100644
--- a/low-can-binding/diagnostic/diagnostic-message.cpp
+++ b/CAN-binder/low-can-binding/diagnostic/diagnostic-message.cpp
diff --git a/low-can-binding/diagnostic/diagnostic-message.hpp b/CAN-binder/low-can-binding/diagnostic/diagnostic-message.hpp
index 064904d..064904d 100644
--- a/low-can-binding/diagnostic/diagnostic-message.hpp
+++ b/CAN-binder/low-can-binding/diagnostic/diagnostic-message.hpp
diff --git a/low-can-binding/low-can-binding.cpp b/CAN-binder/low-can-binding/low-can-binding.cpp
index 07b3f1e..07b3f1e 100644
--- a/low-can-binding/low-can-binding.cpp
+++ b/CAN-binder/low-can-binding/low-can-binding.cpp
diff --git a/low-can-binding/low-can-binding.hpp b/CAN-binder/low-can-binding/low-can-binding.hpp
index ed5741d..ed5741d 100644
--- a/low-can-binding/low-can-binding.hpp
+++ b/CAN-binder/low-can-binding/low-can-binding.hpp
diff --git a/low-can-binding/packaging/wgt/config.xml b/CAN-binder/low-can-binding/packaging/wgt/config.xml
index d735ce2..d735ce2 100644
--- a/low-can-binding/packaging/wgt/config.xml
+++ b/CAN-binder/low-can-binding/packaging/wgt/config.xml
diff --git a/low-can-binding/packaging/wgt/etc/can_buses.json b/CAN-binder/low-can-binding/packaging/wgt/etc/can_buses.json
index c4292df..c4292df 100644
--- a/low-can-binding/packaging/wgt/etc/can_buses.json
+++ b/CAN-binder/low-can-binding/packaging/wgt/etc/can_buses.json
diff --git a/low-can-binding/packaging/wgt/icon.png b/CAN-binder/low-can-binding/packaging/wgt/icon.png
index 9bd6a6e..9bd6a6e 100644
--- a/low-can-binding/packaging/wgt/icon.png
+++ b/CAN-binder/low-can-binding/packaging/wgt/icon.png
Binary files differ
diff --git a/low-can-binding/utils/config-parser.cpp b/CAN-binder/low-can-binding/utils/config-parser.cpp
index e73b0f9..e73b0f9 100644
--- a/low-can-binding/utils/config-parser.cpp
+++ b/CAN-binder/low-can-binding/utils/config-parser.cpp
diff --git a/low-can-binding/utils/config-parser.hpp b/CAN-binder/low-can-binding/utils/config-parser.hpp
index e6bd9d2..e6bd9d2 100644
--- a/low-can-binding/utils/config-parser.hpp
+++ b/CAN-binder/low-can-binding/utils/config-parser.hpp
diff --git a/low-can-binding/utils/openxc-utils.cpp b/CAN-binder/low-can-binding/utils/openxc-utils.cpp
index 52b49d2..52b49d2 100644
--- a/low-can-binding/utils/openxc-utils.cpp
+++ b/CAN-binder/low-can-binding/utils/openxc-utils.cpp
diff --git a/low-can-binding/utils/openxc-utils.hpp b/CAN-binder/low-can-binding/utils/openxc-utils.hpp
index d36b359..d36b359 100644
--- a/low-can-binding/utils/openxc-utils.hpp
+++ b/CAN-binder/low-can-binding/utils/openxc-utils.hpp
diff --git a/low-can-binding/utils/signals.cpp b/CAN-binder/low-can-binding/utils/signals.cpp
index 2e14a98..2e14a98 100644
--- a/low-can-binding/utils/signals.cpp
+++ b/CAN-binder/low-can-binding/utils/signals.cpp
diff --git a/low-can-binding/utils/signals.hpp b/CAN-binder/low-can-binding/utils/signals.hpp
index e941756..e941756 100644
--- a/low-can-binding/utils/signals.hpp
+++ b/CAN-binder/low-can-binding/utils/signals.hpp
diff --git a/low-can-binding/utils/socket.cpp b/CAN-binder/low-can-binding/utils/socket.cpp
index e75e27f..e75e27f 100644
--- a/low-can-binding/utils/socket.cpp
+++ b/CAN-binder/low-can-binding/utils/socket.cpp
diff --git a/low-can-binding/utils/socket.hpp b/CAN-binder/low-can-binding/utils/socket.hpp
index b42eee6..b42eee6 100644
--- a/low-can-binding/utils/socket.hpp
+++ b/CAN-binder/low-can-binding/utils/socket.hpp
diff --git a/low-can-binding/utils/timer.cpp b/CAN-binder/low-can-binding/utils/timer.cpp
index a35a3e9..a35a3e9 100644
--- a/low-can-binding/utils/timer.cpp
+++ b/CAN-binder/low-can-binding/utils/timer.cpp
diff --git a/low-can-binding/utils/timer.hpp b/CAN-binder/low-can-binding/utils/timer.hpp
index f565904..f565904 100644
--- a/low-can-binding/utils/timer.hpp
+++ b/CAN-binder/low-can-binding/utils/timer.hpp
diff --git a/can-config-generator/.gitignore b/CAN-config-generator/.gitignore
index 1d26455..1d26455 100755
--- a/can-config-generator/.gitignore
+++ b/CAN-config-generator/.gitignore
diff --git a/can-config-generator/3rdparty/json/json.hpp b/CAN-config-generator/3rdparty/json/json.hpp
index 6dfc183..6dfc183 100755
--- a/can-config-generator/3rdparty/json/json.hpp
+++ b/CAN-config-generator/3rdparty/json/json.hpp
diff --git a/CAN-config-generator/CMakeLists.txt b/CAN-config-generator/CMakeLists.txt
new file mode 100644
index 0000000..ec91089
--- /dev/null
+++ b/CAN-config-generator/CMakeLists.txt
@@ -0,0 +1,283 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+# contrib: Romain Forlot <romain.forlot@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###########################################################################
+
+
+#--------------------------------------------------------------------------
+# WARNING:
+# Do not change this cmake template
+# Customise your preferences in "./etc/config.cmake"
+#--------------------------------------------------------------------------
+
+
+# Generic useful macro
+# -----------------------
+macro(PROJECT_TARGET_ADD TARGET_NAME)
+ set(PROJECT_TARGETS ${PROJECT_TARGETS} ${TARGET_NAME} CACHE INTERNAL PROJECT_TARGETS)
+ set(TARGET_NAME ${TARGET_NAME})
+endmacro(PROJECT_TARGET_ADD)
+
+macro(defstr name value)
+ add_definitions(-D${name}=${value})
+endmacro(defstr)
+
+macro(setc name value)
+ if(NOT DEFINED ${name})
+ set(${name} ${value})
+ endif(NOT DEFINED ${name})
+endmacro(setc)
+
+# Dumb macro to add each directory under a path. Make sure we grab all header files!
+macro(fill_include_dir path)
+ file(GLOB_RECURSE dirlist LIST_DIRECTORIES true "${path}/*")
+ foreach(filename ${dirlist})
+ if(IS_DIRECTORY ${filename})
+ include_directories(${filename})
+ endif(IS_DIRECTORY ${filename})
+ endforeach()
+endmacro(fill_include_dir)
+
+# Helper function to retrieve source files from a library repo.
+function(find_source_files path)
+ file(GLOB_RECURSE filelist "${path}/*.[cpx]")
+ foreach(filename ${filelist})
+ if(NOT ${filename} MATCHES ".*(test|example|sample).*")
+ string(APPEND sources "${filename};")
+ endif(NOT ${filename} MATCHES ".*(test|example|sample).*")
+ endforeach()
+ set(sources_files ${sources} PARENT_SCOPE)
+endfunction(find_source_files)
+
+# WGT packaging function. TYPE can be HTML5, NATIVE, HTML5-HYBRID or BINDING
+macro(build_widget type)
+ message(STATUS "Creation of ${TARGET_NAME}.wgt package for AppFW")
+
+ configure_file(${PROJECT_WGT_DIR}/config.xml config.xml)
+
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/etc")
+ file(GLOB conf_files "${PROJECT_WGT_DIR}/etc/*")
+ foreach(filename ${conf_files})
+ STRING(REGEX REPLACE "^.*/(.*)$" "\\1" shortname ${filename})
+ message(STATUS "Copying config file ${shortname}")
+ configure_file(${filename} ${shortname})
+ endforeach()
+ endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_WGT_DIR}/etc")
+
+ # Include HTML5 files to be packaged
+ if(${type} STREQUAL "HTML5")
+ file(GLOB_RECURSE HTML5FILES app/*)
+
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gulpfile.js")
+ set(HTML5FILES ${HTML5FILES} "${CMAKE_CURRENT_SOURCE_DIR}/gulpfile.js")
+ endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gulpfile.js")
+
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/bower.json")
+ set(HTML5FILES ${HTML5FILES} "${CMAKE_CURRENT_SOURCE_DIR}/bower.json")
+ endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/bower.json")
+
+ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/package.json")
+ set(HTML5FILES ${HTML5FILES} "${CMAKE_CURRENT_SOURCE_DIR}/package.json")
+ endif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/package.json")
+ endif(${type} STREQUAL "HTML5")
+
+ if(${type} STREQUAL "HTML5")
+ add_custom_command(
+ OUTPUT ${TARGET_NAME}.wgt
+ DEPENDS ${HTML5FILES} ${PROJECT_WGT_DIR}/config.xml
+ COMMAND rm -rf package
+ COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
+ COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && gulp widget-config-prod
+ COMMAND cp -a dist.prod/* ${CMAKE_CURRENT_BINARY_DIR}/package/htdocs
+ )
+ endif(${type} STREQUAL "HTML5")
+
+ if(${type} STREQUAL "HTML5-HYBRID")
+ add_custom_command(
+ OUTPUT ${TARGET_NAME}.wgt
+ DEPENDS ${HTML5FILES} ${PROJECT_WGT_DIR}/config.xml
+ COMMAND rm -rf package
+ COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
+ COMMAND cp ${TARGET_NAME}.so package/lib
+ )
+ endif(${type} STREQUAL "HTML5-HYBRID")
+
+ if(${type} STREQUAL "BINDING")
+ add_custom_command(
+ OUTPUT ${TARGET_NAME}.wgt
+ DEPENDS ${PROJECT_WGT_DIR}/config.xml
+ COMMAND rm -rf package
+ COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
+ COMMAND cp ${TARGET_NAME}.so package/lib
+ )
+ endif(${type} STREQUAL "BINDING")
+
+ if(${type} STREQUAL "NATIVE")
+ add_custom_command(
+ OUTPUT ${TARGET_NAME}.wgt
+ DEPENDS ${PROJECT_WGT_DIR}/config.xml
+ COMMAND rm -rf package
+ COMMAND mkdir -p package/lib package/htdocs package/etc package/bin
+ COMMAND cp ${TARGET_NAME} package/bin
+ )
+ endif(${type} STREQUAL "NATIVE")
+
+ add_custom_command(
+ OUTPUT ${TARGET_NAME}.wgt
+ COMMAND cp config.xml package/
+ COMMAND cp ${conf_files} package/etc
+ COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/packaging/wgt/${PROJECT_ICON} package/icon.png
+ COMMAND wgtpkg-pack -f -o ${TARGET_NAME}.wgt package
+ APPEND
+ )
+ add_custom_target(widget ALL DEPENDS ${TARGET_NAME}.wgt)
+endmacro()
+
+CMAKE_MINIMUM_REQUIRED(VERSION 3.3)
+setc(CMAKE_BUILD_TYPE Debug)
+set(CMAKE_POSITION_INDEPENDENT_CODE ON)
+set(CMP0048 1)
+
+# Compiler selection should append before project definition
+# -----------------------------------------------------------
+foreach (GCC_VERSION "6" "5")
+ execute_process(COMMAND gcc-${GCC_VERSION} -dumpversion RESULT_VARIABLE GCCRC OUTPUT_QUIET ERROR_QUIET)
+ if(GCCRC EQUAL 0)
+ set(CMAKE_C_COMPILER "gcc-${GCC_VERSION}")
+ set(CMAKE_CXX_COMPILER "g++-${GCC_VERSION}")
+ set(CMAKE_C_VERSION ${GCC_VERSION})
+ break()
+ endif(GCCRC EQUAL 0)
+endforeach(GCC_VERSION)
+
+# Include project configuration
+# ------------------------------
+include(${CMAKE_CURRENT_SOURCE_DIR}/etc/config.cmake)
+project(${NAME} VERSION ${VERSION})
+setc(PROJECT_PRETTY_NAME "${PRETTY_NAME}")
+setc(PROJECT_DESCRIPTION "${DESCRIPTION}")
+setc(PROJECT_WGT_DIR "packaging/wgt")
+setc(PROJECT_LIBDIR "libs")
+setc(PROJECT_RESOURCES "data")
+
+message(STATUS "")
+message(STATUS "Project=${PROJECT_NAME}/${VERSION}[${PRETTY_NAME} ${DESCRIPTION}]")
+message(STATUS "")
+message(STATUS "gcc/g++ version-${CMAKE_C_VERSION}.x selected")
+
+INCLUDE(FindPkgConfig)
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckLibraryExists)
+INCLUDE(GNUInstallDirs)
+
+# Default compilation options
+############################################################################
+link_libraries(-Wl,--as-needed -Wl,--gc-sections)
+add_compile_options(-Wall -Wextra -Wconversion)
+add_compile_options(-Wno-unused-parameter) # frankly not using a parameter does it care?
+add_compile_options(-Wno-sign-compare -Wno-sign-conversion)
+add_compile_options(-Werror=maybe-uninitialized)
+add_compile_options(-Werror=implicit-function-declaration)
+add_compile_options(-ffunction-sections -fdata-sections)
+add_compile_options(-fPIC)
+add_compile_options(-g)
+
+setc(CMAKE_C_FLAGS_PROFILING "-g -O2 -pg -Wp,-U_FORTIFY_SOURCE")
+setc(CMAKE_C_FLAGS_DEBUG "-g -O2 -ggdb -Wp,-U_FORTIFY_SOURCE")
+setc(CMAKE_C_FLAGS_RELEASE "-O2")
+setc(CMAKE_C_FLAGS_CCOV "-g -O2 --coverage")
+
+set(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -std=c++11 -pg -Wp,-U_FORTIFY_SOURCE")
+set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -std=c++11 -ggdb -Wp,-U_FORTIFY_SOURCE")
+set(CMAKE_CXX_FLAGS_RELEASE "-g -O2 -std=c++11")
+set(CMAKE_CXX_FLAGS_CCOV "-g -O2 -std=c++11 --coverage")
+
+setc(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/Install")
+
+# (BUG!!!) as PKG_CONFIG_PATH does not work [should be en env variable]
+setc(PKG_CONFIG_USE_CMAKE_PREFIX_PATH 1)
+
+# Loop on required package and add options
+foreach (PKG_CONFIG ${PKG_REQUIRED_LIST})
+ PKG_CHECK_MODULES(${PKG_CONFIG} REQUIRED ${PKG_CONFIG})
+
+ INCLUDE_DIRECTORIES(${${PKG_CONFIG}_INCLUDE_DIRS})
+ list (APPEND link_libraries ${${PKG_CONFIG}_LIBRARIES})
+ add_compile_options (${${PKG_CONFIG}_CFLAGS})
+endforeach(PKG_CONFIG)
+
+# Optional LibEfence Malloc debug library
+IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
+CHECK_LIBRARY_EXISTS(efence malloc "" HAVE_LIBEFENCE)
+IF(HAVE_LIBEFENCE)
+ MESSAGE(STATUS "Linking with ElectricFence for debugging purposes...")
+ SET(libefence_LIBRARIES "-lefence")
+ list (APPEND link_libraries libefence_LIBRARIES})
+ENDIF(HAVE_LIBEFENCE)
+ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
+
+# set default include directories
+#INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_DIRS})
+# Brutal but efficace:
+fill_include_dir(${CMAKE_CURRENT_SOURCE_DIR})
+
+# If no install dir try to guest some smart default
+if(BINDINGS_INSTALL_PREFIX)
+ set(BINDINGS_INSTALL_DIR ${BINDINGS_INSTALL_PREFIX}/${PROJECT_NAME})
+else()
+ set(BINDINGS_INSTALL_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/${PROJECT_NAME})
+endif()
+
+# Default Linkflag
+if(NOT BINDINGS_LINK_FLAG)
+ set(BINDINGS_LINK_FLAG "-Wl,--version-script=${CMAKE_SOURCE_DIR}/etc/export.map")
+endif()
+
+# Bindings to compile
+# --------------------
+file(GLOB filelist "*")
+foreach(filename ${filelist})
+if(EXISTS "${filename}/CMakeLists.txt")
+ add_subdirectory(${filename})
+endif(EXISTS "${filename}/CMakeLists.txt")
+endforeach()
+
+# Add a dummy target to enable global dependency order
+# -----------------------------------------------------
+if(EXTRA_DEPENDENCIES_ORDER)
+ set(DEPENDENCIES_TARGET ${PROJECT_NAME}_extra_dependencies)
+ add_custom_target(${DEPENDENCIES_TARGET} ALL
+ DEPENDS ${EXTRA_DEPENDENCY_ORDER}
+ )
+endif()
+
+# Cmake does not maintain targets list before 3.7
+# -------------------------------------------------
+if(${CMAKE_VERSION} VERSION_LESS 3.7)
+ set(GLOBAL_TARGET_LIST ${PROJECT_TARGETS})
+else()
+ get_property(GLOBAL_TARGET_LIST GLOBAL PROPERTY GlobalTargetList)
+endif()
+
+# Print developer helper message when everything is done
+# -------------------------------------------------------
+if(CLOSING_MESSAGE AND GLOBAL_TARGET_LIST)
+ add_custom_target(${PROJECT_NAME}_done ALL
+ DEPENDS ${DEPENDENCIES_TARGET} ${GLOBAL_TARGET_LIST}
+ COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "++ ${CLOSING_MESSAGE}"
+ )
+endif()
diff --git a/can-config-generator/LICENSE b/CAN-config-generator/LICENSE
index 8dada3e..8dada3e 100644
--- a/can-config-generator/LICENSE
+++ b/CAN-config-generator/LICENSE
diff --git a/CAN-config-generator/Makefile b/CAN-config-generator/Makefile
new file mode 100644
index 0000000..658ef32
--- /dev/null
+++ b/CAN-config-generator/Makefile
@@ -0,0 +1,37 @@
+# Copyright (C) 2015, 2016 "IoT.bzh"
+# Author "Romain Forlot" <romain.forlot@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+BUILD_DIR := build
+
+.PHONY: all clean mrproper ${BUILD_DIR}/Makefile
+
+all: build package
+
+clean:
+ @([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} clean) || echo Nothing to clean
+
+mrproper:
+ rm -rf ${BUILD_DIR}
+
+build: ${BUILD_DIR}/Makefile
+ cmake --build ${BUILD_DIR} --clean-first
+
+
+package:
+ cmake --build ${BUILD_DIR} --target widget
+
+${BUILD_DIR}/Makefile:
+ @[ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR}
+ @[ -f ${BUILD_DIR}/Makefile ] || (cd ${BUILD_DIR} && cmake ${CMAKE_OPTS} ..)
diff --git a/can-config-generator/README.md b/CAN-config-generator/README.md
index d4127b8..d4127b8 100644
--- a/can-config-generator/README.md
+++ b/CAN-config-generator/README.md
diff --git a/can-config-generator/build.sh b/CAN-config-generator/build.sh
index b6d9216..b6d9216 100755
--- a/can-config-generator/build.sh
+++ b/CAN-config-generator/build.sh
diff --git a/can-config-generator/can-config-generator.sln b/CAN-config-generator/can-config-generator.sln
index aa58f4a..aa58f4a 100644
--- a/can-config-generator/can-config-generator.sln
+++ b/CAN-config-generator/can-config-generator.sln
diff --git a/can-config-generator/can-config-generator.vcxproj b/CAN-config-generator/can-config-generator.vcxproj
index f51296a..f51296a 100644
--- a/can-config-generator/can-config-generator.vcxproj
+++ b/CAN-config-generator/can-config-generator.vcxproj
diff --git a/CAN-config-generator/etc/config.cmake b/CAN-config-generator/etc/config.cmake
new file mode 100644
index 0000000..1819daa
--- /dev/null
+++ b/CAN-config-generator/etc/config.cmake
@@ -0,0 +1,79 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###########################################################################
+
+# Project Info
+# ------------------
+set(NAME can-config-generator)
+set(VERSION "1.0")
+set(PRETTY_NAME "CAN configuration generator")
+set(DESCRIPTION "Generator that convert JSON file following OpenXC spec to configuration-generated.cpp file for the low level CAN binding.")
+set(URL "https://github.com/iotbzh/CAN_signaling")
+set(PROJECT_ICON "icon.png")
+
+# Compilation Mode (DEBUG, RELEASE)
+# ----------------------------------
+setc(CMAKE_BUILD_TYPE "DEBUG")
+
+# PKG_CONFIG required packages
+# -----------------------------
+set (PKG_REQUIRED_LIST
+ json-c
+ libsystemd
+ afb-daemon
+)
+
+# Static constante definition
+# -----------------------------
+add_compile_options(-D_REENTRANT)
+add_compile_options(-DPB_FIELD_16BIT)
+
+# LANG Specific compile flags set for all build types
+set(CMAKE_C_FLAGS "")
+set(CMAKE_CXX_FLAGS "-std=c++11")
+
+# Print a helper message when every thing is finished
+setc(CLOSING_MESSAGE "Test with: ./can-config-generator -m ../tests/basic.json -o configuration-generated.cpp")
+# ----------------------------------------------------
+
+# (BUG!!!) as PKG_CONFIG_PATH does not work [should be an env variable]
+# ---------------------------------------------------------------------
+setc(CMAKE_INSTALL_PREFIX ${HOME}/opt)
+setc(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+setc(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib)
+
+# Optional dependencies order
+# ---------------------------
+set(EXTRA_DEPENDENCIES_ORDER can-config-generator low-can-binding)
+
+# Optional Extra global include path
+# -----------------------------------
+#set(EXTRA_INCLUDE_DIRS inc_dir1 inc_dir2 ...)
+
+# Optional extra libraries
+# -------------------------
+#set(EXTRA_LINK_LIBRARIES)
+
+# Optional force binding installation
+# ------------------------------------
+# set(BINDINGS_INSTALL_PREFIX DestinationPath )
+
+# Optional force binding Linking flag
+# ------------------------------------
+# set(BINDINGS_LINK_FLAG LinkOptions )
+
+
diff --git a/CAN-config-generator/etc/export.map b/CAN-config-generator/etc/export.map
new file mode 100644
index 0000000..52c1b4a
--- /dev/null
+++ b/CAN-config-generator/etc/export.map
@@ -0,0 +1 @@
+{ global: afbBindingV1*; local: *; };
diff --git a/can-config-generator/CMakeLists.txt b/CAN-config-generator/src/CMakeLists.txt
index 0892d2a..39ceba1 100644
--- a/can-config-generator/CMakeLists.txt
+++ b/CAN-config-generator/src/CMakeLists.txt
@@ -22,14 +22,14 @@ PROJECT_TARGET_ADD(can-config-generator)
# Define project Targets
add_executable(can-config-generator
- src/main.cpp
- src/openxc/message_set.cpp
- src/openxc/can_bus.cpp
- src/openxc/can_message.cpp
- src/openxc/command.cpp
- src/openxc/diagnostic_message.cpp
- src/openxc/mapping.cpp
- src/openxc/signal.cpp)
+ main.cpp
+ openxc/message_set.cpp
+ openxc/can_bus.cpp
+ openxc/can_message.cpp
+ openxc/command.cpp
+ openxc/diagnostic_message.cpp
+ openxc/mapping.cpp
+ openxc/signal.cpp)
# Library dependencies (include updates automatically)
TARGET_LINK_LIBRARIES(can-config-generator
@@ -38,4 +38,4 @@ PROJECT_TARGET_ADD(can-config-generator)
# installation directory
INSTALL(TARGETS can-config-generator
- RUNTIME DESTINATION ${BINDINGS_INSTALL_DIR}) \ No newline at end of file
+RUNTIME DESTINATION ${BINDINGS_INSTALL_DIR})
diff --git a/can-config-generator/src/main.cpp b/CAN-config-generator/src/main.cpp
index cfefed8..cfefed8 100644
--- a/can-config-generator/src/main.cpp
+++ b/CAN-config-generator/src/main.cpp
diff --git a/can-config-generator/src/main.hpp b/CAN-config-generator/src/main.hpp
index cf08e1a..cf08e1a 100644
--- a/can-config-generator/src/main.hpp
+++ b/CAN-config-generator/src/main.hpp
diff --git a/can-config-generator/src/openxc/can_bus.cpp b/CAN-config-generator/src/openxc/can_bus.cpp
index 0a968a9..0a968a9 100755
--- a/can-config-generator/src/openxc/can_bus.cpp
+++ b/CAN-config-generator/src/openxc/can_bus.cpp
diff --git a/can-config-generator/src/openxc/can_bus.hpp b/CAN-config-generator/src/openxc/can_bus.hpp
index 74e1273..74e1273 100755
--- a/can-config-generator/src/openxc/can_bus.hpp
+++ b/CAN-config-generator/src/openxc/can_bus.hpp
diff --git a/can-config-generator/src/openxc/can_message.cpp b/CAN-config-generator/src/openxc/can_message.cpp
index fab5a85..fab5a85 100755
--- a/can-config-generator/src/openxc/can_message.cpp
+++ b/CAN-config-generator/src/openxc/can_message.cpp
diff --git a/can-config-generator/src/openxc/can_message.hpp b/CAN-config-generator/src/openxc/can_message.hpp
index 3f7b018..3f7b018 100755
--- a/can-config-generator/src/openxc/can_message.hpp
+++ b/CAN-config-generator/src/openxc/can_message.hpp
diff --git a/can-config-generator/src/openxc/command.cpp b/CAN-config-generator/src/openxc/command.cpp
index 4cc0682..4cc0682 100755
--- a/can-config-generator/src/openxc/command.cpp
+++ b/CAN-config-generator/src/openxc/command.cpp
diff --git a/can-config-generator/src/openxc/command.hpp b/CAN-config-generator/src/openxc/command.hpp
index 2c05226..2c05226 100755
--- a/can-config-generator/src/openxc/command.hpp
+++ b/CAN-config-generator/src/openxc/command.hpp
diff --git a/can-config-generator/src/openxc/diagnostic_message.cpp b/CAN-config-generator/src/openxc/diagnostic_message.cpp
index 3881abe..3881abe 100755
--- a/can-config-generator/src/openxc/diagnostic_message.cpp
+++ b/CAN-config-generator/src/openxc/diagnostic_message.cpp
diff --git a/can-config-generator/src/openxc/diagnostic_message.hpp b/CAN-config-generator/src/openxc/diagnostic_message.hpp
index 1ceba1b..1ceba1b 100755
--- a/can-config-generator/src/openxc/diagnostic_message.hpp
+++ b/CAN-config-generator/src/openxc/diagnostic_message.hpp
diff --git a/can-config-generator/src/openxc/mapping.cpp b/CAN-config-generator/src/openxc/mapping.cpp
index 74d5c94..74d5c94 100755
--- a/can-config-generator/src/openxc/mapping.cpp
+++ b/CAN-config-generator/src/openxc/mapping.cpp
diff --git a/can-config-generator/src/openxc/mapping.hpp b/CAN-config-generator/src/openxc/mapping.hpp
index 30895cb..30895cb 100755
--- a/can-config-generator/src/openxc/mapping.hpp
+++ b/CAN-config-generator/src/openxc/mapping.hpp
diff --git a/can-config-generator/src/openxc/message_set.cpp b/CAN-config-generator/src/openxc/message_set.cpp
index c47c45f..c47c45f 100755
--- a/can-config-generator/src/openxc/message_set.cpp
+++ b/CAN-config-generator/src/openxc/message_set.cpp
diff --git a/can-config-generator/src/openxc/message_set.hpp b/CAN-config-generator/src/openxc/message_set.hpp
index 935817e..935817e 100755
--- a/can-config-generator/src/openxc/message_set.hpp
+++ b/CAN-config-generator/src/openxc/message_set.hpp
diff --git a/can-config-generator/src/openxc/signal.cpp b/CAN-config-generator/src/openxc/signal.cpp
index 6c3ff82..6c3ff82 100755
--- a/can-config-generator/src/openxc/signal.cpp
+++ b/CAN-config-generator/src/openxc/signal.cpp
diff --git a/can-config-generator/src/openxc/signal.hpp b/CAN-config-generator/src/openxc/signal.hpp
index 64dba75..64dba75 100755
--- a/can-config-generator/src/openxc/signal.hpp
+++ b/CAN-config-generator/src/openxc/signal.hpp
diff --git a/can-config-generator/tests/basic.json b/CAN-config-generator/tests/basic.json
index 32cd1b4..32cd1b4 100755
--- a/can-config-generator/tests/basic.json
+++ b/CAN-config-generator/tests/basic.json
diff --git a/can-config-generator/tests/generated.cpp b/CAN-config-generator/tests/generated.cpp
index e8bb5c9..e8bb5c9 100644
--- a/can-config-generator/tests/generated.cpp
+++ b/CAN-config-generator/tests/generated.cpp
diff --git a/examples/basic/handlers.cpp b/CAN-config-generator/tests/handlers.cpp
index 4316f15..4316f15 100644
--- a/examples/basic/handlers.cpp
+++ b/CAN-config-generator/tests/handlers.cpp
diff --git a/can-config-generator/tests/signals.json b/CAN-config-generator/tests/signals.json
index 648427a..648427a 100755
--- a/can-config-generator/tests/signals.json
+++ b/CAN-config-generator/tests/signals.json
diff --git a/README.md b/README.md
index cbe951b..a608363 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,23 @@
-# Low level CAN signaling binder
+# CAN signaling binder
-Low level CAN bus binder, based upon OpenXC vi-firmware project.
+CAN bus binder, based upon OpenXC vi-firmware project.
+
+There are 2 separated projects here, one with the CAN-binder that is installed
+on an AGL target and the CAN config generator used to generate a source file for
+the low level binding.
Full document can be found under `docs` directory.
+# Fast build procedure
+
+Just use build.sh script:
+
+```bash
+./build.sh
+```
+
+This will build both projects under build directory for each of them.
+
# Generate documentation
## Prerequisites
diff --git a/build.sh b/build.sh
index 9496f00..64bd7f5 100755
--- a/build.sh
+++ b/build.sh
@@ -1,82 +1,4 @@
#!/bin/bash
-function build {
- echo "ACTION: build"
- source ~/agl/sdk/porter/environment*
- if [ ! -d "$1/$2" ]; then
- echo "INFO: build dir ($1/$2) doesn't exist, created it!"
- mkdir -p "$1/$2"
- fi
- pushd "$1/$2"
- #cd "$1/$2"
- cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=$3 $1
- make
- popd
-}
-
-function clean {
- echo "ACTION: clean"
- if [ -d "$1/$2" ]; then
- rm -vrf "$1/$2"
- fi
-}
-
-function rebuild {
- clean $1 $2
- build $1 $2 $3
-}
-
-function printhelp {
- echo "Usage: build.sh <action> <subdir> [config]"
- echo " action: can be one of the following"
- echo " build: build this project."
- echo " rebuild: rebuild this project."
- echo " clean: clean the previous build."
- echo " install: install the build result."
- echo " subdir: the subdir into which the build is done."
- echo " config: can be Debug or Release. Ignored if the action is 'clean'."
-}
-
-function checkparams {
- if [ "$#" -ne "$(($1+1))" ]; then
- echo "ERROR: Wrong number of parameters, expected $1 but got $(($#-1))"
- printhelp
- exit 1
- fi
-}
-
-function main {
- CURRENT_DIR=$( dirname "$(readlink -f "$0")" )
- echo "Current script: $CURRENT_DIR"
-
- if [ "$#" -lt "1" ]; then
- echo "ERROR: At least <action> must be specified!"
- exit 1
- fi
-
- case "$1" in
- "build")
- checkparams 3 $*
- build $CURRENT_DIR $2 $3
- ;;
- "rebuild")
- checkparams 3 $*
- rebuild $CURRENT_DIR $2 $3
- ;;
- "clean")
- checkparams 2 $*
- clean $CURRENT_DIR $2
- ;;
- "install")
- checkparams 3 $*
- echo "ERROR: Not implemented yet!"
- ;;
- *)
- echo "ERROR: Unknown action '$3'!"
- exit 1
- ;;
- esac
-}
-
-main $*
-
+cd CAN-config-generator && make build && cd -
+cd CAN-binder && make build && cd -