|
|
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 |
|
|
|
81f31f15a5
|
加入 pjlink 控制
|
2025-02-28 20:34:50 +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 |
|