Apollo 9.0
自动驾驶开放平台
apollo::cyber::PyNodeUtils类 参考

#include <py_cyber.h>

apollo::cyber::PyNodeUtils 的协作图:

静态 Public 成员函数

static std::vector< std::string > get_active_nodes (uint8_t sleep_s=2)
 
static std::string get_node_attr (const std::string &node_name, uint8_t sleep_s=2)
 
static std::vector< std::string > get_readersofnode (const std::string &node_name, uint8_t sleep_s=2)
 
static std::vector< std::string > get_writersofnode (const std::string &node_name, uint8_t sleep_s=2)
 

详细描述

在文件 py_cyber.h 第 425 行定义.

成员函数说明

◆ get_active_nodes()

static std::vector< std::string > apollo::cyber::PyNodeUtils::get_active_nodes ( uint8_t  sleep_s = 2)
inlinestatic

在文件 py_cyber.h 第 427 行定义.

427 {
428 auto topology = service_discovery::TopologyManager::Instance();
429 sleep(sleep_s);
430 std::vector<std::string> node_names;
431 std::vector<RoleAttributes> nodes;
432 topology->node_manager()->GetNodes(&nodes);
433 if (nodes.empty()) {
434 AERROR << "no node found.";
435 return node_names;
436 }
437
438 std::sort(nodes.begin(), nodes.end(),
439 [](const RoleAttributes& na, const RoleAttributes& nb) -> bool {
440 return na.node_name().compare(nb.node_name()) <= 0;
441 });
442 for (auto& node : nodes) {
443 node_names.emplace_back(node.node_name());
444 }
445 return node_names;
446 }
#define AERROR
Definition log.h:44

◆ get_node_attr()

static std::string apollo::cyber::PyNodeUtils::get_node_attr ( const std::string &  node_name,
uint8_t  sleep_s = 2 
)
inlinestatic

在文件 py_cyber.h 第 448 行定义.

449 {
450 auto topology = service_discovery::TopologyManager::Instance();
451 sleep(sleep_s);
452
453 if (!topology->node_manager()->HasNode(node_name)) {
454 AERROR << "no node named: " << node_name;
455 return "";
456 }
457
458 std::vector<RoleAttributes> nodes;
459 topology->node_manager()->GetNodes(&nodes);
460 std::string msgdata;
461 for (auto& node_attr : nodes) {
462 if (node_attr.node_name() == node_name) {
463 node_attr.SerializeToString(&msgdata);
464 return msgdata;
465 }
466 }
467 return "";
468 }

◆ get_readersofnode()

static std::vector< std::string > apollo::cyber::PyNodeUtils::get_readersofnode ( const std::string &  node_name,
uint8_t  sleep_s = 2 
)
inlinestatic

在文件 py_cyber.h 第 470 行定义.

471 {
472 std::vector<std::string> reader_channels;
473 auto topology = service_discovery::TopologyManager::Instance();
474 sleep(sleep_s);
475 if (!topology->node_manager()->HasNode(node_name)) {
476 AERROR << "no node named: " << node_name;
477 return reader_channels;
478 }
479
480 std::vector<RoleAttributes> readers;
481 auto channel_mgr = topology->channel_manager();
482 channel_mgr->GetReadersOfNode(node_name, &readers);
483 for (auto& reader : readers) {
484 if (reader.channel_name() == "param_event") {
485 continue;
486 }
487 reader_channels.emplace_back(reader.channel_name());
488 }
489 return reader_channels;
490 }

◆ get_writersofnode()

static std::vector< std::string > apollo::cyber::PyNodeUtils::get_writersofnode ( const std::string &  node_name,
uint8_t  sleep_s = 2 
)
inlinestatic

在文件 py_cyber.h 第 492 行定义.

493 {
494 std::vector<std::string> writer_channels;
495 auto topology = service_discovery::TopologyManager::Instance();
496 sleep(sleep_s);
497 if (!topology->node_manager()->HasNode(node_name)) {
498 AERROR << "no node named: " << node_name;
499 return writer_channels;
500 }
501
502 std::vector<RoleAttributes> writers;
503 auto channel_mgr = topology->channel_manager();
504 channel_mgr->GetWritersOfNode(node_name, &writers);
505 for (auto& writer : writers) {
506 if (writer.channel_name() == "param_event") {
507 continue;
508 }
509 writer_channels.emplace_back(writer.channel_name());
510 }
511 return writer_channels;
512 }

该类的文档由以下文件生成: