蓝牙学习之亮度调节

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% → 符合一半亮度

相关推荐
莫非王土也非王臣5 小时前
深度学习之对比学习
人工智能·深度学习·学习
Wzx1980125 小时前
doker深学习
学习·docker
InterestOriented6 小时前
破解银发学习痛点 兴趣岛 “普惠 + 品质” 模式打造积极老龄化范本
大数据·人工智能·学习
HyperAI超神经7 小时前
IQuest-Coder-V1:基于代码流训练的编程逻辑增强模型;Human Face Emotions:基于多标注维度的人脸情绪识别数据集
人工智能·深度学习·学习·机器学习·ai编程
testpassportcn7 小时前
UiPath-ADPV1 認證介紹|Automation Developer Professional v1
网络·学习·改行学it
生擒小朵拉7 小时前
ROS1学习笔记(二)
笔记·学习
Gorgous—l9 小时前
数据结构算法学习:LeetCode热题100-动态规划篇(下)(单词拆分、最长递增子序列、乘积最大子数组、分割等和子集、最长有效括号)
数据结构·学习·算法
窗边鸟11 小时前
小白日记之java方法(java复习)
java·学习
魔芋红茶11 小时前
Spring Security 学习笔记 4:用户/密码认证
笔记·学习·spring
爱宁~12 小时前
UnityShader学习笔记[二百九十九]UGUI中的Mask遮罩半透明Shader
笔记·学习