mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-28 22:13:34 +08:00
NetworkCompatibilityChecker: num_failed_nodes moved to NetworkCompatibilityCheckResult
This commit is contained in:
@@ -17,6 +17,12 @@ namespace uavcan
|
|||||||
struct UAVCAN_EXPORT NetworkCompatibilityCheckResult
|
struct UAVCAN_EXPORT NetworkCompatibilityCheckResult
|
||||||
{
|
{
|
||||||
NodeID conflicting_node;
|
NodeID conflicting_node;
|
||||||
|
uint8_t num_failed_nodes;
|
||||||
|
|
||||||
|
NetworkCompatibilityCheckResult()
|
||||||
|
: num_failed_nodes(0)
|
||||||
|
{ }
|
||||||
|
|
||||||
bool isOk() const { return !conflicting_node.isValid(); }
|
bool isOk() const { return !conflicting_node.isValid(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -40,7 +46,6 @@ class UAVCAN_EXPORT NetworkCompatibilityChecker : Noncopyable
|
|||||||
NodeIDMask nid_mask_checked_;
|
NodeIDMask nid_mask_checked_;
|
||||||
NetworkCompatibilityCheckResult result_;
|
NetworkCompatibilityCheckResult result_;
|
||||||
DataTypeKind checking_dtkind_;
|
DataTypeKind checking_dtkind_;
|
||||||
uint8_t num_failed_nodes_;
|
|
||||||
bool last_cats_request_ok_;
|
bool last_cats_request_ok_;
|
||||||
|
|
||||||
INode& getNode() { return ns_sub_.getNode(); }
|
INode& getNode() { return ns_sub_.getNode(); }
|
||||||
@@ -64,14 +69,11 @@ public:
|
|||||||
: ns_sub_(node)
|
: ns_sub_(node)
|
||||||
, cats_cln_(node)
|
, cats_cln_(node)
|
||||||
, checking_dtkind_(DataTypeKindService)
|
, checking_dtkind_(DataTypeKindService)
|
||||||
, num_failed_nodes_(0)
|
|
||||||
, last_cats_request_ok_(false)
|
, last_cats_request_ok_(false)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
int execute();
|
int execute();
|
||||||
|
|
||||||
uint8_t getNumFailedNodes() const { return num_failed_nodes_; }
|
|
||||||
|
|
||||||
const NetworkCompatibilityCheckResult& getResult() const { return result_; }
|
const NetworkCompatibilityCheckResult& getResult() const { return result_; }
|
||||||
|
|
||||||
static int publishGlobalDiscoveryRequest(INode& node);
|
static int publishGlobalDiscoveryRequest(INode& node);
|
||||||
|
|||||||
@@ -132,7 +132,6 @@ int NetworkCompatibilityChecker::checkOneNode(NodeID nid)
|
|||||||
int NetworkCompatibilityChecker::checkNodes()
|
int NetworkCompatibilityChecker::checkNodes()
|
||||||
{
|
{
|
||||||
(void)nid_mask_checked_.reset();
|
(void)nid_mask_checked_.reset();
|
||||||
num_failed_nodes_ = 0;
|
|
||||||
result_ = NetworkCompatibilityCheckResult();
|
result_ = NetworkCompatibilityCheckResult();
|
||||||
|
|
||||||
while (result_.isOk())
|
while (result_.isOk())
|
||||||
@@ -142,7 +141,7 @@ int NetworkCompatibilityChecker::checkNodes()
|
|||||||
{
|
{
|
||||||
UAVCAN_TRACE("NodeInitializer", "Checking nid=%i", int(nid.get()));
|
UAVCAN_TRACE("NodeInitializer", "Checking nid=%i", int(nid.get()));
|
||||||
const int res = checkOneNode(nid);
|
const int res = checkOneNode(nid);
|
||||||
num_failed_nodes_ += (res < 0) ? 1U : 0U;
|
result_.num_failed_nodes += (res < 0) ? 1U : 0U;
|
||||||
UAVCAN_TRACE("NodeInitializer", "Checked nid=%i result=%i", int(nid.get()), res);
|
UAVCAN_TRACE("NodeInitializer", "Checked nid=%i result=%i", int(nid.get()), res);
|
||||||
}
|
}
|
||||||
else { break; }
|
else { break; }
|
||||||
|
|||||||
@@ -100,7 +100,8 @@ TEST(NetworkCompatibilityChecker, RequestTimeout)
|
|||||||
ASSERT_EQ(0, ni.execute());
|
ASSERT_EQ(0, ni.execute());
|
||||||
|
|
||||||
// The one (and only) node has failed
|
// The one (and only) node has failed
|
||||||
ASSERT_EQ(1, ni.getNumFailedNodes());
|
ASSERT_EQ(1, ni.getResult().num_failed_nodes);
|
||||||
|
ASSERT_TRUE(ni.getResult().isOk());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user