mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-21 04:13:34 +08:00
Renaming: NodeInitializer --> NetworkCompatibilityChecker
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
#include <uavcan/protocol/node_status_provider.hpp>
|
#include <uavcan/protocol/node_status_provider.hpp>
|
||||||
#include <uavcan/protocol/restart_request_server.hpp>
|
#include <uavcan/protocol/restart_request_server.hpp>
|
||||||
#include <uavcan/protocol/transport_stats_provider.hpp>
|
#include <uavcan/protocol/transport_stats_provider.hpp>
|
||||||
#include <uavcan/protocol/node_initializer.hpp>
|
#include <uavcan/protocol/network_compat_checker.hpp>
|
||||||
|
|
||||||
#if !defined(UAVCAN_CPP_VERSION) || !defined(UAVCAN_CPP11)
|
#if !defined(UAVCAN_CPP_VERSION) || !defined(UAVCAN_CPP11)
|
||||||
# error UAVCAN_CPP_VERSION
|
# error UAVCAN_CPP_VERSION
|
||||||
@@ -51,7 +51,7 @@ class UAVCAN_EXPORT Node : public INode
|
|||||||
|
|
||||||
bool started_;
|
bool started_;
|
||||||
|
|
||||||
int initNetwork(NodeInitializationResult& node_init_result);
|
int initNetwork(NetworkCompatibilityCheckResult& node_init_result);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void registerInternalFailure(const char* msg)
|
virtual void registerInternalFailure(const char* msg)
|
||||||
@@ -99,7 +99,7 @@ public:
|
|||||||
|
|
||||||
bool isStarted() const { return started_; }
|
bool isStarted() const { return started_; }
|
||||||
|
|
||||||
int start(NodeInitializationResult& node_init_result);
|
int start(NetworkCompatibilityCheckResult& node_init_result);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialization methods
|
* Initialization methods
|
||||||
@@ -174,14 +174,14 @@ public:
|
|||||||
template <std::size_t MemPoolSize_, unsigned OutgoingTransferRegistryStaticEntries,
|
template <std::size_t MemPoolSize_, unsigned OutgoingTransferRegistryStaticEntries,
|
||||||
unsigned OutgoingTransferMaxPayloadLen>
|
unsigned OutgoingTransferMaxPayloadLen>
|
||||||
int Node<MemPoolSize_, OutgoingTransferRegistryStaticEntries, OutgoingTransferMaxPayloadLen>::
|
int Node<MemPoolSize_, OutgoingTransferRegistryStaticEntries, OutgoingTransferMaxPayloadLen>::
|
||||||
initNetwork(NodeInitializationResult& node_init_result)
|
initNetwork(NetworkCompatibilityCheckResult& node_init_result)
|
||||||
{
|
{
|
||||||
int res = NodeInitializer::publishGlobalDiscoveryRequest(*this);
|
int res = NetworkCompatibilityChecker::publishGlobalDiscoveryRequest(*this);
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
{
|
{
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
NodeInitializer initializer(*this);
|
NetworkCompatibilityChecker initializer(*this);
|
||||||
StaticAssert<(sizeof(initializer) < 1200)>::check();
|
StaticAssert<(sizeof(initializer) < 1200)>::check();
|
||||||
res = initializer.execute();
|
res = initializer.execute();
|
||||||
node_init_result = initializer.getResult();
|
node_init_result = initializer.getResult();
|
||||||
@@ -191,7 +191,7 @@ initNetwork(NodeInitializationResult& node_init_result)
|
|||||||
template <std::size_t MemPoolSize_, unsigned OutgoingTransferRegistryStaticEntries,
|
template <std::size_t MemPoolSize_, unsigned OutgoingTransferRegistryStaticEntries,
|
||||||
unsigned OutgoingTransferMaxPayloadLen>
|
unsigned OutgoingTransferMaxPayloadLen>
|
||||||
int Node<MemPoolSize_, OutgoingTransferRegistryStaticEntries, OutgoingTransferMaxPayloadLen>::
|
int Node<MemPoolSize_, OutgoingTransferRegistryStaticEntries, OutgoingTransferMaxPayloadLen>::
|
||||||
start(NodeInitializationResult& node_init_result)
|
start(NetworkCompatibilityCheckResult& node_init_result)
|
||||||
{
|
{
|
||||||
if (started_)
|
if (started_)
|
||||||
{
|
{
|
||||||
|
|||||||
+9
-9
@@ -14,7 +14,7 @@
|
|||||||
namespace uavcan
|
namespace uavcan
|
||||||
{
|
{
|
||||||
|
|
||||||
struct UAVCAN_EXPORT NodeInitializationResult
|
struct UAVCAN_EXPORT NetworkCompatibilityCheckResult
|
||||||
{
|
{
|
||||||
NodeID conflicting_node;
|
NodeID conflicting_node;
|
||||||
bool isOk() const { return !conflicting_node.isValid(); }
|
bool isOk() const { return !conflicting_node.isValid(); }
|
||||||
@@ -24,21 +24,21 @@ struct UAVCAN_EXPORT NodeInitializationResult
|
|||||||
* This class does not issue GlobalDiscoveryRequest, assuming that it was done already by the caller.
|
* This class does not issue GlobalDiscoveryRequest, assuming that it was done already by the caller.
|
||||||
* Instantiated object can execute() only once. Objects of this class are intended for stack allocation.
|
* Instantiated object can execute() only once. Objects of this class are intended for stack allocation.
|
||||||
*/
|
*/
|
||||||
class UAVCAN_EXPORT NodeInitializer : Noncopyable
|
class UAVCAN_EXPORT NetworkCompatibilityChecker : Noncopyable
|
||||||
{
|
{
|
||||||
typedef std::bitset<NodeID::Max + 1> NodeIDMask;
|
typedef std::bitset<NodeID::Max + 1> NodeIDMask;
|
||||||
typedef MethodBinder<NodeInitializer*,
|
typedef MethodBinder<NetworkCompatibilityChecker*,
|
||||||
void (NodeInitializer::*)(const ReceivedDataStructure<protocol::NodeStatus>&)>
|
void (NetworkCompatibilityChecker::*)(const ReceivedDataStructure<protocol::NodeStatus>&)>
|
||||||
NodeStatusCallback;
|
NodeStatusCallback;
|
||||||
typedef MethodBinder<NodeInitializer*,
|
typedef MethodBinder<NetworkCompatibilityChecker*,
|
||||||
void (NodeInitializer::*)(ServiceCallResult<protocol::ComputeAggregateTypeSignature>&)>
|
void (NetworkCompatibilityChecker::*)(ServiceCallResult<protocol::ComputeAggregateTypeSignature>&)>
|
||||||
CATSResponseCallback;
|
CATSResponseCallback;
|
||||||
|
|
||||||
Subscriber<protocol::NodeStatus, NodeStatusCallback> ns_sub_;
|
Subscriber<protocol::NodeStatus, NodeStatusCallback> ns_sub_;
|
||||||
ServiceClient<protocol::ComputeAggregateTypeSignature, CATSResponseCallback> cats_cln_;
|
ServiceClient<protocol::ComputeAggregateTypeSignature, CATSResponseCallback> cats_cln_;
|
||||||
NodeIDMask nid_mask_present_;
|
NodeIDMask nid_mask_present_;
|
||||||
NodeIDMask nid_mask_checked_;
|
NodeIDMask nid_mask_checked_;
|
||||||
NodeInitializationResult result_;
|
NetworkCompatibilityCheckResult result_;
|
||||||
DataTypeKind checking_dtkind_;
|
DataTypeKind checking_dtkind_;
|
||||||
bool last_cats_request_ok_;
|
bool last_cats_request_ok_;
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ class UAVCAN_EXPORT NodeInitializer : Noncopyable
|
|||||||
int checkNodes();
|
int checkNodes();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NodeInitializer(INode& node)
|
NetworkCompatibilityChecker(INode& node)
|
||||||
: ns_sub_(node)
|
: ns_sub_(node)
|
||||||
, cats_cln_(node)
|
, cats_cln_(node)
|
||||||
, checking_dtkind_(DataTypeKindService)
|
, checking_dtkind_(DataTypeKindService)
|
||||||
@@ -68,7 +68,7 @@ public:
|
|||||||
|
|
||||||
int execute();
|
int execute();
|
||||||
|
|
||||||
const NodeInitializationResult& getResult() const { return result_; }
|
const NetworkCompatibilityCheckResult& getResult() const { return result_; }
|
||||||
|
|
||||||
static int publishGlobalDiscoveryRequest(INode& node);
|
static int publishGlobalDiscoveryRequest(INode& node);
|
||||||
};
|
};
|
||||||
+13
-13
@@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
#include <uavcan/debug.hpp>
|
#include <uavcan/debug.hpp>
|
||||||
#include <uavcan/protocol/node_initializer.hpp>
|
#include <uavcan/protocol/network_compat_checker.hpp>
|
||||||
#include <uavcan/node/publisher.hpp>
|
#include <uavcan/node/publisher.hpp>
|
||||||
#include <uavcan/protocol/GlobalDiscoveryRequest.hpp>
|
#include <uavcan/protocol/GlobalDiscoveryRequest.hpp>
|
||||||
|
|
||||||
namespace uavcan
|
namespace uavcan
|
||||||
{
|
{
|
||||||
|
|
||||||
MonotonicDuration NodeInitializer::getNetworkDiscoveryDelay() const
|
MonotonicDuration NetworkCompatibilityChecker::getNetworkDiscoveryDelay() const
|
||||||
{
|
{
|
||||||
// Base duration is constant - NodeStatus publication period
|
// Base duration is constant - NodeStatus publication period
|
||||||
MonotonicDuration dur = MonotonicDuration::fromMSec(protocol::NodeStatus::PUBLICATION_PERIOD_MS);
|
MonotonicDuration dur = MonotonicDuration::fromMSec(protocol::NodeStatus::PUBLICATION_PERIOD_MS);
|
||||||
@@ -20,7 +20,7 @@ MonotonicDuration NodeInitializer::getNetworkDiscoveryDelay() const
|
|||||||
return dur;
|
return dur;
|
||||||
}
|
}
|
||||||
|
|
||||||
NodeID NodeInitializer::findNextUncheckedNode()
|
NodeID NetworkCompatibilityChecker::findNextUncheckedNode()
|
||||||
{
|
{
|
||||||
for (int i = 1; i <= NodeID::Max; i++)
|
for (int i = 1; i <= NodeID::Max; i++)
|
||||||
{
|
{
|
||||||
@@ -33,7 +33,7 @@ NodeID NodeInitializer::findNextUncheckedNode()
|
|||||||
return NodeID();
|
return NodeID();
|
||||||
}
|
}
|
||||||
|
|
||||||
int NodeInitializer::waitForCATSResponse()
|
int NetworkCompatibilityChecker::waitForCATSResponse()
|
||||||
{
|
{
|
||||||
while (cats_cln_.isPending())
|
while (cats_cln_.isPending())
|
||||||
{
|
{
|
||||||
@@ -46,7 +46,7 @@ int NodeInitializer::waitForCATSResponse()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NodeInitializer::handleNodeStatus(const ReceivedDataStructure<protocol::NodeStatus>& msg)
|
void NetworkCompatibilityChecker::handleNodeStatus(const ReceivedDataStructure<protocol::NodeStatus>& msg)
|
||||||
{
|
{
|
||||||
if (!nid_mask_present_.test(msg.getSrcNodeID().get()))
|
if (!nid_mask_present_.test(msg.getSrcNodeID().get()))
|
||||||
{
|
{
|
||||||
@@ -61,7 +61,7 @@ void NodeInitializer::handleNodeStatus(const ReceivedDataStructure<protocol::Nod
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void NodeInitializer::handleCATSResponse(ServiceCallResult<protocol::ComputeAggregateTypeSignature>& resp)
|
void NetworkCompatibilityChecker::handleCATSResponse(ServiceCallResult<protocol::ComputeAggregateTypeSignature>& resp)
|
||||||
{
|
{
|
||||||
last_cats_request_ok_ = resp.isSuccessful();
|
last_cats_request_ok_ = resp.isSuccessful();
|
||||||
if (last_cats_request_ok_)
|
if (last_cats_request_ok_)
|
||||||
@@ -80,7 +80,7 @@ void NodeInitializer::handleCATSResponse(ServiceCallResult<protocol::ComputeAggr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int NodeInitializer::checkOneNodeOneDataTypeKind(NodeID nid, DataTypeKind kind)
|
int NetworkCompatibilityChecker::checkOneNodeOneDataTypeKind(NodeID nid, DataTypeKind kind)
|
||||||
{
|
{
|
||||||
StaticAssert<DataTypeKindMessage == int(protocol::DataTypeKind::MESSAGE)>::check();
|
StaticAssert<DataTypeKindMessage == int(protocol::DataTypeKind::MESSAGE)>::check();
|
||||||
StaticAssert<DataTypeKindService == int(protocol::DataTypeKind::SERVICE)>::check();
|
StaticAssert<DataTypeKindService == int(protocol::DataTypeKind::SERVICE)>::check();
|
||||||
@@ -110,7 +110,7 @@ int NodeInitializer::checkOneNodeOneDataTypeKind(NodeID nid, DataTypeKind kind)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NodeInitializer::checkOneNode(NodeID nid)
|
int NetworkCompatibilityChecker::checkOneNode(NodeID nid)
|
||||||
{
|
{
|
||||||
if (nid == getNode().getNodeID())
|
if (nid == getNode().getNodeID())
|
||||||
{
|
{
|
||||||
@@ -126,7 +126,7 @@ int NodeInitializer::checkOneNode(NodeID nid)
|
|||||||
return checkOneNodeOneDataTypeKind(nid, DataTypeKindService);
|
return checkOneNodeOneDataTypeKind(nid, DataTypeKindService);
|
||||||
}
|
}
|
||||||
|
|
||||||
int NodeInitializer::checkNodes()
|
int NetworkCompatibilityChecker::checkNodes()
|
||||||
{
|
{
|
||||||
nid_mask_checked_.reset();
|
nid_mask_checked_.reset();
|
||||||
while (true)
|
while (true)
|
||||||
@@ -150,7 +150,7 @@ int NodeInitializer::checkNodes()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NodeInitializer::execute()
|
int NetworkCompatibilityChecker::execute()
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
|
||||||
@@ -160,13 +160,13 @@ int NodeInitializer::execute()
|
|||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = ns_sub_.start(NodeStatusCallback(this, &NodeInitializer::handleNodeStatus));
|
res = ns_sub_.start(NodeStatusCallback(this, &NetworkCompatibilityChecker::handleNodeStatus));
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
{
|
{
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
cats_cln_.setCallback(CATSResponseCallback(this, &NodeInitializer::handleCATSResponse));
|
cats_cln_.setCallback(CATSResponseCallback(this, &NetworkCompatibilityChecker::handleCATSResponse));
|
||||||
res = cats_cln_.init();
|
res = cats_cln_.init();
|
||||||
if (res < 0)
|
if (res < 0)
|
||||||
{
|
{
|
||||||
@@ -187,7 +187,7 @@ exit:
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
int NodeInitializer::publishGlobalDiscoveryRequest(INode& node)
|
int NetworkCompatibilityChecker::publishGlobalDiscoveryRequest(INode& node)
|
||||||
{
|
{
|
||||||
Publisher<protocol::GlobalDiscoveryRequest> pub(node);
|
Publisher<protocol::GlobalDiscoveryRequest> pub(node);
|
||||||
return pub.broadcast(protocol::GlobalDiscoveryRequest());
|
return pub.broadcast(protocol::GlobalDiscoveryRequest());
|
||||||
@@ -58,7 +58,7 @@ TEST(Node, Basic)
|
|||||||
/*
|
/*
|
||||||
* Init the second node - network is empty
|
* Init the second node - network is empty
|
||||||
*/
|
*/
|
||||||
uavcan::NodeInitializationResult result;
|
uavcan::NetworkCompatibilityCheckResult result;
|
||||||
ASSERT_LE(0, node2.start(result));
|
ASSERT_LE(0, node2.start(result));
|
||||||
|
|
||||||
ASSERT_FALSE(node_status_monitor.findNodeWithWorstStatus().isValid());
|
ASSERT_FALSE(node_status_monitor.findNodeWithWorstStatus().isValid());
|
||||||
|
|||||||
+18
-16
@@ -3,7 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
#include <uavcan/protocol/node_initializer.hpp>
|
#include <uavcan/protocol/network_compat_checker.hpp>
|
||||||
#include <uavcan/protocol/node_status_provider.hpp>
|
#include <uavcan/protocol/node_status_provider.hpp>
|
||||||
#include <uavcan/protocol/data_type_info_provider.hpp>
|
#include <uavcan/protocol/data_type_info_provider.hpp>
|
||||||
#include <uavcan/protocol/GlobalDiscoveryRequest.hpp>
|
#include <uavcan/protocol/GlobalDiscoveryRequest.hpp>
|
||||||
@@ -45,27 +45,29 @@ struct NodeInitializerRemoteContext
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
TEST(NodeInitializer, Size)
|
TEST(NetworkCompatibilityChecker, Size)
|
||||||
{
|
{
|
||||||
std::cout << "sizeof(uavcan::NodeInitializer): " << sizeof(uavcan::NodeInitializer) << std::endl;
|
// Objects are subject for stack allocation, hence the size matters
|
||||||
ASSERT_TRUE(sizeof(uavcan::NodeInitializer) < 2048);
|
std::cout << "sizeof(uavcan::NetworkCompatibilityChecker): "
|
||||||
|
<< sizeof(uavcan::NetworkCompatibilityChecker) << std::endl;
|
||||||
|
ASSERT_TRUE(sizeof(uavcan::NetworkCompatibilityChecker) < 2048);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(NodeInitializer, EmptyNetwork)
|
TEST(NetworkCompatibilityChecker, EmptyNetwork)
|
||||||
{
|
{
|
||||||
registerTypes();
|
registerTypes();
|
||||||
InterlinkedTestNodesWithSysClock nodes;
|
InterlinkedTestNodesWithSysClock nodes;
|
||||||
|
|
||||||
ASSERT_LE(0, uavcan::NodeInitializer::publishGlobalDiscoveryRequest(nodes.a));
|
ASSERT_LE(0, uavcan::NetworkCompatibilityChecker::publishGlobalDiscoveryRequest(nodes.a));
|
||||||
|
|
||||||
uavcan::NodeInitializer ni(nodes.a);
|
uavcan::NetworkCompatibilityChecker ni(nodes.a);
|
||||||
ASSERT_LE(0, ni.execute());
|
ASSERT_LE(0, ni.execute());
|
||||||
ASSERT_TRUE(ni.getResult().isOk());
|
ASSERT_TRUE(ni.getResult().isOk());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(NodeInitializer, Success)
|
TEST(NetworkCompatibilityChecker, Success)
|
||||||
{
|
{
|
||||||
registerTypes();
|
registerTypes();
|
||||||
InterlinkedTestNodesWithSysClock nodes;
|
InterlinkedTestNodesWithSysClock nodes;
|
||||||
@@ -75,29 +77,29 @@ TEST(NodeInitializer, Success)
|
|||||||
BackgroundSpinner bgspinner(nodes.b, nodes.a);
|
BackgroundSpinner bgspinner(nodes.b, nodes.a);
|
||||||
bgspinner.startPeriodic(uavcan::MonotonicDuration::fromMSec(10));
|
bgspinner.startPeriodic(uavcan::MonotonicDuration::fromMSec(10));
|
||||||
|
|
||||||
ASSERT_LE(0, uavcan::NodeInitializer::publishGlobalDiscoveryRequest(nodes.a));
|
ASSERT_LE(0, uavcan::NetworkCompatibilityChecker::publishGlobalDiscoveryRequest(nodes.a));
|
||||||
|
|
||||||
uavcan::NodeInitializer ni(nodes.a);
|
uavcan::NetworkCompatibilityChecker ni(nodes.a);
|
||||||
ASSERT_LE(0, ni.execute());
|
ASSERT_LE(0, ni.execute());
|
||||||
ASSERT_TRUE(ni.getResult().isOk());
|
ASSERT_TRUE(ni.getResult().isOk());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(NodeInitializer, RequestTimeout)
|
TEST(NetworkCompatibilityChecker, RequestTimeout)
|
||||||
{
|
{
|
||||||
registerTypes();
|
registerTypes();
|
||||||
InterlinkedTestNodesWithSysClock nodes;
|
InterlinkedTestNodesWithSysClock nodes;
|
||||||
NodeInitializerRemoteContext remote(nodes.b);
|
NodeInitializerRemoteContext remote(nodes.b);
|
||||||
remote.start();
|
remote.start();
|
||||||
|
|
||||||
ASSERT_LE(0, uavcan::NodeInitializer::publishGlobalDiscoveryRequest(nodes.a));
|
ASSERT_LE(0, uavcan::NetworkCompatibilityChecker::publishGlobalDiscoveryRequest(nodes.a));
|
||||||
|
|
||||||
uavcan::NodeInitializer ni(nodes.a);
|
uavcan::NetworkCompatibilityChecker ni(nodes.a);
|
||||||
ASSERT_GT(0, ni.execute()); // There is no background spinner, so CATS request will time out
|
ASSERT_GT(0, ni.execute()); // There is no background spinner, so CATS request will time out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(NodeInitializer, NodeIDCollision)
|
TEST(NetworkCompatibilityChecker, NodeIDCollision)
|
||||||
{
|
{
|
||||||
registerTypes();
|
registerTypes();
|
||||||
InterlinkedTestNodesWithSysClock nodes(8, 8); // Same NID
|
InterlinkedTestNodesWithSysClock nodes(8, 8); // Same NID
|
||||||
@@ -107,9 +109,9 @@ TEST(NodeInitializer, NodeIDCollision)
|
|||||||
BackgroundSpinner bgspinner(nodes.b, nodes.a);
|
BackgroundSpinner bgspinner(nodes.b, nodes.a);
|
||||||
bgspinner.startPeriodic(uavcan::MonotonicDuration::fromMSec(10));
|
bgspinner.startPeriodic(uavcan::MonotonicDuration::fromMSec(10));
|
||||||
|
|
||||||
ASSERT_LE(0, uavcan::NodeInitializer::publishGlobalDiscoveryRequest(nodes.a));
|
ASSERT_LE(0, uavcan::NetworkCompatibilityChecker::publishGlobalDiscoveryRequest(nodes.a));
|
||||||
|
|
||||||
uavcan::NodeInitializer ni(nodes.a);
|
uavcan::NetworkCompatibilityChecker ni(nodes.a);
|
||||||
ASSERT_LE(0, ni.execute());
|
ASSERT_LE(0, ni.execute());
|
||||||
ASSERT_FALSE(ni.getResult().isOk());
|
ASSERT_FALSE(ni.getResult().isOk());
|
||||||
ASSERT_EQ(8, ni.getResult().conflicting_node.get());
|
ASSERT_EQ(8, ni.getResult().conflicting_node.get());
|
||||||
@@ -24,7 +24,7 @@ static uavcan_linux::NodePtr initNode(const std::vector<std::string>& ifaces, ua
|
|||||||
* Starting the node. This may take a few seconds.
|
* Starting the node. This may take a few seconds.
|
||||||
*/
|
*/
|
||||||
std::cout << "Starting the node..." << std::endl;
|
std::cout << "Starting the node..." << std::endl;
|
||||||
uavcan::NodeInitializationResult init_result;
|
uavcan::NetworkCompatibilityCheckResult init_result;
|
||||||
const int start_res = node->start(init_result);
|
const int start_res = node->start(init_result);
|
||||||
std::cout << "Start returned: " << start_res << std::endl;
|
std::cout << "Start returned: " << start_res << std::endl;
|
||||||
ENFORCE(0 == start_res);
|
ENFORCE(0 == start_res);
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ static uavcan_linux::NodePtr initNode(const std::vector<std::string>& ifaces, ua
|
|||||||
node->setNodeID(nid);
|
node->setNodeID(nid);
|
||||||
node->setName(name.c_str());
|
node->setName(name.c_str());
|
||||||
|
|
||||||
uavcan::NodeInitializationResult init_result;
|
uavcan::NetworkCompatibilityCheckResult init_result;
|
||||||
const int start_res = node->start(init_result);
|
const int start_res = node->start(init_result);
|
||||||
ENFORCE(0 == start_res);
|
ENFORCE(0 == start_res);
|
||||||
if (!init_result.isOk())
|
if (!init_result.isOk())
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ static uavcan_linux::NodePtr initNode(const std::vector<std::string>& ifaces, ua
|
|||||||
node->setNodeID(nid);
|
node->setNodeID(nid);
|
||||||
node->setName(name.c_str());
|
node->setName(name.c_str());
|
||||||
|
|
||||||
uavcan::NodeInitializationResult init_result;
|
uavcan::NetworkCompatibilityCheckResult init_result;
|
||||||
const int start_res = node->start(init_result);
|
const int start_res = node->start(init_result);
|
||||||
ENFORCE(0 == start_res);
|
ENFORCE(0 == start_res);
|
||||||
if (!init_result.isOk())
|
if (!init_result.isOk())
|
||||||
|
|||||||
Reference in New Issue
Block a user