diff options
author | 2017-05-10 18:39:25 +0200 | |
---|---|---|
committer | 2017-05-10 18:45:56 +0200 | |
commit | d253ada94487232ccd33b68a69fd44ff7840fab7 (patch) | |
tree | 67f5959138d0ddcad413f9ee692d087200e0b4df /CAN-binder/low-can-binding/can/can-signals.hpp | |
parent | 3e2be4237ac6f3e8bcec8b10d295182cefe67330 (diff) |
Use a tree instead of separated object lists. WIP
Now we respect JSON description file, which is can_message_set contains
can_message_definition which contains can_signals.
Diagnostic messages aren't processed for now.
Change-Id: I94aaf5eded14dd84395bd4fd749df58dee5f533e
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/low-can-binding/can/can-signals.hpp')
-rw-r--r-- | CAN-binder/low-can-binding/can/can-signals.hpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/CAN-binder/low-can-binding/can/can-signals.hpp b/CAN-binder/low-can-binding/can/can-signals.hpp index 75faedf..6497a3c 100644 --- a/CAN-binder/low-can-binding/can/can-signals.hpp +++ b/CAN-binder/low-can-binding/can/can-signals.hpp @@ -19,15 +19,14 @@ #include <map> #include <mutex> -#include <queue> #include <vector> #include <string> +#include <memory> #include "openxc.pb.h" #include "../utils/timer.hpp" #include "../utils/socketcan-bcm.hpp" #include "can-message.hpp" -#include "can-message-definition.hpp" #include "../diagnostic/diagnostic-message.hpp" extern "C" @@ -39,6 +38,7 @@ extern "C" #define MESSAGE_SET_ID 0 class can_signal_t; +class can_message_definition_t; /// /// @brief The type signature for a CAN signal decoder. @@ -76,9 +76,8 @@ typedef uint64_t (*SignalEncoder)(can_signal_t* signal, class can_signal_t { private: + std::shared_ptr<can_message_definition_t> parent_; /*!< parent_ - pointer to the parent message definition holding this signal*/ utils::socketcan_bcm_t socket_; /*!< socket_ - Specific BCM socket that filter the signal read from CAN device */ - std::uint8_t message_set_id_; ///< message_set_id_ - Index number to the message_set_id container object - std::uint8_t message_id_; ///< message_id_ - Index number to the message_definition_t container object std::string generic_name_; /*!< generic_name_ - The name of the signal to be output.*/ static std::string prefix_; /*!< prefix_ - generic_name_ will be prefixed with it. It has to reflect the used protocol. * which make easier to sort message when the come in.*/ @@ -112,9 +111,8 @@ private: * this value is undefined. */ public: + //can_signal_t(const can_signal_t& b); can_signal_t( - std::uint8_t message_set_id, - std::uint8_t message_id, std::string generic_name, uint8_t bit_position, uint8_t bit_size, @@ -132,7 +130,7 @@ public: bool received); utils::socketcan_bcm_t get_socket() const; - can_message_definition_t& get_message() const; + std::shared_ptr<can_message_definition_t> get_message() const; const std::string& get_generic_name() const; const std::string get_name() const; const std::string& get_prefix() const; @@ -154,6 +152,7 @@ public: bool get_received() const; float get_last_value() const; + void set_parent(std::shared_ptr<can_message_definition_t> parent); void set_prefix(std::string val); void set_received(bool r); void set_last_value(float val); |