modify sophon 盒子获取
This commit is contained in:
@@ -161,7 +161,7 @@ async def _cmd_alg_media_fetch(payload: dict) -> dict | None:
|
|||||||
print(f"[alg_media_fetch]Response from internal_mqtt: {resp}")
|
print(f"[alg_media_fetch]Response from internal_mqtt: {resp}")
|
||||||
|
|
||||||
if resp is None:
|
if resp is None:
|
||||||
return _reply(-5, "获取媒体信息超时或失败")
|
return _reply(-5, "获取算法媒体信息失败(内部请求无响应)")
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
async def _cmd_alg_task_fetch(payload: dict) -> dict | None:
|
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": "..."}
|
请求: {"Event": "/alg_task_fetch", "BoardId": "..."}
|
||||||
返回: {"board_id": ..., "tasks": [...]}
|
返回: {"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")
|
board_id = payload.get("BoardId")
|
||||||
if not board_id:
|
if not board_id:
|
||||||
@@ -182,6 +187,8 @@ async def _cmd_alg_task_fetch(payload: dict) -> dict | None:
|
|||||||
|
|
||||||
if db is None:
|
if db is None:
|
||||||
return _reply(-5, "数据库未初始化")
|
return _reply(-5, "数据库未初始化")
|
||||||
|
if internal_mqtt is None:
|
||||||
|
return _reply(-5, "internal_mqtt 未初始化")
|
||||||
|
|
||||||
async with db.get_session() as session:
|
async with db.get_session() as session:
|
||||||
from .models.orm import BoardHeartbeat
|
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.")
|
print(f"[alg_task_fetch]Board {board_id} not found in database.")
|
||||||
return _reply(-4, f"设备 {board_id} 不在数据库中")
|
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 {
|
resp = await internal_mqtt.request(
|
||||||
"board_id": board_id,
|
request_topic=internal_request_topic,
|
||||||
"tasks": ping_data.get("Tasks", []),
|
response_topic=internal_response_topic,
|
||||||
}
|
payload=payload,
|
||||||
|
timeout=5
|
||||||
|
)
|
||||||
|
|
||||||
|
return resp
|
||||||
|
|
||||||
# 命令注册表:command -> async handler(payload) -> data(返回 None 表示不回复)
|
# 命令注册表:command -> async handler(payload) -> data(返回 None 表示不回复)
|
||||||
_COMMANDS: dict[str, Callable[[dict], Coroutine[Any, Any, Any]]] = {
|
_COMMANDS: dict[str, Callable[[dict], Coroutine[Any, Any, Any]]] = {
|
||||||
|
|||||||
Reference in New Issue
Block a user