X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=CAN-binder%2Flow-can-binding%2Fcan%2Fcan-signals.cpp;h=bc33e06bd1d09fddc808c709c37ccf340fb4c97b;hb=f9e933a9790baee7c820c8e812545cc1e0f85131;hp=04d328bf0c7141813cde9e6ac18a9ecfe08c7075;hpb=6222973c39ee02ad52a5d0b4b400024157ff2eeb;p=apps%2Fagl-service-can-low-level.git diff --git a/CAN-binder/low-can-binding/can/can-signals.cpp b/CAN-binder/low-can-binding/can/can-signals.cpp index 04d328bf..bc33e06b 100644 --- a/CAN-binder/low-can-binding/can/can-signals.cpp +++ b/CAN-binder/low-can-binding/can/can-signals.cpp @@ -89,7 +89,7 @@ utils::socketcan_bcm_t can_signal_t::get_socket() const return socket_; } -std::shared_ptr can_signal_t::get_message() const +can_message_definition_t* can_signal_t::get_message() const { return parent_; } @@ -195,7 +195,7 @@ float can_signal_t::get_last_value() const return last_value_; } -void can_signal_t::set_parent(std::shared_ptr parent) +void can_signal_t::set_parent(can_message_definition_t* parent) { parent_ = parent; } @@ -215,7 +215,7 @@ void can_signal_t::set_last_value(float val) last_value_ = val; } -/// @brief Create a RX_SETUP receive job using the BCM socket. +/// @brief Create a RX_SETUP receive job used by the BCM socket. /// /// @return 0 if ok else -1 int can_signal_t::create_rx_filter() @@ -233,15 +233,13 @@ int can_signal_t::create_rx_filter() memset(&cfd, 0, sizeof(cfd)); memset(&bcm_msg.msg_head, 0, sizeof(bcm_msg.msg_head)); float val = (float)(1 << bit_size_)-1; - float freq = frequency_.frequency_to_period(); - if(freq <= 0) - freq = 0.000001f; + struct timeval freq = frequency_.get_timeval_from_period(); bcm_msg.msg_head.opcode = RX_SETUP; bcm_msg.msg_head.can_id = can_id; bcm_msg.msg_head.flags = SETTIMER|RX_NO_AUTOTIMER; - bcm_msg.msg_head.ival2.tv_sec = long(freq); - bcm_msg.msg_head.ival2.tv_usec = (freq - (long)freq) * 1000000; + bcm_msg.msg_head.ival2.tv_sec = freq.tv_sec ; + bcm_msg.msg_head.ival2.tv_usec = freq.tv_usec; bcm_msg.msg_head.nframes = 1; bitfield_encode_float(val, bit_position_, @@ -257,13 +255,3 @@ int can_signal_t::create_rx_filter() return 0; return -1; } - -void can_signal_t::read_socket() -{ - can_message_t msg; - can_bus_t& cbm = configuration_t::instance().get_can_bus_manager(); - socket_ >> msg; - std::lock_guard can_message_lock(cbm.get_can_message_mutex()); - { cbm.push_new_can_message(msg); } - cbm.get_new_can_message_cv().notify_one(); -} \ No newline at end of file