mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-10 09:38:52 +08:00
getIface() constants added
This commit is contained in:
@@ -85,6 +85,17 @@ struct UAVCAN_EXPORT CanFilterConfig
|
||||
{
|
||||
uint32_t id;
|
||||
uint32_t mask;
|
||||
|
||||
//bool operator == (const CanFilterConfig&) const;
|
||||
bool operator==(const CanFilterConfig& rhs) const
|
||||
{
|
||||
return rhs.id == id && rhs.mask == mask;
|
||||
}
|
||||
|
||||
CanFilterConfig()
|
||||
: id(0)
|
||||
, mask(0)
|
||||
{ }
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -167,6 +178,7 @@ public:
|
||||
* Returns an interface by index, or null pointer if the index is out of range.
|
||||
*/
|
||||
virtual ICanIface* getIface(uint8_t iface_index) = 0;
|
||||
virtual const ICanIface* getIface(uint8_t iface_index) const = 0;
|
||||
|
||||
/**
|
||||
* Total number of available CAN interfaces.
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
#include <set>
|
||||
#include <queue>
|
||||
#include "../transport/can/can.hpp"
|
||||
|
||||
#include <uavcan/util/method_binder.hpp>
|
||||
#include <uavcan/node/subscriber.hpp>
|
||||
|
||||
struct TestNode : public uavcan::INode
|
||||
{
|
||||
@@ -74,6 +75,15 @@ struct PairableCanDriver : public uavcan::ICanDriver, public uavcan::ICanIface
|
||||
return NULL;
|
||||
}
|
||||
|
||||
virtual const uavcan::ICanIface* getIface(uavcan::uint8_t iface_index) const
|
||||
{
|
||||
if (iface_index == 0)
|
||||
{
|
||||
return this;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
virtual uavcan::uint8_t getNumIfaces() const { return 1; }
|
||||
|
||||
virtual uavcan::int16_t select(uavcan::CanSelectMasks& inout_masks, uavcan::MonotonicTime blocking_deadline)
|
||||
|
||||
@@ -150,9 +150,9 @@ public:
|
||||
|
||||
// cppcheck-suppress unusedFunction
|
||||
// cppcheck-suppress functionConst
|
||||
virtual uavcan::int16_t configureFilters(const uavcan::CanFilterConfig*, uavcan::uint16_t) { return -1; }
|
||||
virtual uavcan::int16_t configureFilters(const uavcan::CanFilterConfig*, uavcan::uint16_t) { return 0; }
|
||||
// cppcheck-suppress unusedFunction
|
||||
virtual uavcan::uint16_t getNumFilters() const { return 0; }
|
||||
virtual uavcan::uint16_t getNumFilters() const { return 4; } // decrease number of HW_filters from 9 to 4
|
||||
virtual uavcan::uint64_t getErrorCount() const { return num_errors; }
|
||||
};
|
||||
|
||||
@@ -232,6 +232,7 @@ public:
|
||||
}
|
||||
|
||||
virtual uavcan::ICanIface* getIface(uavcan::uint8_t iface_index) { return &ifaces.at(iface_index); }
|
||||
virtual const uavcan::ICanIface* getIface(uavcan::uint8_t iface_index) const { return &ifaces.at(iface_index); }
|
||||
virtual uavcan::uint8_t getNumIfaces() const { return uavcan::uint8_t(ifaces.size()); }
|
||||
};
|
||||
|
||||
|
||||
@@ -601,6 +601,11 @@ public:
|
||||
{
|
||||
return (iface_index >= num_ifaces_) ? nullptr : static_cast<SocketCanIface*>(ifaces_[iface_index]);
|
||||
}
|
||||
const SocketCanIface* getIface(std::uint8_t iface_index) const override
|
||||
{
|
||||
return (iface_index >= num_ifaces_) ? nullptr : static_cast<const SocketCanIface*>(ifaces_[iface_index]);
|
||||
}
|
||||
|
||||
|
||||
std::uint8_t getNumIfaces() const override { return num_ifaces_; }
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
uavcan::CanIOFlags flags);
|
||||
|
||||
virtual uavcan::int16_t receive(uavcan::CanFrame& out_frame, uavcan::MonotonicTime& out_ts_monotonic,
|
||||
uavcan::UtcTime& out_ts_utc, uavcan::CanIOFlags& out_flags);
|
||||
uavcan::UtcTime& out_ts_utc, uavcan::CanIOFlags& out_flags);
|
||||
|
||||
virtual uavcan::int16_t select(uavcan::CanSelectMasks& inout_masks, uavcan::MonotonicTime blocking_deadline);
|
||||
|
||||
@@ -61,6 +61,8 @@ public:
|
||||
|
||||
virtual uavcan::ICanIface* getIface(uavcan::uint8_t iface_index);
|
||||
|
||||
virtual const uavcan::ICanIface* getIface(uavcan::uint8_t iface_index) const;
|
||||
|
||||
virtual uavcan::uint8_t getNumIfaces() const;
|
||||
};
|
||||
|
||||
|
||||
@@ -348,6 +348,11 @@ uavcan::ICanIface* CanDriver::getIface(uavcan::uint8_t iface_index)
|
||||
return (iface_index == 0) ? this : NULL;
|
||||
}
|
||||
|
||||
const uavcan::ICanIface* CanDriver::getIface(uavcan::uint8_t iface_index) const
|
||||
{
|
||||
return (iface_index == 0) ? this : NULL;
|
||||
}
|
||||
|
||||
uavcan::uint8_t CanDriver::getNumIfaces() const
|
||||
{
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user