observer: ObserveFaceRecognise = ObserveFaceRecognise() # FaceRecogniseTaskResponse.faceInfos: [FaceInfoResponse] # FaceInfoResponse.id, FaceInfoResponse.name,FaceInfoResponse.gender,FaceInfoResponse.age # FaceRecogniseTaskResponse.isSuccess # FaceRecogniseTaskResponse.resultCode def handler(msg: FaceRecogniseTaskResponse): print(f"{msg}") if msg.isSuccess and msg.faceInfos: observer.stop() asyncio.create_task(__tts(msg.faceInfos[0].name)) observer.set_handler(handler) observer.start() await asyncio.sleep(0) async def __tts(name): await PlayTTS(text=f'你好, {name}').execute() asyncio.get_running_loop().run_in_executor(None, asyncio.get_running_loop().stop) if __name__ == '__main__': device: WiFiDevice = asyncio.get_event_loop().run_until_complete(test_get_device_by_name()) if device: asyncio.get_event_loop().run_until_complete(test_connect(device)) asyncio.get_event_loop().run_until_complete(test_start_run_program()) asyncio.get_event_loop().run_until_complete(test_ObserveFaceRecognise()) asyncio.get_event_loop().run_forever() asyncio.get_event_loop().run_until_complete(shutdown())
# 定义处理器 # ObserveInfraredDistanceResponse.distance def handler(msg: ObserveInfraredDistanceResponse): print("distance = {0}".format(str(msg.distance))) if msg.distance < 500: observer.stop() asyncio.create_task(__tts(msg.distance)) observer.set_handler(handler) observer.start() await asyncio.sleep(0) async def __tts(distance: int): result = await PlayTTS(text=f"检测到红外距离{distance}").execute() print(f"tts over {result}") asyncio.get_running_loop().run_in_executor(None, asyncio.get_running_loop().stop) if __name__ == '__main__': device: WiFiDevice = asyncio.get_event_loop().run_until_complete( test_get_device_by_name()) if device: asyncio.get_event_loop().run_until_complete(test_connect(device)) asyncio.get_event_loop().run_until_complete(test_start_run_program()) asyncio.get_event_loop().run_until_complete( test_ObserveInfraredDistance()) asyncio.get_event_loop().run_forever() asyncio.get_event_loop().run_until_complete(shutdown())