aboutsummaryrefslogtreecommitdiffstats
path: root/CAN-config-generator/tests
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-04-14 13:24:07 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-04-14 13:24:07 +0200
commit49fe0eec8f17698fc5f86d0abe01777af1fb2b23 (patch)
tree356cd3e3261934a3fb90786e1789ee4ad001cbe5 /CAN-config-generator/tests
parent044ef27d3667a114964549f89c63ab1ea6655877 (diff)
Change directory architecture to use 2 separated projects.
Each projects, binder and generator, has to be compiled separatly. CAN-binder will host high and low level binding CAN-config-generator only the generator used for low level binding. build.sh script just launch both build in their respective dir. Change-Id: Ic77932660fcca507b23a631d4e4e790f608880ae Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-config-generator/tests')
-rwxr-xr-xCAN-config-generator/tests/basic.json112
-rw-r--r--CAN-config-generator/tests/generated.cpp197
-rw-r--r--CAN-config-generator/tests/handlers.cpp22
-rwxr-xr-xCAN-config-generator/tests/signals.json121
4 files changed, 452 insertions, 0 deletions
diff --git a/CAN-config-generator/tests/basic.json b/CAN-config-generator/tests/basic.json
new file mode 100755
index 0000000..32cd1b4
--- /dev/null
+++ b/CAN-config-generator/tests/basic.json
@@ -0,0 +1,112 @@
+{
+ "name": "example",
+ "extra_sources": [
+ ],
+ "initializers": [
+ ],
+ "loopers": [
+ ],
+ "buses": {
+ "hs": {
+ "controller": 1,
+ "speed": 500000
+ },
+ "can0": {
+ "controller": 1,
+ "speed": 111111
+ }
+ },
+ "commands": [
+ {
+ }
+ ],
+ "messages": {
+ "0x128": {
+ "name": "ECM_z_5D2",
+ "bus": "can0",
+ "signals": {
+ "StrAnglAct": {
+ "generic_name": "SteeringWheelAngle",
+ "bit_position": 52,
+ "bit_size": 12,
+ "factor": 0.15392,
+ "offset": 0
+ },
+ "StrAnglSign": {
+ "generic_name": "steering_angle_sign",
+ "bit_position": 52,
+ "bit_size": 12
+ },
+ "EngSpd": {
+ "generic_name": "engine_speed",
+ "max_frequency": 15,
+ "bit_position": 12,
+ "bit_size": 8
+ },
+ "GrshftPos": {
+ "generic_name": "GearshiftPosition",
+ "bit_position": 41,
+ "bit_size": 3,
+ "states": {
+ "FIRST": [ 1 ],
+ "SECOND": [ 2 ],
+ "THIRD": [ 3 ],
+ "FOURTH": [ 4 ],
+ "REVERSE": [ 5 ],
+ "NEUTRAL": [ 6 ]
+ }
+ },
+ "StrAnglErr": {
+ "generic_name": "steering_wheel_angle_error",
+ "bit_position": 44,
+ "bit_size": 12
+ }
+ },
+ "handlers": [ ]
+ },
+ "0x813": {
+ "name": "ECM_z_5D2",
+ "bus": "can0",
+ "signals": {
+ "ABC": {
+ "generic_name": "abc",
+ "bit_position": 52,
+ "bit_size": 12,
+ "factor": 0.15392,
+ "offset": 0
+ },
+ "DEF": {
+ "generic_name": "def",
+ "decoder": "decoder_t::ignoreDecoder",
+ "bit_position": 52,
+ "bit_size": 12
+ }
+ }
+ }
+ },
+ "diagnostic_messages": [
+ {
+ "bus": "hs",
+ "id": 2015,
+ "mode": 1,
+ "pid": 12,
+ "frequency": 1,
+ "decoder": "decoder_t::decode_obd2_response"
+ },
+ {
+ "bus": "hs",
+ "id": 2016,
+ "mode": 2,
+ "pid": 12,
+ "frequency": 1
+ },
+ {
+ "bus": "hs",
+ "id": 2016,
+ "mode": 22,
+ "pid": 6,
+ "frequency": 1,
+ "decoder": "decoder_t::decode_obd2_response"
+ }
+ ]
+}
diff --git a/CAN-config-generator/tests/generated.cpp b/CAN-config-generator/tests/generated.cpp
new file mode 100644
index 0000000..e8bb5c9
--- /dev/null
+++ b/CAN-config-generator/tests/generated.cpp
@@ -0,0 +1,197 @@
+#include "configuration.hpp"
+#include "can/can-decoder.hpp"
+
+
+// >>>>> handlers.cpp >>>>>
+#include "can/canread.h"
+
+using openxc::can::read::publishNumericalMessage;
+
+void handleSteeringWheelMessage(CanMessage* message,
+ CanSignal* signals, int signalCount, Pipeline* pipeline) {
+ publishNumericalMessage("latitude", 42.0, pipeline);
+}
+
+openxc_DynamicField handleInverted(CanSignal* signal, CanSignal* signals,
+ int signalCount, float value, bool* send) {
+ return openxc::payload::wrapNumber(value * -1);
+}
+
+void initializeMyStuff() { }
+
+void initializeOtherStuff() { }
+
+void myLooper() {
+ // this function will be called once each time through the main loop, after
+ // all CAN message processing has been completed
+}
+
+// <<<<< handlers.cpp <<<<<
+
+configuration_t::configuration_t()
+ : can_message_set_{0, "example", 2, 2, 7, 1, 3}
+ , can_message_definition_
+ {
+ {
+ can_message_definition_t(0, "can0", 0x128, can_message_format_t::STANDARD, frequency_clock_t(0.00000f), true),
+ can_message_definition_t(0, "can0", 0x813, can_message_format_t::STANDARD, frequency_clock_t(0.00000f), true)
+ }
+ }
+ , can_signals_
+ {
+ {
+ {
+ 0,
+ 0,
+ "engine_speed",
+ 12,
+ 8,
+ 1.00000,
+ 0,
+ 0,
+ 0,
+ frequency_clock_t(15.0000f),
+ true,
+ false,
+ {
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ },
+ {
+ 0,
+ 0,
+ "GearshiftPosition",
+ 41,
+ 3,
+ 1.00000,
+ 0,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ {1, "FIRST"},
+ {4, "FOURTH"},
+ {6, "NEUTRAL"},
+ {5, "REVERSE"},
+ {2, "SECOND"},
+ {3, "THIRD"}
+ },
+ false,
+ nullptr,
+ nullptr,
+ false
+ },
+ {
+ 0,
+ 0,
+ "SteeringWheelAngle",
+ 52,
+ 12,
+ 0.153920,
+ 0,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ handleUnsignedSteeringWheelAngle,
+ nullptr,
+ false
+ },
+ {
+ 0,
+ 0,
+ "steering_wheel_angle_error",
+ 44,
+ 12,
+ 1.00000,
+ 0,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ ignoreDecoder,
+ nullptr,
+ false
+ },
+ {
+ 0,
+ 0,
+ "steering_angle_sign",
+ 52,
+ 12,
+ 1.00000,
+ 0,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ ignoreDecoder,
+ nullptr,
+ false
+ }
+ },
+ {
+ {
+ 0,
+ 1,
+ "abc",
+ 52,
+ 12,
+ 0.153920,
+ 0,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ handleUnsignedSteeringWheelAngle,
+ nullptr,
+ false
+ },
+ {
+ 0,
+ 1,
+ "def",
+ 52,
+ 12,
+ 1.00000,
+ 0,
+ 0,
+ 0,
+ frequency_clock_t(0.00000f),
+ true,
+ false,
+ {
+ },
+ false,
+ decoder_t::ignoreDecoder,
+ nullptr,
+ false
+ }
+ }
+ }
+ //, obd2_signals_{/*...*/}
+{
+}
+
+
diff --git a/CAN-config-generator/tests/handlers.cpp b/CAN-config-generator/tests/handlers.cpp
new file mode 100644
index 0000000..4316f15
--- /dev/null
+++ b/CAN-config-generator/tests/handlers.cpp
@@ -0,0 +1,22 @@
+#include "can/canread.h"
+
+using openxc::can::read::publishNumericalMessage;
+
+void handleSteeringWheelMessage(CanMessage* message,
+ CanSignal* signals, int signalCount, Pipeline* pipeline) {
+ publishNumericalMessage("latitude", 42.0, pipeline);
+}
+
+openxc_DynamicField handleInverted(CanSignal* signal, CanSignal* signals,
+ int signalCount, float value, bool* send) {
+ return openxc::payload::wrapNumber(value * -1);
+}
+
+void initializeMyStuff() { }
+
+void initializeOtherStuff() { }
+
+void myLooper() {
+ // this function will be called once each time through the main loop, after
+ // all CAN message processing has been completed
+}
diff --git a/CAN-config-generator/tests/signals.json b/CAN-config-generator/tests/signals.json
new file mode 100755
index 0000000..648427a
--- /dev/null
+++ b/CAN-config-generator/tests/signals.json
@@ -0,0 +1,121 @@
+{
+ "name": "example",
+ "extra_sources": [
+ "handlers.cpp"
+ ],
+ "initializers": [
+ "initializeMyStuff"
+ ],
+ "loopers": [
+ "myLooper"
+ ],
+ "buses": {
+ "hs": {
+ "controller": 1,
+ "speed": 500000
+ },
+ "can0": {
+ "controller": 1,
+ "speed": 111111
+ }
+ },
+ "commands": [
+ {
+ "name": "turn_signal_status",
+ "handler": "handleTurnSignalCommand"
+ }
+ ],
+ "messages": {
+ "0x128": {
+ "name": "ECM_z_5D2",
+ "bus": "can0",
+ "signals": {
+ "StrAnglAct": {
+ "generic_name": "SteeringWheelAngle",
+ "bit_position": 52,
+ "bit_size": 12,
+ "factor": 0.15392,
+ "offset": 0,
+ "decoder": "handleUnsignedSteeringWheelAngle"
+ },
+ "StrAnglSign": {
+ "generic_name": "steering_angle_sign",
+ "decoder": "ignoreDecoder",
+ "bit_position": 52,
+ "bit_size": 12
+ },
+ "EngSpd": {
+ "generic_name": "engine_speed",
+ "max_frequency": 15,
+ "bit_position": 12,
+ "bit_size": 8
+ },
+ "GrshftPos": {
+ "generic_name": "GearshiftPosition",
+ "bit_position": 41,
+ "bit_size": 3,
+ "states": {
+ "FIRST": [ 1 ],
+ "SECOND": [ 2 ],
+ "THIRD": [ 3 ],
+ "FOURTH": [ 4 ],
+ "REVERSE": [ 5 ],
+ "NEUTRAL": [ 6 ]
+ }
+ },
+ "StrAnglErr": {
+ "decoder": "ignoreDecoder",
+ "generic_name": "steering_wheel_angle_error",
+ "bit_position": 44,
+ "bit_size": 12
+ }
+ },
+ "handlers": [ "handleSteeringWheelMessage" ]
+ },
+ "0x813": {
+ "name": "ECM_z_5D2",
+ "bus": "can0",
+ "signals": {
+ "ABC": {
+ "generic_name": "abc",
+ "bit_position": 52,
+ "bit_size": 12,
+ "factor": 0.15392,
+ "offset": 0,
+ "decoder": "handleUnsignedSteeringWheelAngle"
+ },
+ "DEF": {
+ "generic_name": "def",
+ "decoder": "decoder_t::ignoreDecoder",
+ "bit_position": 52,
+ "bit_size": 12
+ }
+ }
+ }
+ },
+ "diagnostic_messages": [
+ {
+ "bus": "hs",
+ "id": 2015,
+ "mode": 1,
+ "pid": 12,
+ "frequency": 1,
+ "decoder": "handleObd2Pid"
+ },
+ {
+ "bus": "hs",
+ "id": 2016,
+ "mode": 2,
+ "pid": 12,
+ "frequency": 1
+ },
+ {
+ "bus": "hs",
+ "id": 2016,
+ "mode": 22,
+ "pid": 6,
+ "frequency": 1,
+ "decoder": "handleMyDiagRequest"
+ }
+ ]
+}