mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2025-12-17 21:11:12 +00:00
fix protocol node log_message, added create_resource return value
This commit is contained in:
@@ -28,6 +28,9 @@ from unilabos.utils.log import error
|
|||||||
from unilabos.utils.type_check import serialize_result_info, get_result_info_str
|
from unilabos.utils.type_check import serialize_result_info, get_result_info_str
|
||||||
|
|
||||||
|
|
||||||
|
class ROS2ProtocolNodeTempError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
class ROS2ProtocolNode(BaseROS2DeviceNode):
|
class ROS2ProtocolNode(BaseROS2DeviceNode):
|
||||||
"""
|
"""
|
||||||
ROS2ProtocolNode代表管理ROS2环境中设备通信和动作的协议节点。
|
ROS2ProtocolNode代表管理ROS2环境中设备通信和动作的协议节点。
|
||||||
@@ -246,11 +249,14 @@ class ROS2ProtocolNode(BaseROS2DeviceNode):
|
|||||||
time.sleep(action["action_kwargs"]["time"])
|
time.sleep(action["action_kwargs"]["time"])
|
||||||
step_results.append({"step": i + 1, "action": "wait", "result": "completed"})
|
step_results.append({"step": i + 1, "action": "wait", "result": "completed"})
|
||||||
else:
|
else:
|
||||||
result = await self.execute_single_action(**action)
|
try:
|
||||||
step_results.append({"step": i + 1, "action": action["action_name"], "result": result})
|
result = await self.execute_single_action(**action)
|
||||||
ret_info = json.loads(getattr(result, "return_info", "{}"))
|
step_results.append({"step": i + 1, "action": action["action_name"], "result": result})
|
||||||
if not ret_info.get("suc", False):
|
ret_info = json.loads(getattr(result, "return_info", "{}"))
|
||||||
raise RuntimeError(f"Step {i + 1} failed.")
|
if not ret_info.get("suc", False):
|
||||||
|
raise RuntimeError(f"Step {i + 1} failed.")
|
||||||
|
except ROS2ProtocolNodeTempError as ex:
|
||||||
|
step_results.append({"step": i + 1, "action": action["action_name"], "result": ex.args[0]})
|
||||||
elif isinstance(action, list):
|
elif isinstance(action, list):
|
||||||
# 如果是并行动作,同时执行
|
# 如果是并行动作,同时执行
|
||||||
actions = action
|
actions = action
|
||||||
@@ -327,6 +333,7 @@ class ROS2ProtocolNode(BaseROS2DeviceNode):
|
|||||||
# 构建动作ID
|
# 构建动作ID
|
||||||
if action_name == "log_message":
|
if action_name == "log_message":
|
||||||
self.lab_logger().info(f"[Protocol Log] {action_kwargs}")
|
self.lab_logger().info(f"[Protocol Log] {action_kwargs}")
|
||||||
|
raise ROS2ProtocolNodeTempError(f"[Protocol Log] {action_kwargs}")
|
||||||
if device_id in ["", None, "self"]:
|
if device_id in ["", None, "self"]:
|
||||||
action_id = f"/devices/{self.device_id}/{action_name}"
|
action_id = f"/devices/{self.device_id}/{action_name}"
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user