Skip to content

Commit 52544a2

Browse files
committed
signal when host node is ready
1 parent 5ce433e commit 52544a2

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

unilabos/app/ws_client.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1314,3 +1314,19 @@ def cancel_goal(self, job_id: str) -> None:
13141314
logger.info(f"[WebSocketClient] Job {job_log} cancelled successfully")
13151315
else:
13161316
logger.warning(f"[WebSocketClient] Failed to cancel job {job_log}")
1317+
1318+
def publish_host_ready(self) -> None:
1319+
"""发布host_node ready信号"""
1320+
if self.is_disabled or not self.is_connected():
1321+
logger.debug("[WebSocketClient] Not connected, cannot publish host ready signal")
1322+
return
1323+
1324+
message = {
1325+
"action": "host_node_ready",
1326+
"data": {
1327+
"status": "ready",
1328+
"timestamp": time.time(),
1329+
},
1330+
}
1331+
self.message_processor.send_message(message)
1332+
logger.info("[WebSocketClient] Host node ready signal published")

unilabos/ros/nodes/presets/host_node.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,12 @@ def __init__(
289289
self.lab_logger().info("[Host Node] Host node initialized.")
290290
HostNode._ready_event.set()
291291

292+
# 发送host_node ready信号到所有桥接器
293+
for bridge in self.bridges:
294+
if hasattr(bridge, "publish_host_ready"):
295+
bridge.publish_host_ready()
296+
self.lab_logger().debug(f"Host ready signal sent via {bridge.__class__.__name__}")
297+
292298
def _send_re_register(self, sclient):
293299
sclient.wait_for_service()
294300
request = SerialCommand.Request()
@@ -794,6 +800,7 @@ def get_result_callback(self, item: "QueueItem", action_id: str, future) -> None
794800
# 存储结果供 HTTP API 查询
795801
try:
796802
from unilabos.app.web.controller import store_job_result
803+
797804
if goal_status == GoalStatus.STATUS_CANCELED:
798805
store_job_result(job_id, status, return_info, {})
799806
else:

0 commit comments

Comments
 (0)