From 74d115d2bb6eb34a5abb31211636c80358a128ab Mon Sep 17 00:00:00 2001 From: chakcy <947105045@qq.com> Date: Mon, 10 Aug 2026 11:29:54 +0800 Subject: [PATCH] =?UTF-8?q?modify=20sophon=20=E7=9B=92=E5=AD=90=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aibox_sophon_adapter/edge_app_controller.py | 30 ++++++++++++--------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/aibox_sophon_adapter/edge_app_controller.py b/aibox_sophon_adapter/edge_app_controller.py index d1662c8..976fbba 100644 --- a/aibox_sophon_adapter/edge_app_controller.py +++ b/aibox_sophon_adapter/edge_app_controller.py @@ -161,7 +161,7 @@ async def _cmd_alg_media_fetch(payload: dict) -> dict | None: print(f"[alg_media_fetch]Response from internal_mqtt: {resp}") if resp is None: - return _reply(-5, "获取媒体信息超时或失败") + return _reply(-5, "获取算法媒体信息失败(内部请求无响应)") return resp async def _cmd_alg_task_fetch(payload: dict) -> dict | None: @@ -171,7 +171,12 @@ async def _cmd_alg_task_fetch(payload: dict) -> dict | None: 请求: {"Event": "/alg_task_fetch", "BoardId": "..."} 返回: {"board_id": ..., "tasks": [...]} """ - from .global_var import db + from .global_var import ( + db, + internal_mqtt, + internal_request_topic, + internal_response_topic, + ) board_id = payload.get("BoardId") if not board_id: @@ -182,6 +187,8 @@ async def _cmd_alg_task_fetch(payload: dict) -> dict | None: if db is None: return _reply(-5, "数据库未初始化") + if internal_mqtt is None: + return _reply(-5, "internal_mqtt 未初始化") async with db.get_session() as session: from .models.orm import BoardHeartbeat @@ -195,18 +202,15 @@ async def _cmd_alg_task_fetch(payload: dict) -> dict | None: print(f"[alg_task_fetch]Board {board_id} not found in database.") return _reply(-4, f"设备 {board_id} 不在数据库中") - import json - ping_data = {} - try: - ping_data = json.loads(record.ping_data) if record.ping_data else {} - except json.JSONDecodeError: - pass - - return { - "board_id": board_id, - "tasks": ping_data.get("Tasks", []), - } + + resp = await internal_mqtt.request( + request_topic=internal_request_topic, + response_topic=internal_response_topic, + payload=payload, + timeout=5 + ) + return resp # 命令注册表:command -> async handler(payload) -> data(返回 None 表示不回复) _COMMANDS: dict[str, Callable[[dict], Coroutine[Any, Any, Any]]] = {