diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-04-11 15:49:47 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-04-11 15:49:47 +0200 |
commit | a58d40b5ae336a54408201963b065ee049b43acd (patch) | |
tree | 9769e3d5b624e0238fe550df601e5382f259c52e /can-config-generator/tests | |
parent | 9e444ade872bc436cf12bc12d03c3a5d51ac0b9e (diff) | |
parent | b7591d16c2686214d5d8dcc0739a233f15aee5db (diff) |
Add 'can-config-generator/' from commit 'b7591d16c2686214d5d8dcc0739a233f15aee5db'
git-subtree-dir: can-config-generator
git-subtree-mainline: 9e444ade872bc436cf12bc12d03c3a5d51ac0b9e
git-subtree-split: b7591d16c2686214d5d8dcc0739a233f15aee5db
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" + } + ] +} |