Repository navigation
新增设备
| 设备 | 类型 | 贡献者 |
|---|---|---|
| MCHOSE K7 V2 Ultra+ | 鼠标 | @whitzard0421 |
| MCHOSE A5 V3 | 鼠标 | @koobzx |
| TAIDU TSG809 | 鼠标 | @ptaritsu |
| ROG Delta II、Pelta | 耳机 | @Cantrarella |
四位都在真实硬件上逆向并验证过,代码里保留了各自的协议实现。
修复:MCHOSE 偶发读成 0%
接收器在回电前会先回显一次查询帧,旧代码把它当成了回复:
TX 13 4A 01 00 00 ... ← 查询
RX 13 4A 01 00 00 ... ← 回显![5] 是 0,不是电量
RX 13 4A 01 00 02 62 01 ... ← 真正的回复
现在会跳过回显,只接受完整校验的回复:
if (p.Length == 20 && p[4] == 0 && p[19] == Checksum(p)) continue;
if (TryParseBattery(p, out percent, out charging)) return p;顺带修了两个同源问题:
- 电量 > 100 时不再静默截断成 100,改为报告「电量回复无效」
- 充电状态改读
frame[6]的高四位(低位是 fullStatus)
如果之前偶尔看到 K99 v2 显示 0% 然后刷新一次就恢复正常,那就是这个 bug。
界面:统一回退名
设备匹配上但查不到型号时,不再显示 PID_XXXX 这类开发者向的占位,改用大类:
| 品牌 | 回退名 |
|---|---|
| Logitech | Mouse / Keyboard(按设备名判断) |
| MCHOSE 键盘 | Keyboard |
| MCHOSE A5 | Mouse |
| Razer | Mouse |
| TAIDU | Mouse |
| ROG 耳机 | Headset |
精确 PID 匹配的设备(K7 V2 Ultra+、ATK、IMECOO、ROG 键盘、雷蛇耳机)保持写死型号——
它们只认一个 PID,不存在「认错」的可能。
另外把 DELTA II KJP 合并成了 DELTA II。
完整文件
Voltide.exe(8.32 MB,单文件,无需安装)
要求 Windows 10 / 11 + .NET Framework 4.8