| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import time
- from application.wled_thread import start_exhibit_led_effect, stop_led_effect
- from hardware.kodi_module import KodiClientManager
- from hardware.wled_controller_module import WledController
- from hardware.wled_enum import LEDBrightness, LEDEffectType, RGBColor
- from utils.logger_config import logger
- def set_wled_state():
- wled_controller = WledController()
- wled_state = wled_controller.get_wled_state()
- wled_state.power = True
- wled_state.set_global_brightness(LEDBrightness.MAXIMUM.value)
- segment_0 = wled_controller.get_segment_by_id(0)
- segment_0.set_color(RGBColor.WHITE.rgb_tuple)
- segment_0.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
- segment_1 = wled_controller.get_segment_by_id(1)
- segment_1.set_color(RGBColor.WHITE.rgb_tuple)
- segment_1.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
- segment_2 = wled_controller.get_segment_by_id(2)
- segment_2.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
- segment_2.set_color(RGBColor.WHITE.rgb_tuple)
- segment_3 = wled_controller.get_segment_by_id(3)
- segment_2.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
- segment_3.set_color(RGBColor.WHITE.rgb_tuple)
- segment_3.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
- segment_3.set_color(RGBColor.WHITE.rgb_tuple)
- segment_4 = wled_controller.get_segment_by_id(4)
- segment_4.set_color(RGBColor.WHITE.rgb_tuple)
- segment_4.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
- wled_controller.send_state(wled_state)
- # 使用示例
- def test_wled_effect():
- # 测试展品3的灯效
- logger.info("启动展品3的灯效...")
- success = start_exhibit_led_effect(3)
- logger.info(f"启动结果: {success}")
-
- # 等待一段时间
- time.sleep(15)
-
- # 停止灯效
- logger.info("停止灯效...")
- stop_led_effect()
- logger.info("测试完成")
- def play_video():
- # 从 config.yaml 读取 Kodi 服务器配置
- kodi_client_manager = KodiClientManager()
- # 选择要播放的视频索引 (例如,使用第一个视频,索引为 0)
- kodi_client_manager.sync_play_video(kodi_client_manager.kodi_clients, kodi_client_manager.video_infos[1].video_path)
- logger.info("开始一次同步播放...")
- def play_url_image():
- kodi_client_manager = KodiClientManager()
- kodi_client_manager.play_url_image_on_client(kodi_client_manager.kodi_clients[0], "https://image.baidu.com/search/detail?adpicid=0&b_applid=12120618120285162411&bdtype=0&commodity=©right=&cs=766916511%2C2442144840&di=7562963243866521601&fr=click-pic&fromurl=http%253A%252F%252Fwww.douyin.com%252Fnote%252F7404637882255805759&gsm=1e&hd=&height=0&hot=&ic=&ie=utf-8&imgformat=&imgratio=&imgspn=0&is=3908015339%2C2306624355&isImgSet=&latest=&lid=f3a5b35900f977dd&lm=&objurl=https%253A%252F%252Fp3-pc-sign.douyinpic.com%252Ftos-cn-i-0813c001%252Fo4IuiAZjBXAcOFCxsvgiPAiIA98PRBDEAKDBg~tplv-dy-aweme-images%253Aq75.webp&os=3908015339%2C2306624355&pd=image_content&pi=0&pn=0&rn=1&simid=766916511%2C2442144840&tn=baiduimagedetail&width=0&word=%E5%9B%BE%E7%89%87&z=")
- def play_rtsp_video():
- kodi_client_manager = KodiClientManager()
- kodi_client_manager.play_rtsp_video_on_client(kodi_client_manager.kodi_clients[0], "rtsp://admin:Aa147258@192.168.188.61:554/Streaming/Channels/1")
- kodi_client_manager.play_rtsp_video_on_client(kodi_client_manager.kodi_clients[1], "rtsp://admin:Aa147258@192.168.188.62:554/Streaming/Channels/1")
- def revoke_individual_state():
- kodi_client_manager = KodiClientManager()
- kodi_client_manager.revoke_individual_state()
- logger.info("撤销所有客户端的独立状态")
- def check_all_kodi_clients_online():
- kodi_client_manager = KodiClientManager()
- offline_indices = kodi_client_manager.check_all_kodi_clients_online()
- if offline_indices:
- logger.info(f"不在线的kodi客户端索引: {offline_indices}")
- else:
- logger.info("所有kodi客户端都在线")
- if __name__ == "__main__":
- check_all_kodi_clients_online()
|