X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fbinding%2Flow-can-socket.hpp;h=d46f1f8cb44be721f598cb02596f0dad9b86abc8;hb=ea35eabeadce57e4f5015797fea530c5bb219fff;hp=71731b30695bd56546ea1e081c25166e97fa652a;hpb=2debfc561d3ad517ad0c82ebd18cba8ec78ab6ce;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 71731b30..d46f1f8c 100644 --- a/low-can-binding/binding/low-can-socket.hpp +++ b/low-can-binding/binding/low-can-socket.hpp @@ -25,21 +25,23 @@ #include "../diagnostic/diagnostic-message.hpp" #include "../utils/socketcan-bcm.hpp" -/// @brief Filtering values. Theses values has to be tested into +#define OBDII_MAX_SIMULTANEOUS_RESPONSES 8 + +/// @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. + 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: @@ -48,8 +50,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. @@ -76,20 +78,19 @@ 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); - struct utils::simple_bcm_msg make_bcm_head(uint32_t opcode, uint32_t can_id = 0, uint32_t flags = 0, const struct timeval& timeout = {0,0}, const struct timeval& frequency_thinning = {0,0}) const; - void add_bcm_frame(const struct can_frame& cfd, struct utils::simple_bcm_msg& bcm_msg) const; + struct utils::bcm_msg make_bcm_head(uint32_t opcode, uint32_t can_id = 0, uint32_t flags = 0, const struct timeval& timeout = {0,0}, const struct timeval& frequency_thinning = {0,0}) const; + void add_one_bcm_frame(struct canfd_frame& cfd, struct utils::bcm_msg& bcm_msg) const; int open_socket(const std::string& bus_name = ""); int create_rx_filter(std::shared_ptr sig); int create_rx_filter(std::shared_ptr sig); - int create_rx_filter(utils::simple_bcm_msg& bcm_msg); + int create_rx_filter(utils::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); + int tx_send(struct canfd_frame& cfd, const std::string& bus_name); };