static uavcan_linux::NodePtr initMainNode(const std::vector<std::string>& ifaces, uavcan::NodeID nid, const std::string& name) { std::cout << "Initializing main node" << std::endl; auto node = uavcan_linux::makeNode(ifaces); node->setNodeID(nid); node->setName(name.c_str()); node->getLogger().setLevel(uavcan::protocol::debug::LogLevel::DEBUG); const int start_res = node->start(); ENFORCE(0 == start_res); uavcan::NetworkCompatibilityCheckResult init_result; ENFORCE(0 == node->checkNetworkCompatibility(init_result)); if (!init_result.isOk()) { throw std::runtime_error("Network conflict with node " + std::to_string(init_result.conflicting_node.get())); } node->setStatusOk(); return node; }
static uavcan_linux::NodePtr initNodeInPassiveMode(const std::vector<std::string>& ifaces, const std::string& node_name) { auto node = uavcan_linux::makeNode(ifaces); node->setName(node_name.c_str()); ENFORCE(0 == node->start()); node->setStatusOk(); return node; }
static uavcan_linux::NodePtr initNode(const std::vector<std::string>& ifaces, uavcan::NodeID nid, const std::string& name) { auto node = uavcan_linux::makeNode(ifaces); node->setNodeID(nid); node->setName(name.c_str()); ENFORCE(0 <= node->start()); uavcan::NetworkCompatibilityCheckResult ncc_result; ENFORCE(0 <= node->checkNetworkCompatibility(ncc_result)); if (!ncc_result.isOk()) { throw std::runtime_error("Network conflict with node " + std::to_string(ncc_result.conflicting_node.get())); } node->setStatusOk(); return node; }
static uavcan_linux::NodePtr initNode(const std::vector<std::string>& ifaces, uavcan::NodeID nid, const std::string& name) { auto node = uavcan_linux::makeNode(ifaces); /* * Configuring the node. */ node->setNodeID(nid); node->setName(name.c_str()); node->getLogger().setLevel(uavcan::protocol::debug::LogLevel::DEBUG); /* * Starting the node. */ std::cout << "Starting the node..." << std::endl; const int start_res = node->start(); std::cout << "Start returned: " << start_res << std::endl; ENFORCE(0 == start_res); /* * Checking if our node conflicts with other nodes. This may take a few seconds. */ uavcan::NetworkCompatibilityCheckResult init_result; ENFORCE(0 == node->checkNetworkCompatibility(init_result)); if (!init_result.isOk()) { throw std::runtime_error("Network conflict with node " + std::to_string(init_result.conflicting_node.get())); } std::cout << "Node started successfully" << std::endl; /* * Say Hi to the world. */ node->setStatusOk(); node->logInfo("init", "Hello world! I'm [%*], NID %*", node->getNodeStatusProvider().getName().c_str(), int(node->getNodeID().get())); return node; }