getIface() constants added

This commit is contained in:
ilia-sheremet
2015-06-13 20:15:45 +02:00
parent 3784484b16
commit bad7123b7d
6 changed files with 39 additions and 4 deletions
+12
View File
@@ -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.
+11 -1
View File
@@ -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)
+3 -2
View File
@@ -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()); }
};