Closed authaldo closed 7 months ago
testing notes:
/control/planning/local_trajectory_planner
and /control/planning/local_trajectory_planner/preprocessing
):also happens if node name is only part of namespace of other node (node /control/planning/local_trajectory_planner
and /control/planning/local_trajectory_planner/utilities/preprocessing
):
Proposed fix for dead nodes not dissapearing:
diff --git a/src/service_wrapper.cpp b/src/service_wrapper.cpp
index 992846f..a49f604 100644
--- a/src/service_wrapper.cpp
+++ b/src/service_wrapper.cpp
@@ -126,6 +148,20 @@ void ServiceWrapper::handleRequest(const RequestPtr &request) {
continue;
}
+
+ {
+ auto tmpclient = node->create_client<rcl_interfaces::srv::ListParameters>(serviceName);
+ if (!tmpclient->service_is_ready()) {
+ // Service is known, but not ready.
+ // This happens e.g. if this is the currently selected node,
+ // so we still have clients for the service, but the node has died.
+ continue;
+ }
+ }
+
+
nodeNames.push_back(extractedNodeName);
}
proposed fix for name prefix crash in #35
I like the highlighting and service availability checking, thanks for that!
Everything seems to be working in my small test example, thus, I'll remove the draft state of the MR.
I would opt for adding additional functionality like "expand" / "collapse all" buttons in separate MRs.
Changes:
Requires a bit more testing before it can be merged