1 #include "application.hpp"
2 #include "../can/can-decoder.hpp"
5 // >>>>> handlers.cpp >>>>>
6 #include "can/canread.h"
8 using openxc::can::read::publishNumericalMessage;
10 void handleSteeringWheelMessage(CanMessage* message,
11 CanSignal* signals, int signalCount, Pipeline* pipeline) {
12 publishNumericalMessage("latitude", 42.0, pipeline);
15 openxc_DynamicField handleInverted(CanSignal* signal, CanSignal* signals,
16 int signalCount, float value, bool* send) {
17 return openxc::payload::wrapNumber(value * -1);
20 void initializeMyStuff() { }
22 void initializeOtherStuff() { }
25 // this function will be called once each time through the main loop, after
26 // all CAN message processing has been completed
29 // <<<<< handlers.cpp <<<<<
31 application_t::application_t()
32 : can_bus_manager_{utils::config_parser_t{"/etc/dev-mapping.conf"}}
34 {std::make_shared<can_message_set_t>(can_message_set_t{0,"example",
35 { // beginning can_message_definition_ vector
36 {std::make_shared<can_message_definition_t>(can_message_definition_t{"hs",0x128,can_message_format_t::STANDARD,frequency_clock_t(5.00000f),true,
37 { // beginning can_signals vector
38 {std::make_shared<can_signal_t> (can_signal_t{
46 frequency_clock_t(15.0000f),
56 {std::make_shared<can_signal_t> (can_signal_t{
64 frequency_clock_t(0.00000f),
80 {std::make_shared<can_signal_t> (can_signal_t{
88 frequency_clock_t(0.00000f),
94 handleUnsignedSteeringWheelAngle,
98 {std::make_shared<can_signal_t> (can_signal_t{
99 "steering_wheel_angle_error",
106 frequency_clock_t(0.00000f),
116 {std::make_shared<can_signal_t> (can_signal_t{
117 "steering_angle_sign",
124 frequency_clock_t(0.00000f),
134 } // end can_signals vector
135 })} // end can_message_definition entry
137 }, // end can_message_definition vector
138 { // beginning diagnostic_messages_ vector
139 {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
150 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
161 , {std::make_shared<diagnostic_message_t>(diagnostic_message_t{
173 } // end diagnostic_messages_ vector
174 })} // end can_message_set entry
175 } // end can_message_set vector
177 for(auto& cms: can_message_set_)
179 std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition = cms->get_can_message_definition();
180 for(auto& cmd : can_messages_definition)
182 cmd->set_parent(cms.get());
183 std::vector<std::shared_ptr<can_signal_t> >& can_signals = cmd->get_can_signals();
184 for(auto& sig: can_signals)
186 sig->set_parent(cmd.get());
190 std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages = cms->get_diagnostic_messages();
191 for(auto& dm : diagnostic_messages)
193 dm->set_parent(cms.get());
198 const std::string application_t::get_diagnostic_bus() const