5 #include <gtest/gtest.h> 9 #include "../helpers.hpp" 16 std::vector<std::pair<UniqueID, uavcan::NodeID> >
requests_;
25 requests_.push_back(std::pair<UniqueID, uavcan::NodeID>(unique_id, preferred_node_id));
35 if (requests_.empty())
37 std::cout <<
"No pending requests" << std::endl;
41 const std::pair<UniqueID, uavcan::NodeID> pair = requests_.at(requests_.size() - 1U);
44 if (pair.first != unique_id)
46 std::cout <<
"Unique ID mismatch" << std::endl;
50 if (pair.second != preferred_node_id)
52 std::cout <<
"Node ID mismatch (" << pair.second.get() <<
", " << preferred_node_id.
get() <<
")" 60 void reset() { requests_.clear(); }
64 TEST(dynamic_node_id_server_AllocationRequestManager, Basic)
66 using namespace uavcan::protocol::dynamic_node_id;
67 using namespace uavcan::protocol::dynamic_node_id::server;
81 uavcan::protocol::HardwareVersion::FieldTypes::unique_id unique_id;
87 ASSERT_LE(0, client.
start(unique_id, PreferredNodeID));
virtual void handleAllocationRequest(const UniqueID &unique_id, uavcan::NodeID preferred_node_id)
virtual bool canPublishFollowupAllocationResponse() const
static const NodeID Broadcast
bool matchAndPopLastRequest(const UniqueID &unique_id, uavcan::NodeID preferred_node_id)
bool isAllocationComplete() const
protocol::dynamic_node_id::server::Entry::FieldTypes::unique_id UniqueID
NodeID getAllocatedNodeID() const
int init(const TransferPriority priority)
std::vector< std::pair< UniqueID, uavcan::NodeID > > requests_
static GlobalDataTypeRegistry & instance()
int broadcastAllocationResponse(const UniqueID &unique_id, NodeID allocated_node_id)
static MonotonicDuration fromMSec(int64_t ms)
int spinBoth(uavcan::MonotonicDuration duration)
TEST(dynamic_node_id_server_AllocationRequestManager, Basic)
AllocationRequestHandler()
static const TransferPriority OneHigherThanLowest
int start(const UniqueID &unique_id, const NodeID preferred_node_id=NodeID::Broadcast, const TransferPriority transfer_priority=TransferPriority::OneHigherThanLowest)