diff options
-rw-r--r-- | low-can-binding/binding/application.cpp | 8 | ||||
-rw-r--r-- | low-can-binding/binding/application.hpp | 4 | ||||
-rw-r--r-- | low-can-binding/binding/low-can-cb.cpp | 22 | ||||
-rw-r--r-- | low-can-binding/binding/low-can-hat.hpp | 6 | ||||
-rw-r--r-- | low-can-binding/binding/low-can-subscription.cpp | 2 | ||||
-rw-r--r-- | low-can-binding/binding/low-can-subscription.hpp | 5 | ||||
-rw-r--r-- | low-can-binding/can/can-bus.cpp | 8 | ||||
-rw-r--r-- | low-can-binding/can/can-bus.hpp | 4 | ||||
-rw-r--r-- | low-can-binding/can/message-definition.cpp | 6 | ||||
-rw-r--r-- | low-can-binding/can/message-definition.hpp | 8 | ||||
-rw-r--r-- | low-can-binding/can/message-set.cpp | 8 | ||||
-rw-r--r-- | low-can-binding/can/message-set.hpp | 14 | ||||
-rw-r--r-- | low-can-binding/utils/signals.cpp | 2 | ||||
-rw-r--r-- | low-can-binding/utils/signals.hpp | 15 |
14 files changed, 61 insertions, 51 deletions
diff --git a/low-can-binding/binding/application.cpp b/low-can-binding/binding/application.cpp index d93bf0cf..d22633f9 100644 --- a/low-can-binding/binding/application.cpp +++ b/low-can-binding/binding/application.cpp @@ -57,17 +57,17 @@ std::vector<std::shared_ptr<message_set_t> > application_t::get_message_set() return message_set_; } -std::vector<std::shared_ptr<signal_t> > application_t::get_all_signals() +vect_ptr_signal_t application_t::get_all_signals() { return message_set_[active_message_set_]->get_all_signals(); } -std::vector<std::shared_ptr<diagnostic_message_t>> application_t::get_diagnostic_messages() +vect_ptr_diag_msg_t application_t::get_diagnostic_messages() { return message_set_[active_message_set_]->get_diagnostic_messages(); } -std::vector<std::shared_ptr<message_definition_t>> application_t::get_messages_definition() +vect_ptr_msg_def_t application_t::get_messages_definition() { return message_set_[active_message_set_]->get_messages_definition(); } @@ -76,7 +76,7 @@ std::vector<std::shared_ptr<message_definition_t>> application_t::get_messages_d std::shared_ptr<message_definition_t> application_t::get_message_definition(uint32_t id) { std::shared_ptr<message_definition_t> ret = nullptr; - std::vector<std::shared_ptr<message_definition_t>> messages_definition = get_messages_definition(); + vect_ptr_msg_def_t messages_definition = get_messages_definition(); for(std::shared_ptr<message_definition_t> &msg_def : messages_definition) { if(msg_def->get_id() == id) diff --git a/low-can-binding/binding/application.hpp b/low-can-binding/binding/application.hpp index 5045ddab..47a0e2f1 100644 --- a/low-can-binding/binding/application.hpp +++ b/low-can-binding/binding/application.hpp @@ -73,9 +73,9 @@ class application_t std::vector<std::shared_ptr<message_set_t> > get_message_set(); - std::vector<std::shared_ptr<signal_t> > get_all_signals(); + vect_ptr_signal_t get_all_signals(); - std::vector<std::shared_ptr<diagnostic_message_t> > get_diagnostic_messages(); + vect_ptr_diag_msg_t get_diagnostic_messages(); const std::vector<std::string>& get_signals_prefix() const; diff --git a/low-can-binding/binding/low-can-cb.cpp b/low-can-binding/binding/low-can-cb.cpp index 6c8a1ee0..5879b686 100644 --- a/low-can-binding/binding/low-can-cb.cpp +++ b/low-can-binding/binding/low-can-cb.cpp @@ -47,7 +47,7 @@ /// ///*******************************************************************************/ -void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, uint32_t pid, std::map<int, std::shared_ptr<low_can_subscription_t> >& s) +void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, uint32_t pid, map_subscription& s) { bool is_permanent_recurring_request = false; @@ -68,7 +68,7 @@ void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, uin on_no_clients(can_subscription, s); } -void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, std::map<int, std::shared_ptr<low_can_subscription_t> >& s) +void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, map_subscription& s) { auto it = s.find(can_subscription->get_index()); s.erase(it); @@ -132,7 +132,7 @@ int read_message(sd_event_source *event_source, int fd, uint32_t revents, void * static int subscribe_unsubscribe_signal(afb_req_t request, bool subscribe, std::shared_ptr<low_can_subscription_t>& can_subscription, - std::map<int, std::shared_ptr<low_can_subscription_t> >& s) + map_subscription& s) { int ret = 0; int sub_index = can_subscription->get_index(); @@ -194,9 +194,9 @@ static int add_to_event_loop(std::shared_ptr<low_can_subscription_t>& can_subscr static int subscribe_unsubscribe_diagnostic_messages(afb_req_t request, bool subscribe, - std::list<std::shared_ptr<diagnostic_message_t> > diagnostic_messages, + list_ptr_diag_msg_t diagnostic_messages, struct event_filter_t& event_filter, - std::map<int, std::shared_ptr<low_can_subscription_t> >& s, + map_subscription& s, bool perm_rec_diag_req) { int rets = 0; @@ -259,9 +259,9 @@ static int subscribe_unsubscribe_diagnostic_messages(afb_req_t request, static int subscribe_unsubscribe_signals(afb_req_t request, bool subscribe, - std::list<std::shared_ptr<signal_t> > signals, + list_ptr_signal_t signals, struct event_filter_t& event_filter, - std::map<int, std::shared_ptr<low_can_subscription_t> >& s) + map_subscription& s) { int rets = 0; for(const auto& sig: signals) @@ -309,7 +309,7 @@ static int subscribe_unsubscribe_signals(afb_req_t request, utils::signals_manager_t& sm = utils::signals_manager_t::instance(); std::lock_guard<std::mutex> subscribed_signals_lock(sm.get_subscribed_signals_mutex()); - std::map<int, std::shared_ptr<low_can_subscription_t> >& s = sm.get_subscribed_signals(); + map_subscription& s = sm.get_subscribed_signals(); rets += subscribe_unsubscribe_diagnostic_messages(request, subscribe, signals.diagnostic_messages, event_filter, s, false); rets += subscribe_unsubscribe_signals(request, subscribe, signals.signals, event_filter, s); @@ -390,7 +390,7 @@ static int one_subscribe_unsubscribe_id(afb_req_t request, bool subscribe, const if(message_definition) { - sf.signals = std::list<std::shared_ptr<signal_t>>(message_definition->get_signals().begin(),message_definition->get_signals().end()); + sf.signals = list_ptr_signal_t(message_definition->get_signals().begin(),message_definition->get_signals().end()); } if(sf.signals.empty()) @@ -956,14 +956,14 @@ int init_binding(afb_api_t api) struct event_filter_t event_filter; event_filter.frequency = sf.diagnostic_messages.front()->get_frequency(); - std::map<int, std::shared_ptr<low_can_subscription_t> >& s = sm.get_subscribed_signals(); + map_subscription& s = sm.get_subscribed_signals(); subscribe_unsubscribe_diagnostic_messages(request, true, sf.diagnostic_messages, event_filter, s, true); } #ifdef USE_FEATURE_J1939 - std::vector<std::shared_ptr<message_definition_t>> current_messages_definition = application.get_messages_definition(); + vect_ptr_msg_def_t current_messages_definition = application.get_messages_definition(); for(std::shared_ptr<message_definition_t> message_definition: current_messages_definition) { if(message_definition->is_j1939()) diff --git a/low-can-binding/binding/low-can-hat.hpp b/low-can-binding/binding/low-can-hat.hpp index 1662ce04..131b61f2 100644 --- a/low-can-binding/binding/low-can-hat.hpp +++ b/low-can-binding/binding/low-can-hat.hpp @@ -29,8 +29,10 @@ class low_can_subscription_t; -void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, std::map<int, std::shared_ptr<low_can_subscription_t> >& s); -void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, uint32_t pid, std::map<int, std::shared_ptr<low_can_subscription_t> >& s); +typedef std::map<int, std::shared_ptr<low_can_subscription_t>> map_subscription; + +void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, map_subscription& s); +void on_no_clients(std::shared_ptr<low_can_subscription_t> can_subscription, uint32_t pid, map_subscription& s); int read_message(sd_event_source *s, int fd, uint32_t revents, void *userdata); inline bool caseInsCharCompareN(char a, char b) { diff --git a/low-can-binding/binding/low-can-subscription.cpp b/low-can-binding/binding/low-can-subscription.cpp index 6d02b101..9cc5fcbb 100644 --- a/low-can-binding/binding/low-can-subscription.cpp +++ b/low-can-binding/binding/low-can-subscription.cpp @@ -139,7 +139,7 @@ bool low_can_subscription_t::is_signal_subscription_corresponding(const std::sha return signal_ == signal && event_filter_ == event_filter; } -const std::vector<std::shared_ptr<diagnostic_message_t> > low_can_subscription_t::get_diagnostic_message() const +const vect_ptr_diag_msg_t low_can_subscription_t::get_diagnostic_message() const { return diagnostic_message_; } diff --git a/low-can-binding/binding/low-can-subscription.hpp b/low-can-binding/binding/low-can-subscription.hpp index 3f2c3acd..5abf8550 100644 --- a/low-can-binding/binding/low-can-subscription.hpp +++ b/low-can-binding/binding/low-can-subscription.hpp @@ -44,6 +44,7 @@ struct event_filter_t } }; + /// @brief The object stores socket to CAN to be used to write on it. /// This is a simple access to a CAN bus device without any subscriptions attached class low_can_subscription_t @@ -55,7 +56,7 @@ private: /// Signal part std::shared_ptr<signal_t> signal_; ///< signal_ - the CAN signal subscribed - std::vector<std::shared_ptr<diagnostic_message_t> > diagnostic_message_; ///< diagnostic_message_ - diagnostic messages meant to receive OBD2 + vect_ptr_diag_msg_t diagnostic_message_; ///< diagnostic_message_ - diagnostic messages meant to receive OBD2 /// responses. Normal diagnostic request and response are not tested for now. std::shared_ptr<utils::socketcan_t> socket_; ///< socket_ - socket_ that receives CAN messages. @@ -79,7 +80,7 @@ public: const std::shared_ptr<signal_t> get_signal() const; bool is_signal_subscription_corresponding(const std::shared_ptr<signal_t>, const struct event_filter_t& event_filter) const; const std::shared_ptr<diagnostic_message_t> get_diagnostic_message(uint32_t pid) const; - const std::vector<std::shared_ptr<diagnostic_message_t> > get_diagnostic_message() const; + const vect_ptr_diag_msg_t get_diagnostic_message() const; const std::shared_ptr<diagnostic_message_t> get_diagnostic_message(const std::string& name) const; const std::string get_name() const; const std::string get_name(uint32_t pid) const; diff --git a/low-can-binding/can/can-bus.cpp b/low-can-binding/can/can-bus.cpp index 48ac697a..6cd99ba3 100644 --- a/low-can-binding/can/can-bus.cpp +++ b/low-can-binding/can/can-bus.cpp @@ -81,7 +81,7 @@ bool can_bus_t::apply_filter(const openxc_VehicleMessage& vehicle_message, std:: /// @param[in] can_message - a single CAN message from the CAN socket read, to be decode. /// /// @return How many signals has been decoded. -void can_bus_t::process_signals(std::shared_ptr<message_t> message, std::map<int, std::shared_ptr<low_can_subscription_t> >& s) +void can_bus_t::process_signals(std::shared_ptr<message_t> message, map_subscription& s) { int subscription_id = message->get_sub_id(); openxc_DynamicField decoded_message; @@ -114,7 +114,7 @@ void can_bus_t::process_signals(std::shared_ptr<message_t> message, std::map<int /// @param[in] can_message - a single CAN message from the CAN socket read, to be decode. /// /// @return How many signals has been decoded. -void can_bus_t::process_diagnostic_signals(diagnostic_manager_t& manager, std::shared_ptr<message_t> message, std::map<int, std::shared_ptr<low_can_subscription_t> >& s) +void can_bus_t::process_diagnostic_signals(diagnostic_manager_t& manager, std::shared_ptr<message_t> message, map_subscription& s) { int subscription_id = message->get_sub_id(); @@ -160,7 +160,7 @@ void can_bus_t::can_decode_message() { std::lock_guard<std::mutex> subscribed_signals_lock(sm.get_subscribed_signals_mutex()); - std::map<int, std::shared_ptr<low_can_subscription_t> >& s = sm.get_subscribed_signals(); + map_subscription& s = sm.get_subscribed_signals(); if(application_t::instance().get_diagnostic_manager().is_diagnostic_response(message)) { process_diagnostic_signals(application_t::instance().get_diagnostic_manager(), message, s); @@ -192,7 +192,7 @@ void can_bus_t::can_event_push() decoded_can_message_lock.unlock(); { std::lock_guard<std::mutex> subscribed_signals_lock(sm.get_subscribed_signals_mutex()); - std::map<int, std::shared_ptr<low_can_subscription_t> >& s = sm.get_subscribed_signals(); + map_subscription& s = sm.get_subscribed_signals(); if(s.find(v_message.first) != s.end() && afb_event_is_valid(s[v_message.first]->get_event())) { jo = json_object_new_object(); diff --git a/low-can-binding/can/can-bus.hpp b/low-can-binding/can/can-bus.hpp index 53e6b9ae..a9f6b0c1 100644 --- a/low-can-binding/can/can-bus.hpp +++ b/low-can-binding/can/can-bus.hpp @@ -46,8 +46,8 @@ private: utils::config_parser_t conf_file_; ///< configuration file handle used to initialize can_bus_dev_t objects. bool apply_filter(const openxc_VehicleMessage& vehicle_message, std::shared_ptr<low_can_subscription_t> can_subscription); - void process_signals(std::shared_ptr<message_t> message, std::map<int, std::shared_ptr<low_can_subscription_t> >& s); - void process_diagnostic_signals(diagnostic_manager_t& manager, std::shared_ptr<message_t> can_message, std::map<int, std::shared_ptr<low_can_subscription_t> >& s); + void process_signals(std::shared_ptr<message_t> message, map_subscription& s); + void process_diagnostic_signals(diagnostic_manager_t& manager, std::shared_ptr<message_t> can_message, map_subscription& s); void can_decode_message(); std::thread th_decoding_; ///< thread that will handle decoding a can frame diff --git a/low-can-binding/can/message-definition.cpp b/low-can-binding/can/message-definition.cpp index a875dafa..ab7a884b 100644 --- a/low-can-binding/can/message-definition.cpp +++ b/low-can-binding/can/message-definition.cpp @@ -25,7 +25,7 @@ message_definition_t::message_definition_t( uint32_t flags, frequency_clock_t frequency_clock, bool force_send_changed, - const std::vector<std::shared_ptr<signal_t> >& signals) + const vect_ptr_signal_t& signals) : parent_{nullptr}, bus_{bus}, id_{id}, @@ -43,7 +43,7 @@ message_definition_t::message_definition_t(const std::string bus, uint32_t flags, frequency_clock_t frequency_clock, bool force_send_changed, - const std::vector<std::shared_ptr<signal_t> >& signals) + const vect_ptr_signal_t& signals) : parent_{nullptr}, bus_{bus}, id_{id}, @@ -82,7 +82,7 @@ bool message_definition_t::is_isotp() const return (flags_&ISOTP_PROTOCOL); } -std::vector<std::shared_ptr<signal_t>>& message_definition_t::get_signals() +vect_ptr_signal_t& message_definition_t::get_signals() { return signals_; } diff --git a/low-can-binding/can/message-definition.hpp b/low-can-binding/can/message-definition.hpp index f46d3adb..cce42e14 100644 --- a/low-can-binding/can/message-definition.hpp +++ b/low-can-binding/can/message-definition.hpp @@ -54,7 +54,7 @@ private: std::vector<uint8_t> last_value_; ///< last_value_ - The last received value of the message. Defaults to undefined. /// This is required for the forceSendChanged functionality, as the stack /// needs to compare an incoming CAN message with the previous frame.*/ - std::vector<std::shared_ptr<signal_t> > signals_; ///< signals_ - Vector holding signal_t object which share the same arbitration ID */ + vect_ptr_signal_t signals_; ///< signals_ - Vector holding signal_t object which share the same arbitration ID */ public: //message_definition_t(const message_definition_t& b); @@ -66,7 +66,7 @@ public: uint32_t flags, frequency_clock_t frequency_clock, bool force_send_changed, - const std::vector<std::shared_ptr<signal_t> >& signals); + const vect_ptr_signal_t& signals); message_definition_t(const std::string bus, uint32_t id, std::string name, @@ -74,7 +74,7 @@ public: uint32_t flags, frequency_clock_t frequency_clock, bool force_send_changed, - const std::vector<std::shared_ptr<signal_t> >& signals); + const vect_ptr_signal_t& signals); const std::string get_bus_name() const; @@ -83,7 +83,7 @@ public: bool is_fd() const; bool is_j1939() const; bool is_isotp() const; - std::vector<std::shared_ptr<signal_t>>& get_signals(); + vect_ptr_signal_t& get_signals(); uint32_t get_length() const; uint32_t get_flags() const; diff --git a/low-can-binding/can/message-set.cpp b/low-can-binding/can/message-set.cpp index 69682e1a..2fc300ac 100644 --- a/low-can-binding/can/message-set.cpp +++ b/low-can-binding/can/message-set.cpp @@ -24,7 +24,7 @@ message_set_t::message_set_t( uint8_t index, const std::string& name, const std::vector<std::shared_ptr<message_definition_t> >& messages_definition, - const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages) + const vect_ptr_diag_msg_t& diagnostic_messages) : index_{index} , name_{name} , messages_definition_{messages_definition} @@ -32,14 +32,14 @@ message_set_t::message_set_t( {} /// @brief Returns a vector holding all message definitions which are handled by this message set. -std::vector<std::shared_ptr<message_definition_t>>& message_set_t::get_messages_definition() +vect_ptr_msg_def_t& message_set_t::get_messages_definition() { return messages_definition_; } std::vector<std::shared_ptr<signal_t>> message_set_t::get_all_signals() const { - std::vector<std::shared_ptr<signal_t> > signals; + vect_ptr_signal_t signals; for(const auto& cmd: messages_definition_) { std::vector<std::shared_ptr<signal_t>> cmd_signals = cmd->get_signals(); @@ -53,7 +53,7 @@ std::vector<std::shared_ptr<signal_t>> message_set_t::get_all_signals() const } /// @brief Returns a vector holding all diagnostic message definitions which are handled by this message set. -std::vector<std::shared_ptr<diagnostic_message_t>>& message_set_t::get_diagnostic_messages() +vect_ptr_diag_msg_t& message_set_t::get_diagnostic_messages() { return diagnostic_messages_; } diff --git a/low-can-binding/can/message-set.hpp b/low-can-binding/can/message-set.hpp index 4af97fa6..d54f27ac 100644 --- a/low-can-binding/can/message-set.hpp +++ b/low-can-binding/can/message-set.hpp @@ -27,6 +27,10 @@ class signal_t; class message_definition_t; class diagnostic_message_t; +typedef std::vector<std::shared_ptr<signal_t>> vect_ptr_signal_t; +typedef std::vector<std::shared_ptr<diagnostic_message_t>> vect_ptr_diag_msg_t; +typedef std::vector<std::shared_ptr<message_definition_t>> vect_ptr_msg_def_t; + /// @brief A parent wrapper for a particular set of CAN messages and diagnostic messages /// (e.g. a vehicle or program). class message_set_t @@ -35,16 +39,16 @@ private: uint8_t index_; /// < A numerical ID for the message set, ideally the index is in an array for fast lookup const std::string name_; /// < The name of the message set. std::vector<std::shared_ptr<message_definition_t> > messages_definition_; ///< Vector holding all message definitions handled by the message set. - std::vector<std::shared_ptr<diagnostic_message_t> > diagnostic_messages_; ///< Vector holding all diagnostics messages from JSON signals description file. First vector map to message set + vect_ptr_diag_msg_t diagnostic_messages_; ///< Vector holding all diagnostics messages from JSON signals description file. First vector map to message set public: message_set_t( uint8_t index, const std::string& name, const std::vector<std::shared_ptr<message_definition_t> >& messages_definition, - const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages); + const vect_ptr_diag_msg_t& diagnostic_messages); - std::vector<std::shared_ptr<message_definition_t>>& get_messages_definition(); - std::vector<std::shared_ptr<signal_t>> get_all_signals() const; - std::vector<std::shared_ptr<diagnostic_message_t>>& get_diagnostic_messages(); + vect_ptr_msg_def_t& get_messages_definition(); + vect_ptr_signal_t get_all_signals() const; + vect_ptr_diag_msg_t& get_diagnostic_messages(); }; diff --git a/low-can-binding/utils/signals.cpp b/low-can-binding/utils/signals.cpp index 4895395f..a26906e0 100644 --- a/low-can-binding/utils/signals.cpp +++ b/low-can-binding/utils/signals.cpp @@ -39,7 +39,7 @@ namespace utils /// @brief return the subscribed_signals map. /// /// @return Map of subscribed signals. - std::map<int, std::shared_ptr<low_can_subscription_t> >& signals_manager_t::get_subscribed_signals() + map_subscription& signals_manager_t::get_subscribed_signals() { return subscribed_signals_; } diff --git a/low-can-binding/utils/signals.hpp b/low-can-binding/utils/signals.hpp index b28942e7..b7b2ca03 100644 --- a/low-can-binding/utils/signals.hpp +++ b/low-can-binding/utils/signals.hpp @@ -29,12 +29,15 @@ #include "../binding/low-can-subscription.hpp" +typedef std::list<std::shared_ptr<signal_t>> list_ptr_signal_t; +typedef std::list<std::shared_ptr<diagnostic_message_t>> list_ptr_diag_msg_t; + namespace utils { struct signals_found { - std::list<std::shared_ptr<signal_t> > signals; - std::list<std::shared_ptr<diagnostic_message_t> > diagnostic_messages; + list_ptr_signal_t signals; + list_ptr_diag_msg_t diagnostic_messages; }; /// @brief Signal manager singleton hold subscription object with attached afb_event_t and its mutex @@ -45,7 +48,7 @@ namespace utils { private: std::mutex subscribed_signals_mutex_; - std::map<int, std::shared_ptr<low_can_subscription_t> > subscribed_signals_; ///< Map containing all subscribed signals, key is the socket int value. + map_subscription subscribed_signals_; ///< Map containing all subscribed signals, key is the socket int value. signals_manager_t(); ///< Private constructor to make singleton class. @@ -53,11 +56,11 @@ namespace utils static signals_manager_t& instance(); std::mutex& get_subscribed_signals_mutex(); - std::map<int, std::shared_ptr<low_can_subscription_t> >& get_subscribed_signals(); + map_subscription& get_subscribed_signals(); struct signals_found find_signals(const openxc_DynamicField &key); - void find_diagnostic_messages(const openxc_DynamicField &key, std::vector<std::shared_ptr<diagnostic_message_t> >& found_signals); - void find_signals(const openxc_DynamicField &key, std::vector<std::shared_ptr<signal_t> >& found_signals); + void find_diagnostic_messages(const openxc_DynamicField &key, vect_ptr_diag_msg_t& found_signals); + void find_signals(const openxc_DynamicField &key, vect_ptr_signal_t& found_signals); template <typename T> void lookup_signals_by_name(const std::string& key, std::vector<std::shared_ptr<T> > signals, std::list<std::shared_ptr<T> >& found_signals) |