X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fcan%2Fcan-message.cpp;h=074f5990396d5b0068083a9c3af28277272870e1;hb=2eda264a201385f5073362207b7de84bf71f9ec1;hp=057bc71f0424a2917ceabf79fed25757a6daaa1c;hpb=32e25cbca210a359b09768537b6f443fe90a3070;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/can/can-message.cpp b/low-can-binding/can/can-message.cpp index 057bc71f..074f5990 100644 --- a/low-can-binding/can/can-message.cpp +++ b/low-can-binding/can/can-message.cpp @@ -24,7 +24,7 @@ /// /// @brief Class constructor /// -/// Constructor about can_message_t class. +/// can_message_t class constructor. /// can_message_t::can_message_t() : maxdlen_{0}, @@ -71,38 +71,6 @@ int can_message_t::get_sub_id() const return sub_id_; } -/// -/// @brief Retrieve RTR flag member. -/// -/// @return rtr_flags_ class member -/// -bool can_message_t::get_rtr_flag_() const -{ - return rtr_flag_; -} - -/// -/// @brief Retrieve format_ member value. -/// -/// @return format_ class member. Default to INVALID. -/// -can_message_format_t can_message_t::get_format() const -{ - if (format_ != can_message_format_t::STANDARD || format_ != can_message_format_t::EXTENDED) - return can_message_format_t::INVALID; - return format_; -} - -/// -/// @brief Retrieve flags_ member value. -/// -/// @return flags_ class member -/// -uint8_t can_message_t::get_flags() const -{ - return flags_; -} - /// /// @brief Retrieve data_ member value. /// @@ -144,11 +112,6 @@ uint64_t can_message_t::get_timestamp() const return timestamp_; } -void can_message_t::set_timestamp(uint64_t timestamp) -{ - timestamp_ = timestamp; -} - /// @brief Control whether the object is correctly initialized /// to be sent over the CAN bus /// @@ -165,20 +128,6 @@ bool can_message_t::is_correct_to_send() return false; } -/// @brief Set format_ member value. -/// -/// Preferred way to initialize these members by using -/// convert_from_canfd_frame method. -/// -/// @param[in] new_format - class member -void can_message_t::set_format(const can_message_format_t new_format) -{ - if(new_format == can_message_format_t::STANDARD || new_format == can_message_format_t::EXTENDED || new_format == can_message_format_t::INVALID) - format_ = new_format; - else - ERROR("Can set format, wrong format chosen"); -} - /// @brief Take a canfd_frame struct to initialize class members /// /// This is the preferred way to initialize class members. @@ -189,7 +138,7 @@ void can_message_t::set_format(const can_message_format_t new_format) /// @return A can_message_t object fully initialized with canfd_frame values. can_message_t can_message_t::convert_from_frame(const struct canfd_frame& frame, size_t nbytes, uint64_t timestamp) { - uint8_t maxdlen, length, flags = (uint8_t)NULL; + uint8_t maxdlen = 0, length = 0, flags = 0; uint32_t id; can_message_format_t format; bool rtr_flag; @@ -198,15 +147,15 @@ can_message_t can_message_t::convert_from_frame(const struct canfd_frame& frame, switch(nbytes) { case CANFD_MTU: - DEBUG("Got an CAN FD frame"); + AFB_DEBUG("Got an CAN FD frame"); maxdlen = CANFD_MAX_DLEN; break; case CAN_MTU: - DEBUG("Got a legacy CAN frame"); + AFB_DEBUG("Got a legacy CAN frame"); maxdlen = CAN_MAX_DLEN; break; default: - ERROR("unsupported CAN frame"); + AFB_ERROR("unsupported CAN frame"); break; } @@ -260,130 +209,9 @@ can_message_t can_message_t::convert_from_frame(const struct canfd_frame& frame, data.push_back(frame.data[i]); }; - DEBUG("Found id: %X, format: %X, length: %X, data %02X%02X%02X%02X%02X%02X%02X%02X", + AFB_DEBUG("Found id: %X, format: %X, length: %X, data %02X%02X%02X%02X%02X%02X%02X%02X", id, (uint8_t)format, length, data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]); } return can_message_t(maxdlen, id, length, format, rtr_flag, flags, data, timestamp); } - -/// @brief Take a can_frame struct to initialize class members -/// -/// This is the preferred way to initialize class members. -/// -/// @param[in] frame - can_frame to convert coming from a read of CAN socket -/// @param[in] nbytes - bytes read from socket read operation. -/// -/// @return A can_message_t object fully initialized with can_frame values. -can_message_t can_message_t::convert_from_frame(const struct can_frame& frame, size_t nbytes, uint64_t timestamp) -{ - uint8_t maxdlen, length, flags = (uint8_t)NULL; - uint32_t id; - can_message_format_t format; - bool rtr_flag; - std::vector data; - - if(nbytes <= CAN_MTU) - { - DEBUG("Got a legacy CAN frame"); - maxdlen = CAN_MAX_DLEN; - } - else - { - ERROR("unsupported CAN frame"); - } - - if (frame.can_id & CAN_ERR_FLAG) - { - format = can_message_format_t::INVALID; - id = frame.can_id & (CAN_ERR_MASK|CAN_ERR_FLAG); - } - else if (frame.can_id & CAN_EFF_FLAG) - { - format = can_message_format_t::EXTENDED; - id = frame.can_id & CAN_EFF_MASK; - } - else - { - format = can_message_format_t::STANDARD; - id = frame.can_id & CAN_SFF_MASK; - } - - /* Overwrite length_ if RTR flags is detected. - * standard CAN frames may have RTR enabled. There are no ERR frames with RTR */ - if (frame.can_id & CAN_RTR_FLAG) - { - rtr_flag = true; - if(frame.can_dlc && frame.can_dlc <= CAN_MAX_DLC) - { - if(rtr_flag) - length = frame.can_dlc& 0xF; - else - { - length = (frame.can_dlc > maxdlen) ? maxdlen : frame.can_dlc; - } - } - } - else - { - length = (frame.can_dlc > maxdlen) ? maxdlen : frame.can_dlc; - - if (data.capacity() < maxdlen) - data.reserve(maxdlen); - int i; - - data.clear(); - /* maxdlen_ is now set at CAN_MAX_DLEN or CANFD_MAX_DLEN, respectively 8 and 64 bytes*/ - for(i=0;i