From 63d31e29e366fb9dd85debc897fdbc91d9cb2e42 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Mon, 13 Mar 2017 23:07:33 +0100 Subject: Search into generic_name as well as name + prefix, but always register generic_name into subscribed_signals. It will be the output on event and make easier to find the subscribed signals into the map without prefix. Change-Id: Iaf0060bedb54003b0c77121afd2bd35d832dba25 Signed-off-by: Romain Forlot --- src/can/can-bus.cpp | 2 +- src/configuration-generated.cpp | 4 ++-- src/utils/signals.hpp | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/can/can-bus.cpp b/src/can/can-bus.cpp index dfecea96..ebfd7cec 100644 --- a/src/can/can-bus.cpp +++ b/src/can/can-bus.cpp @@ -74,7 +74,7 @@ int can_bus_t::process_can_signals(can_message_t& can_message) DEBUG(binder_interface, "Operator[] key string: %s, event valid? %d", sig.generic_name, afb_event_is_valid(s[std::string(sig.generic_name)])); DEBUG(binder_interface, "Nb elt matched char: %d", (int)s.count(sig.generic_name)); DEBUG(binder_interface, "Nb elt matched string: %d", (int)s.count(std::string(sig.generic_name)));*/ - if( s.find(sig->get_name()) != s.end() && afb_event_is_valid(s[sig->get_name()])) + if( s.find(sig->get_generic_name()) != s.end() && afb_event_is_valid(s[sig->get_generic_name()])) { decoded_message = decoder_t::translateSignal(*sig, can_message, configuration_t::instance().get_can_signals()); diff --git a/src/configuration-generated.cpp b/src/configuration-generated.cpp index 26d65645..be3bc368 100644 --- a/src/configuration-generated.cpp +++ b/src/configuration-generated.cpp @@ -52,8 +52,8 @@ std::vector> CAN_MESSAGES_DEFINITION = { */ std::vector> SIGNALS = { { - can_signal_t((CAN_MESSAGES_DEFINITION[MESSAGE_SET_ID][0]), "can.driver_door.open", 2, 4, 1.000000, 0.000000, 0.000000, 0.000000, frequency_clock_t(), false, true, std::map(), false, decoder_t::booleanDecoder, nullptr, false), - can_signal_t((CAN_MESSAGES_DEFINITION[MESSAGE_SET_ID][1]), "can.driver_door.close", 0, 4, 1.000000, 0.000000, 0.000000, 0.000000, frequency_clock_t(), false, true, std::map(),false, decoder_t::booleanDecoder, nullptr, false) + can_signal_t((CAN_MESSAGES_DEFINITION[MESSAGE_SET_ID][0]), "driver_door.open", 2, 4, 1.000000, 0.000000, 0.000000, 0.000000, frequency_clock_t(), false, true, std::vector(), false, decoder_t::booleanDecoder, nullptr, false), + can_signal_t((CAN_MESSAGES_DEFINITION[MESSAGE_SET_ID][1]), "driver_door.close", 0, 4, 1.000000, 0.000000, 0.000000, 0.000000, frequency_clock_t(), false, true, std::vector(),false, decoder_t::booleanDecoder, nullptr, false) }, }; diff --git a/src/utils/signals.hpp b/src/utils/signals.hpp index 4675b1f4..00b9e3ed 100644 --- a/src/utils/signals.hpp +++ b/src/utils/signals.hpp @@ -46,6 +46,8 @@ void lookup_signals_by_name(const std::string& key, std::vector& signals, std { if(::fnmatch(key.c_str(), s.get_generic_name().c_str(), FNM_CASEFOLD) == 0) found_signals.push_back(&s); + if(::fnmatch(key.c_str(), s.get_name().c_str(), FNM_CASEFOLD) == 0) + found_signals.push_back(&s); } } @@ -55,7 +57,9 @@ void lookup_signals_by_name(const std::string& key, std::vector& signals, std for(T& s : signals) { if(::fnmatch(key.c_str(), s.get_generic_name().c_str(), FNM_CASEFOLD) == 0) - found_signals_name.push_back(s.get_name()); + found_signals_name.push_back(s.get_generic_name()); + if(::fnmatch(key.c_str(), s.get_name().c_str(), FNM_CASEFOLD) == 0) + found_signals_name.push_back(s.get_generic_name()); } } -- cgit 1.2.3-korg