蓝牙学习之亮度调节

cpp 复制代码
#define LIGHTNESS_SET		        	0x4C82
#define LIGHTNESS_LINEAR_SET		    0x5082

蓝牙设置亮度的opcode有以上两种

特性 LIGHTNESS_SET LIGHTNESS_LINEAR_SET
亮度语义 感知亮度(Perceived) 线性亮度(Physical)
符合人眼? ✅ 是(Gamma 校正) ❌ 否(物理线性)
0x8000 灯看起来是"柔和的一半亮度" 灯看起来接近"全亮的 2/3"
典型用途 用户手动调光 自动化、照度控制、多灯同步

1.先将两个蓝牙设备亮度调到最低。(一个0x0002,一个0x0004)

.. lightness_0001

<0000>16:43:14:739 [INFO]:(common)ExecCmd: e8 ff 00 00 00 00 02 00 ff ff 82 4c 01 00 00

<0001>16:43:14:771 [INFO]:(GATEWAY) gateway mesh cmd sendback src:0001 dst:ffff,opcode is 4c82: 01 00 37

<0002>16:43:15:189 [INFO]:(cmd_rsp)Status Rsp______________: 02 00 01 00 82 4e 01 00

<0003>16:43:15:252 [INFO]:(cmd_rsp)Status Rsp______________: 04 00 01 00 82 4e 01 00

<0002>举例说明:

02 00:源地址 0x0002

01 00:目标地址0x0001(gateway)

82 4e:opcode → #define LIGHTNESS_STATUS 0x4E82

01 00 :当前感知亮度 → 0x0001

2.分别使用LIGHTNESS_LINEAR_SET和LIGHTNESS_SET设置0x8000

LIGHTNESS_LINEAR_SET

<0000>16:51:04:552 [INFO]:(common)ExecCmd: e8 ff 00 00 00 00 02 00 02 00 82 50 00 80 00

<0001>16:51:04:586 [INFO]:(GATEWAY) gateway mesh cmd sendback src:0001 dst:0002,opcode is 5082: 00 80 38

<0002>16:51:04:618 [INFO]:(cmd_rsp)Status Rsp______________: 02 00 01 00 82 52 01 00 00 80 4a

<0002>举例说明:

02 00:源地址 0x0002

01 00:目标地址0x0001(gateway)

82 52:opcode → #define LIGHTNESS_LINEAR_STATUS 0x5282

01 00 :当前亮度→ 0x0001

00 80:目标亮度→ 0x8000

4a:过度时间→ 10秒

编码(Hex) 二进制 含义

0x00 00000000 无默认过渡(立即执行)

0x23 00100011 3 × 100ms = 300ms

0x45 01000101 5 × 1s = 5 秒

0x81 10000001 1 × 10s = 10 秒 (0x4A也是10秒)

0xC2 11000010 2 × 10min = 20 分钟

LIGHTNESS_SET

<0003>16:51:20:702 [INFO]:(common)ExecCmd: e8 ff 00 00 00 00 02 00 04 00 82 4c 00 80 00

<0004>16:51:20:754 [INFO]:(GATEWAY) gateway mesh cmd sendback src:0001 dst:0004,opcode is 4c82: 00 80 39

<0005>16:51:20:786 [INFO]:(cmd_rsp)Status Rsp______________: 04 00 01 00 82 4e 01 00 00 80 4a

3.获取两个设备的亮度值,肉眼看亮度是不一样的,实际获取的亮度值也是不一样的

LIGHTNESS_GET

<0006>16:52:08:497 [INFO]:(common)ExecCmd: e8 ff 00 00 00 00 02 00 ff ff 82 4b

<0007>16:52:08:538 [INFO]:(GATEWAY) gateway mesh cmd sendback src:0001 dst:ffff,opcode is 4b82NULL

<0008>16:52:08:789 [INFO]:(cmd_rsp)Status Rsp______________: 02 00 01 00 82 4e 04 b5

<0009>16:52:08:901 [INFO]:(cmd_rsp)Status Rsp______________: 04 00 01 00 82 4e 00 80

4.结论:SET 是给人看的,LINEAR 是给机器算的

0x0002:0xB504=46340,46340/65535=70% → 符合接近全亮的2/3

0x0004:0x8000=32768,32768/65535=50% → 符合一半亮度

相关推荐
执笔论英雄4 小时前
【大模型学习cuda】入们第一个例子-向量和
学习
wdfk_prog4 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
Gary Studio6 小时前
rk芯片驱动编写
linux·学习
mango_mangojuice6 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
lingggggaaaa7 小时前
安全工具篇&动态绕过&DumpLsass凭据&Certutil下载&变异替换&打乱源头特征
学习·安全·web安全·免杀对抗
PP东7 小时前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
学电子她就能回来吗7 小时前
深度学习速成:损失函数与反向传播
人工智能·深度学习·学习·计算机视觉·github
AI视觉网奇9 小时前
ue 角色驱动衣服 绑定衣服
笔记·学习·ue5
wdfk_prog10 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
ZH154558913112 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter