Commit Graph

50 Commits

Author SHA1 Message Date
1f527dce98 refactor(middleware): 调整中间件执行顺序和代码格式化
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
- 调整中间件执行顺序:将 TimeoutOver 移至 SoundStart 之前,确保超时检查在音频播放前生效
- 简化 BGM 停止逻辑:移除 select 语句中的多余花括号
- 修正导入顺序:将 sync 标准库导入置于第三方库之前

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 16:39:36 +08:00
e31fca22c8 fix: 修复待机控制器的 context 使用和忙循环问题
- interval: 添加 Sleep 避免默认分支的忙循环(CPU 100%)
- cron: 使用 context.Background() 确保定时任务完整执行,不受外部取消影响
- wait_card: 使用 context.Background() 确保读卡器监听完整执行

这些修复确保了关键操作能够完整运行,同时避免 CPU 资源浪费。
2026-04-08 14:25:56 +08:00
e4c34f0eec refactor(tts): TTS 极简重构与代码质量提升
## 核心改进

### TTS 模块重构
- 统一 API,仅保留 Sound(ctx, text) 方法
- 优化日志,添加 [TTS] 前缀和结构化字段
- 实现互斥等待:同时只播放一个,新请求等待旧播放完成
- 响应 context 取消:超时或断开时立即停止播放
- 移除全局 context 存储,改为参数传递
- 简化实例化:New(config) 无需传入 context

### 代码质量提升
- 修复 PlayWav/PlayMP3 的死循环 bug(context 取消时缺少 return)
- 修复 standby_ctrl/pause.go 的忙循环(添加 Sleep 避免CPU 100%)
- 添加关键路径错误传播(only_video.go 不再忽略播放错误)
- 新增 pkg/errorsx/handler.go 统一错误处理工具

## 代码优化
- TTS 代码从 234 行精简到 166 行(减少 29%)
- 移除冗余状态管理(playing 标志、等待循环)
- 利用互斥锁的阻塞特性实现优雅等待
- 保持简洁易读的代码风格

## 行为说明
 同时只能播放一个 TTS(互斥)
 新请求等待当前播放完成(不打断)
 响应 context 取消(超时停止)
 日志完善,便于排查问题

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 14:05:16 +08:00
2331d0c73f fix(tts): 修复 TTS 播放卡死问题并增强日志
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
- 添加 SoundWithContext 方法,使用请求 context 而非全局 context
- 修复 TTS 使用服务器全局 context 导致无法取消的问题
- 添加详细的诊断日志(解码、播放、TTS 合成各阶段)
- 检测并记录 TTS 合成数据为空的情况

修复前 TTS 播放使用全局 context,当播放卡住时无法通过超时
或取消机制中断,导致后续任务永远无法执行。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 12:07:39 +08:00
4349413887 refactor(utils): 禁用屏幕开关并优化 xset 查找逻辑
- 注释掉所有 BlankOpen/BlankClose 调用,启动不再关屏
- 将 xset 路径查找改为 init + sync.Once 缓存,避免重复执行
- 清理未使用的 utils 导入

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-07 16:52:33 +08:00
2d5d3919e2 降级日志 2025-09-26 16:48:11 +08:00
ec48fad615 对投影机打开状态,每半小时轮询检查 2025-04-29 14:15:02 +08:00
e1384504f1 增加待机报文缓存,无网状态也能执行待机任务;投影仪指令结果以设备状态为准 2025-04-29 13:48:35 +08:00
4189705922 优化逻辑 2025-03-13 19:18:10 +08:00
752446e502 激光联动控制完成 2025-03-12 19:13:35 +08:00
febcdfdbf7 mqtt加入认证,优化视频播放与浏览器 2025-03-07 16:04:19 +08:00
c71e8bc13d 修复投影仪控制 2025-03-05 11:03:19 +08:00
363047c078 启动时打印IP地址 2025-03-01 15:25:00 +08:00
6d52ddb572 在订阅之后再连接mqtt 2025-03-01 15:05:53 +08:00
53d9df6e0a 用 vlc 替换 ffplay 的播放方式用来修复视频播放问题 2025-03-01 13:28:57 +08:00
81f31f15a5 加入 pjlink 控制 2025-02-28 20:34:50 +08:00
3a2fc431ac 加入等待继电器释放,加入程序停止执行时释放所有资源 2025-02-28 17:05:07 +08:00
4973b8471e 接入腾讯云日志服务 2025-02-28 12:34:13 +08:00
f251df5ce3 稳定发布1.0.0 2025-02-27 17:41:14 +08:00
b36e67f826 优化 2025-02-27 13:53:15 +08:00
6e4bf4a2c0 优化 2025-02-27 11:42:37 +08:00
8780f8555e 解决部分已知bug 2025-02-27 11:36:40 +08:00
593d7758bf 播放游戏时,停止待机任务 2025-02-26 19:45:47 +08:00
121c7706fc 将初始屏幕的控制放到最前方用以解决屏幕保留消息触发的屏幕控制被覆盖 2024-12-31 17:38:18 +08:00
ff97e25a55 完善背光控制,优先使用 xset 控制。完成浏览器展示 2024-12-30 12:16:10 +08:00
73571c923a 完成发卡关卡全部功能 2024-12-23 14:18:16 +08:00
c4f12f8cca 适配继电器空的情况 2024-12-19 16:44:58 +08:00
b4913d63b3 规范串口通讯 2024-12-19 10:49:02 +08:00
df9dbb0926 继电器、读卡器,都用统一的modbus协议 2024-12-12 10:30:21 +08:00
25cb34f6f5 发卡关卡的读卡流程完成 2024-12-10 17:40:59 +08:00
193fa806c2 游戏节点配置嵌入在一个配置文件中 2024-12-10 16:41:16 +08:00
37fb40672a 初步完成龙台的读卡逻辑 2024-12-09 18:28:36 +08:00
aa634c8860 音色可配置 2024-11-26 17:51:40 +08:00
4df77f15d9 等待插卡逻辑完成 2024-11-22 14:48:05 +08:00
2886009d4d 将指针配置name也设定为可配置 2024-11-21 17:29:32 +08:00
88f7d55930 完成授书游戏节点功能 2024-11-21 17:23:07 +08:00
4ea0af5bd7 使用设计模式优化发卡机 2024-11-20 13:54:05 +08:00
480e9ab6d5 初步完成接收发卡报文 2024-11-19 18:34:38 +08:00
28291598bb 完成日志输出到文件、终端多处的处理 2024-11-13 16:11:59 +08:00
9b643f4352 对点位进行锁定 2024-11-13 11:25:37 +08:00
9f40a7156e 修复停止的信号 2024-11-12 15:02:10 +08:00
cc12b60437 优化全局zap的打印,修复待机任务出现多个的情况 2024-11-12 14:47:20 +08:00
355880c3f9 优化zap 2024-11-11 18:51:39 +08:00
edb8d30605 全面替换log为zap 2024-11-08 18:42:13 +08:00
3da1fe761e 屏幕控制完成 2024-11-08 16:15:12 +08:00
660ae1326f 前三个点位所有功能已调通 2024-11-08 15:37:36 +08:00
239d542edc 完成待机基本功能 2024-11-06 16:01:03 +08:00
ab0678aa3b 待机功能基本实现 2024-11-06 15:44:35 +08:00
8e2bf7f59b 待机配置 2024-11-05 18:39:03 +08:00
f9b9beea4b 基本逻辑完成 2024-11-01 17:40:34 +08:00