该鼠标的 LED 分为3个区域,滚轮、LOGO和下方灯条,滚轮和LOGO都有1颗灯,下方灯条有9颗。
每个 profile 可以独立保存每个区域的灯效和亮度,可以保存的灯效一共有3种,固定、RGB循环和波动。此外,还有不借助灯效,可以直接设置 LED 颜色的命令,可以用软件实现灯光效果。
相关的命令:
| 读命令 | 写命令 | 读取参数长度 | 数据参数长度 |
|---|---|---|---|
| 0x0f82 | 0x0f02 | 1(profile)+1(region) | 10 |
设置某个 profile 某个区域的灯效。灯效和亮度是独立的,可以分别设置,这个只设置灯效。灯效会保存到 profile 中,断电可以保留,切换 profile 的时候可以自动变化。
如果灯效没有起作用,可能是当前的 profile 不是设置的 profile,或者是亮度调的比较低,需要使用下面的命令把亮度调高。
读取参数中的 region 一项,可以取值:
- 0x00,写入时代表对全部区域写入
- 0x01,滚轮
- 0x04,LOGO
- 0x0a,灯带
数据参数的格式是:
- 1字节 effect
- 1字节 mode
- 1字节 speed
- 1字节 颜色个数n
- 3*n字节 颜色的 r, g, b 数值
虽然格式是上面那样子,看似有很多信息,但是实际上可能雷蛇现在更注重软件实现的灯效,板载灯效实现的特别少,我目前测试出来的只有3种,如下:
- effect = 0: 熄灭,调整亮度没作用
静态颜色:
- 1字节 effect = 1: 静态颜色
- 1字节 mode 任意
- 1字节 speed 任意
- 1字节 颜色个数 n = 1
- 3字节 颜色 r, g, b 固定颜色的数值
RGB 循环 spectrum
- 1字节 effect = 3: spectrum
- 1字节 mode = 1
- 1字节 speed 任意,对循环速度没有影响
- 1字节 颜色个数 n = 0
RGB 波浪 wave
- 1字节 effect = 4: wave
- 1字节 mode:
- mode = 0: 静止
- mode = 1: 俯视顺时针 红绿蓝变化
- mode = 2: 俯视逆时针 蓝绿红变化
- 1字节 speed 速度
- speed = 0是最快,一秒变化好多次
- speed = 0x30 大概 1.2s循环一个周期
- speed = 0xff 大概 6s循环一个周期
- 1字节 颜色个数 n = 0
此外,还有一个 effect = 8 的模式,其他参数可置为0,这个模式是配合 set_led_static 使用的,但是没有实际效果。
| 读命令 | 写命令 | 读取参数长度 | 数据参数长度 |
|---|---|---|---|
| - | 0x0f03 | 0 | 5 + 11*3 |
该命令需要配合 set_led_effect 的 effect = 8 使用,首先先设置 effect = 8,然后再发送这个命令,可以立即设置所有区域每颗灯的颜色,不会写入 flash,用来实现动画(软件效果),可以很高频率写入也没关系。
命令参数为:
- 5字节 固定内容 00 00 00 00 0a
- 11*3字节,11个颜色值,顺序为 logo,滚轮,灯条逆时针方向
| 读命令 | 写命令 | 读取参数长度 | 数据参数长度 |
|---|---|---|---|
| 0x0f84 | 0x0f04 | 1(profile)+1(region) | 1 |
给某 profile 设置(读取)某个区域 LED 的亮度。读取参数和 get_led_effect 相同,数据参数是 0~255 的值,表示亮度。