X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=CAN-binder%2Flow-can-binding%2Fbinding%2Flow-can-cb.hpp;h=ad3f74fed8fba0757e41ea231dd96f11bdd91fd6;hb=5bb0cc7268f47575b46baa1d7590f2727e8e193d;hp=6490fdc6c9ac5d42dfd8909786f8d8d5d87520e0;hpb=829e92779abd4ea0e79d558242523d9757436332;p=apps%2Fagl-service-can-low-level.git diff --git a/CAN-binder/low-can-binding/binding/low-can-cb.hpp b/CAN-binder/low-can-binding/binding/low-can-cb.hpp index 6490fdc6..ad3f74fe 100644 --- a/CAN-binder/low-can-binding/binding/low-can-cb.hpp +++ b/CAN-binder/low-can-binding/binding/low-can-cb.hpp @@ -15,8 +15,14 @@ * limitations under the License. */ + #pragma once + #include #include +#include + +#include "../can/can-signals.hpp" +#include "../diagnostic/diagnostic-message.hpp" #include "../utils/socketcan-bcm.hpp" struct event_filter_t @@ -31,19 +37,11 @@ class low_can_subscription_t { private: int index_; + struct afb_event event_; /// Signal part - std::string sig_name_; - std::string bus_name_; - uint32_t can_id_; - uint8_t bit_position_; /*!< bitPosition_ - The starting bit of the signal in its CAN message (assuming - * non-inverted bit numbering, i.e. the most significant bit of - * each byte is 0) */ - uint8_t bit_size_; /*!< bit_size_ - The width of the bit field in the CAN message. */ - float factor_; /*!< factor_ - The final value will be multiplied by this factor. Use 1 if you - * don't need a factor. */ - float offset_; /*!< offset_ - The final value will be added to this offset. Use 0 if you - * don't need an offset. */ + std::shared_ptr can_signal_; + std::shared_ptr diagnostic_message_; /// Filtering part struct event_filter_t event_filter_; @@ -52,6 +50,7 @@ private: public: low_can_subscription_t(); low_can_subscription_t(struct event_filter_t event_filter); + low_can_subscription_t(struct event_filter_t event_filter, std::shared_ptr diagnostic_message); low_can_subscription_t(const low_can_subscription_t& s) = delete; low_can_subscription_t(low_can_subscription_t&& s); @@ -59,16 +58,19 @@ public: explicit operator bool() const; int get_index() const; - const std::string get_sig_name() const; + struct afb_event& get_event(); + const std::shared_ptr get_can_signal() const; + const std::string get_name() const; float get_frequency() const; float get_min() const; float get_max() const; utils::socketcan_bcm_t& get_socket(); + void set_event(struct afb_event event); void set_frequency(float freq); void set_min(float min); void set_max(float max); int create_rx_filter(); - int create_rx_filter(const std::string& bus_name, const std::string& sig_name, uint32_t can_id, uint8_t bit_position, uint8_t bit_size, float factor, float offset); + int create_rx_filter(std::shared_ptr sig); };