X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=CAN-binder%2Flow-can-binding%2Fcan%2Fcan-signals.hpp;h=cc4b6da3dd7c5fbf4ee6683060374ae75964bb27;hb=e4a50a3e96aa39346ad7212cae984524276973dd;hp=6497a3c63e69b5d67684988cebe4a30240d62bf1;hpb=d253ada94487232ccd33b68a69fd44ff7840fab7;p=apps%2Fagl-service-can-low-level.git diff --git a/CAN-binder/low-can-binding/can/can-signals.hpp b/CAN-binder/low-can-binding/can/can-signals.hpp index 6497a3c6..cc4b6da3 100644 --- a/CAN-binder/low-can-binding/can/can-signals.hpp +++ b/CAN-binder/low-can-binding/can/can-signals.hpp @@ -24,6 +24,7 @@ #include #include "openxc.pb.h" +#include "can-message-definition.hpp" #include "../utils/timer.hpp" #include "../utils/socketcan-bcm.hpp" #include "can-message.hpp" @@ -38,8 +39,6 @@ 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. /// @@ -57,7 +56,7 @@ class can_message_definition_t; /// @return a decoded value in an openxc_DynamicField struct. /// typedef openxc_DynamicField (*SignalDecoder)(can_signal_t& signal, - const std::vector& signals, float value, bool* send); + const std::vector > signals, float value, bool* send); /// /// @brief: The type signature for a CAN signal encoder. @@ -76,7 +75,7 @@ typedef uint64_t (*SignalEncoder)(can_signal_t* signal, class can_signal_t { private: - std::shared_ptr parent_; /*!< parent_ - pointer to the parent message definition holding this signal*/ + 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::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. @@ -111,7 +110,6 @@ private: * this value is undefined. */ public: - //can_signal_t(const can_signal_t& b); can_signal_t( std::string generic_name, uint8_t bit_position, @@ -130,10 +128,10 @@ public: bool received); utils::socketcan_bcm_t get_socket() const; - std::shared_ptr get_message() const; - const std::string& get_generic_name() const; + 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; + const std::string get_prefix() const; uint8_t get_bit_position() const; uint8_t get_bit_size() const; float get_factor() const; @@ -152,11 +150,11 @@ public: bool get_received() const; float get_last_value() const; - void set_parent(std::shared_ptr parent); + void set_parent(can_message_definition_t* parent); void set_prefix(std::string val); void set_received(bool r); void set_last_value(float val); + void set_timestamp(uint64_t timestamp); int create_rx_filter(); - void read_socket(); -}; \ No newline at end of file +};