Files
chongming-plugins/aibox_sophon_adapter/global_var.py
T
2026-08-10 10:44:52 +08:00

90 lines
2.6 KiB
Python

"""
AI Box Sophon Adapter — 全局变量
模块级共享资源管理。
"""
from typing import Any, TYPE_CHECKING
from chongming_database import Database
from .models.orm import *
from chongming_stream_manager import StreamManager
if TYPE_CHECKING:
from chongming_mqtt.mqtt_forward import MQTTForwardClient
from chongming_mqtt.mqtt_subscribe import MQTTSubscribeClient
from chongming_mqtt.internal_mqtt import InternalMQTTClient
# 数据库实例
db: Database | None = None
# 视频流管理器
stream_manager: StreamManager | None = None
link_path: str | None = None
# 外部 MQTT 转发客户端
mqtt_forward: "MQTTForwardClient | None" = None
# 外部 MQTT 订阅客户端
mqtt_subscribe: "MQTTSubscribeClient | None" = None
# 内部 MQTT 请求-响应客户端(handler 内对任意应用进程发起请求-响应)
internal_mqtt: "InternalMQTTClient | None" = None
# 内部请求-响应主题(edge_app_controller 的 alg_media_fetch 命令使用)
# 与盒子侧约定一致(盒子只设根主题 box,子路径固定 aibox_sophon/...);
# 勿用 chongming/{插件}/{操作} 保留命名空间(网关 Bridge 订阅 chongming/+/+ 会拦截 3 级主题并按 Worker RPC 路由)
internal_request_topic: str = "box/aibox_sophon/edge_app_controller"
internal_response_topic: str = "box/aibox_sophon/edge_app_controller_reply"
# 上传文件根目录(用于清理告警关联视频)
upload_root: str = "./data/uploads"
# 告警保留配置
alarm_max_records: int = 0 # 0 表示不限制
# 豆包 AI 分析开关
doubao_analysis_enabled: bool = True
# 告警转发配置
alarm_forward_enabled: bool = False
alarm_forward_url: str = "http://dg.datagoo.cn:60014/open-api/event-alarm/receive"
alarm_forward_video_url: str = "http://dg.datagoo.cn:60014/open-api/event-alarm/receiveVideoUpload"
alarm_forward_timeout: float = 10.0
# 心跳超时配置(秒)
heartbeat_timeout: float = 15.0
# 心跳上报间隔(秒)
heartbeat_interval: float = 5.0
def set_global_var(name: str, value: Any) -> None:
"""
设置当前模块的全局变量。
Args:
name: 变量名(字符串)
value: 任意值
"""
globals()[name] = value
__all__ = [
"db",
"heartbeat_timeout",
"heartbeat_interval",
"mqtt_forward",
"mqtt_subscribe",
"internal_mqtt",
"internal_request_topic",
"internal_response_topic",
"upload_root",
"alarm_max_records",
"doubao_analysis_enabled",
"alarm_forward_enabled",
"alarm_forward_url",
"alarm_forward_video_url",
"alarm_forward_timeout",
"set_global_var",
]