X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fcan-signals.cpp;h=5f23c40a19a01522aca38cc47367fbe064f9162a;hb=956c083a7f0622438bbbbf47b05355f812fb1de6;hp=0a6a829ca069b0466ca402d7606017b215ea689b;hpb=035493b81d5bb6d909de05e9a06a0f61588a35aa;p=apps%2Fagl-service-can-low-level.git diff --git a/src/can-signals.cpp b/src/can-signals.cpp index 0a6a829c..5f23c40a 100644 --- a/src/can-signals.cpp +++ b/src/can-signals.cpp @@ -19,16 +19,33 @@ #include +#include "can-decoder.hpp" #include "low-can-binding.hpp" +std::vector> CAN_MESSAGES = { + {{620, CanMessageFormat::STANDARD, {10, 0, nullptr}, false, (uint8_t)NULL}}, +}; + /** * @brief Dumb SIGNALS array. It is composed by CanMessageSet * SIGNALS[MESSAGE_SET_ID][CanSignal] */ -std::vector> SIGNALS { - {}// message set: example +std::vector> SIGNALS = { + {{&(CAN_MESSAGES[0][0]), "can.driver_door.open", 2, 4, 1.000000, 0.000000, 0.000000, 0.000000, {10, 0, nullptr}, false, true, nullptr, 0, false, decoder_t::booleanDecoder, nullptr, false, (float)NULL}}, }; +/** +* @brief Mutex allowing safe manipulation on subscribed_signals map. +* @desc To ensure that the map object isn't modified when we read it, you +* have to set this mutex before use subscribed_signals map object. +*/ +std::mutex subscribed_signals_mutex; + +std::mutex& get_subscribed_signals_mutex() +{ + return subscribed_signals_mutex; +} + const std::vector getSignals() { return SIGNALS[MESSAGE_SET_ID]; @@ -39,7 +56,7 @@ size_t getSignalCount() return SIGNALS[MESSAGE_SET_ID].size(); } -std::vector find_can_signals(openxc_DynamicField& key) +std::vector find_can_signals(const openxc_DynamicField &key) { std::vector signals;