X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=low-can-binding%2Fbinding%2Flow-can-socket.hpp;h=48ed47f9c5baa344bd8c0fbeef9750eadbdd9198;hb=3275f391bbf331643e7dec536008d9d64872f21f;hp=018b3076877bf862c1819ae92790d7117e320a72;hpb=a483f245eb1aae07917c9074568c8cda82855ff6;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/binding/low-can-socket.hpp b/low-can-binding/binding/low-can-socket.hpp index 018b3076..48ed47f9 100644 --- a/low-can-binding/binding/low-can-socket.hpp +++ b/low-can-binding/binding/low-can-socket.hpp @@ -25,18 +25,21 @@ #include "../diagnostic/diagnostic-message.hpp" #include "../utils/socketcan-bcm.hpp" -/// @brief Filtering values. Theses values has to be tested into +/// @brief Filtering values. Theses values have to be tested in /// can_bus_t::apply_filter method. struct event_filter_t { - float frequency; ///< frequency - Maximum frequency which will be received and pushed a subscribed event. - float min; ///< min - Minimum value that the signal don't have to go below to be pushed. - float max; ///< max - Maximum value that the signal don't have to go above to be pushed. - event_filter_t() : frequency{NAN}, min{NAN}, max{NAN} {} + float frequency; ///< frequency - Maximum frequency which will be received and pushed to a subscribed event. + float min; ///< min - Minimum value that the signal doesn't have to go below to be pushed. + float max; ///< max - Maximum value that the signal doesn't have to go above to be pushed. + event_filter_t() : frequency{0}, min{-__FLT_MAX__}, max{__FLT_MAX__} {}; + bool operator==(const event_filter_t& ext) const { + return frequency == ext.frequency && min == ext.min && max == ext.max; + } }; -/// @brief An object storing socket to CAN to be used to write on it. -/// This is a simple access to a CAN bus device without subscriptions attached +/// @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_socket_t { protected: @@ -45,8 +48,8 @@ protected: /// Signal part std::shared_ptr can_signal_; ///< can_signal_ - the CAN signal subscribed - std::vector > diagnostic_message_; ///< diagnostic_message_ - diagnostic messages meant to received OBD2 responses. - /// normal diagnostic request and response not tested for now. + std::vector > diagnostic_message_; ///< diagnostic_message_ - diagnostic messages meant to receive OBD2 responses. + /// normal diagnostic request and response are not tested for now. utils::socketcan_bcm_t socket_; ///< socket_ - socket_ that receives CAN messages. @@ -62,6 +65,7 @@ public: int get_index() const; const std::shared_ptr get_can_signal() const; + bool is_signal_subscription_corresponding(const std::shared_ptr, const struct event_filter_t& event_filter) const; const std::shared_ptr get_diagnostic_message(uint32_t pid) const; const std::vector > get_diagnostic_message() const; const std::shared_ptr get_diagnostic_message(const std::string& name) const; @@ -72,7 +76,7 @@ public: float get_max() const; utils::socketcan_bcm_t& get_socket(); - void set_event(struct afb_event event); + void set_event(afb_event_t event); void set_frequency(float freq); void set_min(float min); void set_max(float max); @@ -86,6 +90,5 @@ public: int create_rx_filter(std::shared_ptr sig); int create_rx_filter(utils::simple_bcm_msg& bcm_msg); - int tx_send(const struct can_frame& cf, std::shared_ptr sig); int tx_send(const struct can_frame& cf, const std::string& bus_name); };