mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-14 07:03:34 +08:00
Build config UAVCAN_MAX_NETWORK_SIZE_HINT (#33)
This commit is contained in:
@@ -228,6 +228,21 @@ static const unsigned FloatComparisonEpsilonMult = UAVCAN_FLOAT_COMPARISON_EPSIL
|
||||
static const unsigned FloatComparisonEpsilonMult = 10;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* This constant defines how many receiver objects will be statically pre-allocated by classes that listen to messages
|
||||
* of type uavcan.protocol.NodeStatus from other nodes. If the number of publishers exceeds this value, extra
|
||||
* listeners will be allocated in the dynamic memory (one block per listener).
|
||||
*
|
||||
* The default value is safe to use in any application (since extra memory can always be retrieved from the pool).
|
||||
* Applications that are extremely memory sensitive and are not expected to operate in large networks can override
|
||||
* the default with a lower value.
|
||||
*/
|
||||
#ifdef UAVCAN_MAX_NETWORK_SIZE_HINT
|
||||
static const unsigned MaxNetworkSizeHint = UAVCAN_MAX_NETWORK_SIZE_HINT;
|
||||
#else
|
||||
static const unsigned MaxNetworkSizeHint = 64; ///< Rest will go into the dynamic memory
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#endif // UAVCAN_BUILD_CONFIG_HPP_INCLUDED
|
||||
|
||||
@@ -94,8 +94,6 @@ class NodeDiscoverer : TimerBase
|
||||
|
||||
enum { TimerPollIntervalMs = 170 }; // ~ ceil(500 ms service timeout / 3)
|
||||
|
||||
enum { NumNodeStatusStaticReceivers = 64 };
|
||||
|
||||
/*
|
||||
* States
|
||||
*/
|
||||
@@ -106,7 +104,7 @@ class NodeDiscoverer : TimerBase
|
||||
NodeMap node_map_; ///< Will not work in UAVCAN_TINY
|
||||
|
||||
ServiceClient<protocol::GetNodeInfo, GetNodeInfoResponseCallback> get_node_info_client_;
|
||||
Subscriber<protocol::NodeStatus, NodeStatusCallback, NumNodeStatusStaticReceivers, 0> node_status_sub_;
|
||||
Subscriber<protocol::NodeStatus, NodeStatusCallback, MaxNetworkSizeHint, 0> node_status_sub_;
|
||||
|
||||
/*
|
||||
* Methods
|
||||
|
||||
@@ -51,12 +51,7 @@ private:
|
||||
|
||||
typedef MethodBinder<NodeStatusMonitor*, void (NodeStatusMonitor::*)(const TimerEvent&)> TimerCallback;
|
||||
|
||||
/*
|
||||
* We'll be able to handle this many nodes in the network without any dynamic memory.
|
||||
*/
|
||||
enum { NumStaticReceivers = 64 };
|
||||
|
||||
Subscriber<protocol::NodeStatus, NodeStatusCallback, NumStaticReceivers, 0> sub_;
|
||||
Subscriber<protocol::NodeStatus, NodeStatusCallback, MaxNetworkSizeHint, 0> sub_;
|
||||
|
||||
TimerEventForwarder<TimerCallback> timer_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user