app_test.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import time
  2. from application.wled_thread import start_exhibit_led_effect, stop_led_effect
  3. from hardware.kodi_module import KodiClientManager
  4. from hardware.wled_controller_module import WledController
  5. from hardware.wled_enum import LEDBrightness, LEDEffectType, RGBColor
  6. from utils.logger_config import logger
  7. def set_wled_state():
  8. wled_controller = WledController()
  9. wled_state = wled_controller.get_wled_state()
  10. wled_state.power = True
  11. wled_state.set_global_brightness(LEDBrightness.MAXIMUM.value)
  12. segment_0 = wled_controller.get_segment_by_id(0)
  13. segment_0.set_color(RGBColor.WHITE.rgb_tuple)
  14. segment_0.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
  15. segment_1 = wled_controller.get_segment_by_id(1)
  16. segment_1.set_color(RGBColor.WHITE.rgb_tuple)
  17. segment_1.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
  18. segment_2 = wled_controller.get_segment_by_id(2)
  19. segment_2.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
  20. segment_2.set_color(RGBColor.WHITE.rgb_tuple)
  21. segment_3 = wled_controller.get_segment_by_id(3)
  22. segment_2.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
  23. segment_3.set_color(RGBColor.WHITE.rgb_tuple)
  24. segment_3.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
  25. segment_3.set_color(RGBColor.WHITE.rgb_tuple)
  26. segment_4 = wled_controller.get_segment_by_id(4)
  27. segment_4.set_color(RGBColor.WHITE.rgb_tuple)
  28. segment_4.set_effect(LEDEffectType.COLOR_RANDOM_BREATH.value)
  29. wled_controller.send_state(wled_state)
  30. # 使用示例
  31. def test_wled_effect():
  32. # 测试展品3的灯效
  33. logger.info("启动展品3的灯效...")
  34. success = start_exhibit_led_effect(3)
  35. logger.info(f"启动结果: {success}")
  36. # 等待一段时间
  37. time.sleep(15)
  38. # 停止灯效
  39. logger.info("停止灯效...")
  40. stop_led_effect()
  41. logger.info("测试完成")
  42. def play_video():
  43. # 从 config.yaml 读取 Kodi 服务器配置
  44. kodi_client_manager = KodiClientManager()
  45. # 选择要播放的视频索引 (例如,使用第一个视频,索引为 0)
  46. kodi_client_manager.sync_play_video(kodi_client_manager.kodi_clients, kodi_client_manager.video_infos[1].video_path)
  47. logger.info("开始一次同步播放...")
  48. def play_url_image():
  49. kodi_client_manager = KodiClientManager()
  50. 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=&copyright=&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=")
  51. def play_rtsp_video():
  52. kodi_client_manager = KodiClientManager()
  53. 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")
  54. 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")
  55. def revoke_individual_state():
  56. kodi_client_manager = KodiClientManager()
  57. kodi_client_manager.revoke_individual_state()
  58. logger.info("撤销所有客户端的独立状态")
  59. def check_all_kodi_clients_online():
  60. kodi_client_manager = KodiClientManager()
  61. offline_indices = kodi_client_manager.check_all_kodi_clients_online()
  62. if offline_indices:
  63. logger.info(f"不在线的kodi客户端索引: {offline_indices}")
  64. else:
  65. logger.info("所有kodi客户端都在线")
  66. if __name__ == "__main__":
  67. check_all_kodi_clients_online()