5 #ifndef UAVCAN_PROTOCOL_DYNAMIC_NODE_ID_SERVER_SERVER_HPP_INCLUDED 6 #define UAVCAN_PROTOCOL_DYNAMIC_NODE_ID_SERVER_SERVER_HPP_INCLUDED 16 namespace dynamic_node_id_server
35 allocation_request_manager_(node, tracer, *this),
36 node_discoverer_(node, tracer, *this)
45 own_unique_id_ = own_unique_id;
47 res = allocation_request_manager_.
init(priority);
53 res = node_discoverer_.
init(priority);
79 if (uptime <
max(allocation_activity_timeout, min_uptime))
97 if (since_allocation_activity < allocation_activity_timeout)
114 #endif // Include guard
NodeDiscoverer node_discoverer_
const UniqueID & getOwnUniqueID() const
int init(const UniqueID &own_unique_id, const TransferPriority priority)
MonotonicTime started_at_
AbstractServer(INode &node, IEventTracer &tracer)
UAVCAN_EXPORT const T & max(const T &a, const T &b)
protocol::dynamic_node_id::server::Entry::FieldTypes::unique_id UniqueID
int init(const TransferPriority priority)
bool hasUnknownNodes() const
const NodeDiscoverer & getNodeDiscoverer() const
MonotonicTime getTimeOfLastAllocationActivity() const
bool guessIfAllDynamicNodesAreAllocated(const MonotonicDuration &allocation_activity_timeout=MonotonicDuration::fromMSec(Allocation::MAX_REQUEST_PERIOD_MS *2), const MonotonicDuration &min_uptime=MonotonicDuration::fromMSec(6000)) const
int init(const TransferPriority priority)
static MonotonicDuration fromMSec(int64_t ms)
MonotonicTime getMonotonicTime() const
AllocationRequestManager allocation_request_manager_