import asyncio from algo.algo_runner import AlgoRunner from algo.scene_runner import SceneRunner from db.database import get_db from services.device_model_relation_service import DeviceModelRelationService from services.device_scene_relation_service import DeviceSceneRelationService from services.device_service import DeviceService from services.model_service import ModelService from services.scene_service import SceneService async def main(): """主函数""" db_gen = get_db() db = await db_gen.__anext__() device_service = DeviceService(db) model_service = ModelService(db) model_relation_service = DeviceModelRelationService(db) scene_service = SceneService(db) scene_relation_service = DeviceSceneRelationService(db) main_loop = asyncio.get_running_loop() algo_runner = AlgoRunner( device_service=device_service, model_service=model_service, relation_service=model_relation_service, ) scene_runner = SceneRunner( device_service=device_service, scene_service=scene_service, relation_service=scene_relation_service, tcp_manager=None, main_loop=main_loop ) await algo_runner.start() await scene_runner.start() await asyncio.Event().wait() # 保持运行 if __name__ == '__main__': asyncio.run(main())