diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-04-14 13:24:07 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-04-14 13:24:07 +0200 |
commit | 49fe0eec8f17698fc5f86d0abe01777af1fb2b23 (patch) | |
tree | 356cd3e3261934a3fb90786e1789ee4ad001cbe5 /CAN-config-generator/tests | |
parent | 044ef27d3667a114964549f89c63ab1ea6655877 (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-x | CAN-config-generator/tests/basic.json | 112 | ||||
-rw-r--r-- | CAN-config-generator/tests/generated.cpp | 197 | ||||
-rw-r--r-- | CAN-config-generator/tests/handlers.cpp | 22 | ||||
-rwxr-xr-x | CAN-config-generator/tests/signals.json | 121 |
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 00000000..32cd1b45 --- /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 00000000..e8bb5c93 --- /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 00000000..4316f15f --- /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 00000000..648427a9 --- /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" + } + ] +} |