""" 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 命令使用) # 注意:勿用 chongming/{插件}/{操作} 保留命名空间(网关 Bridge 会拦截并按 Worker RPC 路由) internal_request_topic: str = "/internal/aibox_sophon_adapter/edge_app_controller" internal_response_topic: str = "/internal/aibox_sophon_adapter/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", ]