diff options
-rw-r--r-- | src/can/can-signals.cpp | 9 | ||||
-rw-r--r-- | src/can/can-signals.hpp | 5 | ||||
-rw-r--r-- | src/diagnostic/diagnostic-message.cpp | 27 | ||||
-rw-r--r-- | src/diagnostic/diagnostic-message.hpp | 8 | ||||
-rw-r--r-- | src/low-can-binding.cpp | 1 |
5 files changed, 37 insertions, 13 deletions
diff --git a/src/can/can-signals.cpp b/src/can/can-signals.cpp index 2d2e7eaf..00b6ee07 100644 --- a/src/can/can-signals.cpp +++ b/src/can/can-signals.cpp @@ -30,16 +30,21 @@ can_message_definition_t& can_signal_t::get_message() return message_; } -std::string& can_signal_t::get_generic_name() +const std::string& can_signal_t::get_generic_name() const { return generic_name_; } -std::string can_signal_t::get_name() +const std::string can_signal_t::get_name() const { return prefix_ + "." + generic_name_; } +const std::string& can_signal_t::get_prefix() const +{ + return prefix_; +} + uint8_t can_signal_t::get_bit_position() const { return bit_position_; diff --git a/src/can/can-signals.hpp b/src/can/can-signals.hpp index 10403da4..c1d07eee 100644 --- a/src/can/can-signals.hpp +++ b/src/can/can-signals.hpp @@ -110,8 +110,9 @@ private: public: can_message_definition_t& get_message(); - std::string& get_generic_name(); - std::string get_name(); + const std::string& get_generic_name() const; + const std::string get_name() const; + const std::string& get_prefix() const; uint8_t get_bit_position() const; uint8_t get_bit_size() const; float get_factor() const; diff --git a/src/diagnostic/diagnostic-message.cpp b/src/diagnostic/diagnostic-message.cpp index bd76de0b..62e97b8f 100644 --- a/src/diagnostic/diagnostic-message.cpp +++ b/src/diagnostic/diagnostic-message.cpp @@ -43,16 +43,21 @@ uint32_t obd2_signal_t::get_pid() return (uint32_t)pid_; } -std::string& obd2_signal_t::get_generic_name() +const std::string& obd2_signal_t::get_generic_name() const { return generic_name_; } -std::string obd2_signal_t::get_name() +const std::string obd2_signal_t::get_name() const { return prefix_ + "." + generic_name_; } +const std::string& obd2_signal_t::get_prefix() const +{ + return prefix_; +} + void obd2_signal_t::set_prefix(std::string val) { prefix_ = val; @@ -102,11 +107,21 @@ bool obd2_signal_t::is_obd2_response(can_message_t can_message) return false; } -void obd2_signal_t::add_request(int pid) +/** + * @brief Build a DiagnosticRequest struct to be passed + * to diagnostic manager instance. + */ +const DiagnosticRequest obd2_signal_t::build_diagnostic_request() { - DiagnosticRequest request = { - arbitration_id: OBD2_FUNCTIONAL_BROADCAST_ID, - mode: 0x1, has_pid: true, pid: pid_ }; + return {/*arbitration_id: */OBD2_FUNCTIONAL_BROADCAST_ID, + /*mode: */0x1, + /*has_pid: */true, + /*pid: */pid_, + /*pid_length: */0, + /*payload[]: */{0}, + /*payload_length: */0, + /*no_frame_padding: */false, + /*DiagnosticRequestType: */DiagnosticRequestType::DIAGNOSTIC_REQUEST_TYPE_PID }; } /** diff --git a/src/diagnostic/diagnostic-message.hpp b/src/diagnostic/diagnostic-message.hpp index 534b9a59..8301917f 100644 --- a/src/diagnostic/diagnostic-message.hpp +++ b/src/diagnostic/diagnostic-message.hpp @@ -59,11 +59,13 @@ class obd2_signal_t { obd2_signal_t(uint8_t pid, const char* generic_name, const int min_, const int max_, enum UNIT unit, int frequency, bool supported); uint32_t get_pid(); - std::string& get_generic_name(); - std::string get_name(); + const std::string& get_generic_name() const; + const std::string get_name() const; + const std::string& get_prefix() const; void set_prefix(std::string val); - void add_request(int pid); + + const DiagnosticRequest build_diagnostic_request(); bool is_obd2_response(can_message_t can_message); bool is_obd2_request(DiagnosticRequest *request); diff --git a/src/low-can-binding.cpp b/src/low-can-binding.cpp index 8411b65d..a2b54567 100644 --- a/src/low-can-binding.cpp +++ b/src/low-can-binding.cpp @@ -123,6 +123,7 @@ static int subscribe_unsubscribe_signals(struct afb_req request, bool subscribe, for(auto& sig : signals) { + //if (sig.find_first_of()) int ret = subscribe_unsubscribe_signal(request, subscribe, sig); if(ret <= 0) return ret; |