scense_demo/demo/init.py
2026-08-29 21:10:23 +08:00

40 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
"""demo 模块初始化 —— 将业务函数注册到 ServerEnv供 .dspy/.ui 直接调用。
三处同步注册:① 实现(demo/demo.py) ② 包 __init__.py 导入 ③ 本文件 env.xxx = xxx。
"""
from .demo import (
start_demo, stop_demo, switch_camera, pause_demo,
update_demo_entity, get_entity_attrs, hotload_script,
presence_join, presence_leave, set_fullscreen,
get_demo_state, list_active_sessions,
DemoParamError, DemoNotFoundError, DemoDuplicateError, DemoStateError,
DEMO_CAMERA_MODES,
)
def load_demo(env=None):
"""挂载 demo 模块到宿主应用 ServerEnv宿主 app/scense.py init() 中调用)。"""
if env is None:
from ahserver.server_env import ServerEnv
env = ServerEnv()
env.start_demo = start_demo
env.stop_demo = stop_demo
env.switch_camera = switch_camera
env.pause_demo = pause_demo
env.update_demo_entity = update_demo_entity
env.get_entity_attrs = get_entity_attrs
env.hotload_script = hotload_script
env.presence_join = presence_join
env.presence_leave = presence_leave
env.set_fullscreen = set_fullscreen
env.get_demo_state = get_demo_state
env.list_active_sessions = list_active_sessions
# 异常类型也注册为 dspy 全局,便于 .dspy 按类型映射状态码
env.DemoParamError = DemoParamError
env.DemoNotFoundError = DemoNotFoundError
env.DemoDuplicateError = DemoDuplicateError
env.DemoStateError = DemoStateError
env.DEMO_CAMERA_MODES = DEMO_CAMERA_MODES
return env