Skip to content

Voltide v2.1.4

Latest

Choose a tag to compare

@sdparklab sdparklab released this 03 Nov 18:15
6f36629

新增设备

设备 类型 贡献者
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