mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 07:13:34 +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()); }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user