mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-16 13:23:33 +08:00
List container improvements and testing
- support range based for loops - add remove() method to remove a node - add clear() to empty entire list and delete nodes - add empty() helper
This commit is contained in:
@@ -148,13 +148,7 @@ UavcanNode::~UavcanNode()
|
||||
(void)orb_unsubscribe(_actuator_direct_sub);
|
||||
|
||||
// Removing the sensor bridges
|
||||
auto br = _sensor_bridges.getHead();
|
||||
|
||||
while (br != nullptr) {
|
||||
auto next = br->getSibling();
|
||||
delete br;
|
||||
br = next;
|
||||
}
|
||||
_sensor_bridges.clear();
|
||||
|
||||
_instance = nullptr;
|
||||
|
||||
@@ -651,9 +645,8 @@ int UavcanNode::init(uavcan::NodeID node_id)
|
||||
|
||||
// Sensor bridges
|
||||
IUavcanSensorBridge::make_all(_node, _sensor_bridges);
|
||||
auto br = _sensor_bridges.getHead();
|
||||
|
||||
while (br != nullptr) {
|
||||
for (const auto &br : _sensor_bridges) {
|
||||
ret = br->init();
|
||||
|
||||
if (ret < 0) {
|
||||
@@ -662,12 +655,9 @@ int UavcanNode::init(uavcan::NodeID node_id)
|
||||
}
|
||||
|
||||
PX4_INFO("sensor bridge '%s' init ok", br->get_name());
|
||||
br = br->getSibling();
|
||||
}
|
||||
|
||||
|
||||
/* Start the Node */
|
||||
|
||||
return _node.start();
|
||||
}
|
||||
|
||||
@@ -1228,13 +1218,10 @@ UavcanNode::print_info()
|
||||
}
|
||||
|
||||
// Sensor bridges
|
||||
auto br = _sensor_bridges.getHead();
|
||||
|
||||
while (br != nullptr) {
|
||||
for (const auto &br : _sensor_bridges) {
|
||||
printf("Sensor '%s':\n", br->get_name());
|
||||
br->print_status();
|
||||
printf("\n");
|
||||
br = br->getSibling();
|
||||
}
|
||||
|
||||
// Printing all nodes that are online
|
||||
|
||||
Reference in New Issue
Block a user