From 34e03bbd6e9da83873eb310498764cd7f991065b Mon Sep 17 00:00:00 2001 From: wznln <18435084+Xuwznln@users.noreply.github.com> Date: Wed, 7 May 2025 03:09:46 +0800 Subject: [PATCH 1/3] fix: aspirate --- unilabos/registry/registry.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/unilabos/registry/registry.py b/unilabos/registry/registry.py index d8459866..dcaaf9f5 100644 --- a/unilabos/registry/registry.py +++ b/unilabos/registry/registry.py @@ -1,3 +1,4 @@ +import io import json import os import sys @@ -143,6 +144,7 @@ class Registry: + f"total: {len(files)}" ) current_device_number = len(self.device_type_registry) + 1 + from unilabos.app.web.utils.action_utils import get_yaml_from_goal_type for i, file in enumerate(files): data = yaml.safe_load(open(file, encoding="utf-8")) if data: @@ -167,6 +169,7 @@ class Registry: action_config["type"] = self._replace_type_with_class( action_config["type"], device_id, f"动作 {action_name}" ) + action_config["goal_default"] = yaml.safe_load(io.StringIO(get_yaml_from_goal_type(action_config["type"].Goal))) action_config["schema"] = ros_action_to_json_schema(action_config["type"]) self.device_type_registry.update(data) From 6f9773157c6798b2cbba96a0fe80c2d1f1125adf Mon Sep 17 00:00:00 2001 From: wznln <18435084+Xuwznln@users.noreply.github.com> Date: Wed, 7 May 2025 03:26:22 +0800 Subject: [PATCH 2/3] fix: jobadd --- unilabos/app/mq.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/unilabos/app/mq.py b/unilabos/app/mq.py index d0975e91..153f94aa 100644 --- a/unilabos/app/mq.py +++ b/unilabos/app/mq.py @@ -55,6 +55,12 @@ class MQTTClient: logger.debug("Payload:", json.dumps(payload_json, indent=2, ensure_ascii=False)) if msg.topic == f"labs/{MQConfig.lab_id}/job/start/": logger.debug("job_add", type(payload_json), payload_json) + if "data" not in payload_json: + payload_json["data"] = {} + if "action" in payload_json: + payload_json["data"]["action"] = payload_json.pop("action") + if "action_kwargs" in payload_json: + payload_json["data"]["action_kwargs"] = payload_json.pop("action_kwargs") job_req = JobAddReq.model_validate(payload_json) data = job_add(job_req) return From bec58e1301de3a0ea5104b4fa6c8a2d22c3b184f Mon Sep 17 00:00:00 2001 From: wznln <18435084+Xuwznln@users.noreply.github.com> Date: Wed, 7 May 2025 03:33:13 +0800 Subject: [PATCH 3/3] fix: jobadd --- unilabos/app/controler.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unilabos/app/controler.py b/unilabos/app/controler.py index 391413f7..f58f53ab 100644 --- a/unilabos/app/controler.py +++ b/unilabos/app/controler.py @@ -29,6 +29,8 @@ def job_add(req: JobAddReq) -> JobData: req.data['action'] = action_name if action_name == "execute_command_from_outer": action_kwargs = {"command": json.dumps(action_kwargs)} + elif "command" in action_kwargs: + action_kwargs = action_kwargs["command"] print(f"job_add:{req.device_id} {action_name} {action_kwargs}") HostNode.get_instance().send_goal(req.device_id, action_name=action_name, action_kwargs=action_kwargs, goal_uuid=req.job_id) return JobData(jobId=req.job_id)