This commit is contained in:
2026-02-09 00:25:07 +08:00
commit 85ed0946c8
12 changed files with 756 additions and 0 deletions

62
utils/const.go Normal file
View File

@@ -0,0 +1,62 @@
package utils
// --- 硬件识别常量 ---
// RAZER_VID (Vendor ID) 是雷蛇在 USB 协会注册的厂商唯一识别码
const RAZER_VID = 0x1532
// RAZER_DEVICES 将产品 ID (PID) 映射到具体的设备型号名称
var RAZER_DEVICES = map[uint16]string{
0x0A24: "雷蛇猎魂光轮 V3 竞技版 (BlackWidow V3 TKL)",
0x0013: "Razer Orochi 2011 (八岐大蛇)",
}
// RAZER_DEVICE_TYPES 定义设备的分类,用于后续逻辑区分键盘或鼠标
var RAZER_DEVICE_TYPES = map[uint16]string{
0x0A24: "keyboard",
0x0013: "mouse",
}
// RAZER_TRANSACTION_IDS 事务 ID用于协议握手确保指令被正确识别
var RAZER_TRANSACTION_IDS = map[uint16]uint8{
0x0A24: 0x1F,
0x0013: 0xFF,
}
// --- 协议报文配置 ---
// REPORT_LEN 定义了发送给 USB 设备的标准报文长度(通常为 90 字节)
const REPORT_LEN = 90
// VARSTORE 指向设备的非易失性存储区域,用于断电后保存配置
const VARSTORE = 0x01
// --- 灯效模式常量 (鼠标) ---
const MOUSE_EFFECT_STATIC = 0x01 // 鼠标:常亮模式
const MOUSE_EFFECT_BREATHING = 0x02 // 鼠标:呼吸模式
const MOUSE_EFFECT_WAVE = 0x03 // 鼠标:波浪模式
const MOUSE_EFFECT_REACTIVE = 0x04 // 鼠标:响应模式(点击触发)
// --- 灯效模式常量 (键盘) ---
const KBD_EFFECT_STATIC = 0x01 // 键盘:常亮模式
const KBD_EFFECT_BREATHING = 0x02 // 键盘:呼吸模式
const KBD_EFFECT_WAVE = 0x03 // 键盘:波浪模式
const KBD_EFFECT_REACTIVE = 0x04 // 键盘:响应模式
const KBD_EFFECT_OFFLIGHTS = 0x099 // 键盘:关灯模式
// --- 指令集参数 (鼠标) ---
const MOUSE_SCROLL_WHEEL_LED = 0x01 // 鼠标滚轮灯光控制索引
const MOUSE_CMD_CLASS = 0x0F // 鼠标指令分类 (Command Class)
const MOUSE_CMD_ID = 0x02 // 鼠标指令标识 (Command ID)
const MOUSE_DATA_SIZE = 9 // 鼠标数据包的有效负载长度
// --- 指令集参数 (键盘) ---
const KBD_BACKLIGHT_LED = 0x05 // 键盘背光灯光控制索引
const KBD_CMD_CLASS = 0x0F // 键盘指令分类 (Command Class)
const KBD_CMD_ID = 0x02 // 键盘指令标识 (Command ID)
const KBD_DATA_SIZE = 9 // 键盘数据包的有效负载长度