mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-29 01:03:33 +08:00
CanRxFrame inherits CanFrame
This commit is contained in:
@@ -15,9 +15,8 @@
|
|||||||
namespace uavcan
|
namespace uavcan
|
||||||
{
|
{
|
||||||
|
|
||||||
struct CanRxFrame
|
struct CanRxFrame : public CanFrame
|
||||||
{
|
{
|
||||||
CanFrame frame;
|
|
||||||
uint64_t timestamp;
|
uint64_t timestamp;
|
||||||
uint8_t iface_index;
|
uint8_t iface_index;
|
||||||
|
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ struct RxFrame
|
|||||||
|
|
||||||
bool parse(const CanRxFrame& can_frame)
|
bool parse(const CanRxFrame& can_frame)
|
||||||
{
|
{
|
||||||
if (!frame.parse(can_frame.frame))
|
if (!frame.parse(can_frame))
|
||||||
return false;
|
return false;
|
||||||
timestamp = can_frame.timestamp;
|
timestamp = can_frame.timestamp;
|
||||||
iface_index = can_frame.iface_index;
|
iface_index = can_frame.iface_index;
|
||||||
|
|||||||
@@ -347,7 +347,7 @@ int CanIOManager::receive(CanRxFrame& frame, uint64_t monotonic_deadline)
|
|||||||
assert(0); // Nonexistent interface
|
assert(0); // Nonexistent interface
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const int res = iface->receive(frame.frame, frame.timestamp);
|
const int res = iface->receive(frame, frame.timestamp);
|
||||||
if (res == 0)
|
if (res == 0)
|
||||||
{
|
{
|
||||||
assert(0); // select() reported that iface has pending RX frames, but receive() returned none
|
assert(0); // select() reported that iface has pending RX frames, but receive() returned none
|
||||||
|
|||||||
@@ -196,13 +196,14 @@ TEST(CanIOManager, CanDriverMock)
|
|||||||
static bool rxFrameEquals(const uavcan::CanRxFrame& rxframe, const uavcan::CanFrame& frame,
|
static bool rxFrameEquals(const uavcan::CanRxFrame& rxframe, const uavcan::CanFrame& frame,
|
||||||
uint64_t timestamp, int iface_index)
|
uint64_t timestamp, int iface_index)
|
||||||
{
|
{
|
||||||
if (rxframe.frame != frame)
|
if (static_cast<const uavcan::CanFrame&>(rxframe) != frame)
|
||||||
{
|
{
|
||||||
std::cout << "Frame mismatch:\n"
|
std::cout << "Frame mismatch:\n"
|
||||||
<< " " << rxframe.frame.toString(uavcan::CanFrame::STR_ALIGNED) << "\n"
|
<< " " << rxframe.toString(uavcan::CanFrame::STR_ALIGNED) << "\n"
|
||||||
<< " " << frame.toString(uavcan::CanFrame::STR_ALIGNED) << std::endl;
|
<< " " << frame.toString(uavcan::CanFrame::STR_ALIGNED) << std::endl;
|
||||||
}
|
}
|
||||||
return (rxframe.frame == frame) && (rxframe.timestamp == timestamp) && (rxframe.iface_index == iface_index);
|
return (static_cast<const uavcan::CanFrame&>(rxframe) == frame) &&
|
||||||
|
(rxframe.timestamp == timestamp) && (rxframe.iface_index == iface_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(CanIOManager, Reception)
|
TEST(CanIOManager, Reception)
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ TEST(Transfer, RxFrameParseCompile)
|
|||||||
ASSERT_FALSE(rx_frame.parse(can_rx_frame));
|
ASSERT_FALSE(rx_frame.parse(can_rx_frame));
|
||||||
|
|
||||||
// Default
|
// Default
|
||||||
can_rx_frame.frame.id = CanFrame::FLAG_EFF;
|
can_rx_frame.id = CanFrame::FLAG_EFF;
|
||||||
ASSERT_TRUE(rx_frame.parse(can_rx_frame));
|
ASSERT_TRUE(rx_frame.parse(can_rx_frame));
|
||||||
ASSERT_EQ(0, rx_frame.timestamp);
|
ASSERT_EQ(0, rx_frame.timestamp);
|
||||||
ASSERT_EQ(0, rx_frame.iface_index);
|
ASSERT_EQ(0, rx_frame.iface_index);
|
||||||
|
|||||||
Reference in New Issue
Block a user