随着涂鸦小程序的生态逐步完善,开发者越来越多,当一个新人开发者需要开发类似照明灯带这种品类时常常伴随着无法下手的窘境,为了提升外部开发者的开发体验,官方开发者整理了照明幻彩灯带这个经典品类的开发导则,从而使无论新人开发者还是熟练开发者都可以从这里找到自己想要实现的功能模块。
本文介绍幻彩灯带常见的开发功能模块:
useActions()
和 useProps()
分别可以进行 dp 的下发和读取更新,具体见 SDM文档。dp code | dp 含义 | dp 类型 | 备注 | |
switch_led | 开关 | 布尔(bool) |
const switch_dpId = 1;
ty.device.publishDps({
deviceId: 'vdevo169477319679442',
dps: { [switch_dpId]: false },
mode: 1,
pipelines: [0, 1, 2, 3, 4, 5, 6],
options: {},
success: res => {
console.log(res);
},
fail: error => {
console.log(error);
},
});
import React from 'react';
import { View } from '@ray-js/ray';
import { useProps, useActions } from '@ray-js/panel-sdk';
export default function Home() {
const switch_led = useProps(props => props.switch_led);
const actions = useActions();
return (
<View
style={{ flex: 1 }}
onClick={() => {
actions.switch_led.toggle();
}}
>
<View>switch_led: {switch_led}</View>
</View>
);
}
dp code | dp 含义 | dp 类型 | 备注 | |
bright_value | 亮度值 | 数值(value)范围(10-1000) | ||
temp_value | 冷暖值 | 数值(value)范围(0-1000) |
序号 | 名称 | 长度 | 类型 | 属性 | 备注 |
1 | 版本号 | 1 | 数值 | 0-25 5 | 默认1 |
2 | 情景模式编号 | 1 | 数值 | 0-255 | 无 |
3 | 变换方式 | 1 | 数值 | 0-255 | 无 |
4 | 单元切换间隔时间 | 1 | 数值 | 0-100 | 无 |
5 | 单元变化时间 | 1 | 数值 | 0-100 | 无 |
6 | 设置项A | 1 | 比特 | Bit0:预留标识:null10:预留1:预留Bit1:预留标识:null20:预留1:预留Bit2:拓展标识:extra10:模式1:模式Bit3:拓展标识:extra20:模式1:模式Bit4:方向标识:direction0:顺时针1:逆时针Bit5:预留标识:null30:预留1:预留Bit6:预留标识:null40:预留1:预留Bit7:段落标识:segment0:全段1:分段 | 无 |
7 | 设置项B | 1 | 比特 | Bit0:预留标识:null50:预留1:预留Bit1:预留标识:null60:预留1:预留Bit2:预留标识:null70:预留1:预留Bit3:预留标识:null80:预留1:预留Bit4:预留标识:null90:预留1:预留Bit5:预留标识:null100:预留1:预留Bit6:预留标识:null110:预留1:预留Bit7:预留标识:null120:预留1:预留 | 无 |
8 | 设置项C | 1 | 比特 | Bit0:预留标识:null50:预留1:预留Bit1:预留标识:null60:预留1:预留Bit2:预留标识:null70:预留1:预留Bit3:预留标识:null80:预留1:预留Bit4:预留标识:null90:预留1:预留Bit5:预留标识:null100:预留1:预留Bit6:预留标识:null110:预留1:预留Bit7:预留标识:null120:预留1:预留 | 无 |
9 | 亮度 | 1 | 数值 | 0-100 | 无 |
10 | 色度 | 2 | 数值 | 0-360 | 无 |
11 | 饱和度 | 1 | 数值 | 0-100 | 无 |
扩展管理
后可以看到 面板 IDE 照明情景库扩展
, 下载后按照扩展上的说明方法使用即可。序号 | 名称 | 字节数 | 标识 | 数据类型 | 字段属性 | 字段说明 |
1 | 版本号 | 1 | version | 数值 | 最大值:255 最小值:0 步距:1 倍数:0 | 无 |
2 | 本地麦克风开关 | 2 | switch | 数值 | 最大值:255 最小值:0 步距:1 倍数:0 | 无 |
3 | 音乐模式编号 | 1 | ID | 数值 | 最大值:255 最小值:0 步距:1 倍数:0 | 无 |
4 | 变化方式 | 1 | mode | 比特 | 反算 Bit0:变化方式标识:style1 0:变化方式 1:变化方式 Bit1:变化方式标识:style2 0:变化方式 1:变化方式 ... | 无 |
5 | 变化速度 | 1 | speed | 数值 | 最大值:100 最小值:1 步距:1 倍数:0 | 无 |
6 | 灵敏度 | 1 | sensitivity | 数值 | 最大值:100 最小值:1 步距:1 倍数:0 | 无 |
7 | 设置项A | 1 | setting_A | 数值 | 最大值:255 最小值:0 步距:1 倍数:0 | 无 |
8 | 设置项B | 1 | setting_B | 数值 | 最大值:255 最小值:0 步距:1 倍数:0 | 无 |
9 | 设置项C | 1 | setting_C | 数值 | 最大值:255 最小值:0 步距:1 倍数:0 | 无 |
10 | 亮度 | 1 | V | 数值 | 最大值:100 最小值:0 步距:1 倍数:0 | 无 |
11 | 色度 | 2 | H | 数值 | 最大值:360 最小值:0 步距:1 倍数:0 | 无 |
12 | 饱和度 | 1 | S | 数值 | 最大值:100 最小值:0 步距:1 倍数:0 | 无 |
扩展管理
后可以看到 面板 IDE 照明律动库扩展
, 下载后按照扩展上的说明方法使用即可。暂无
暂无
dp code | dp 含义 | dp 类型 | 备注 |
countdown | 倒计时 | 数值 | 0 - 1440 |
dpId | 含义 | dpCode | 上报下发 | 数值类型 | 属性 | 备注 |
46 (dpid) | 灯带长度(可选) | light_length | 只上报(ro) | 数值型(Value) | 数值范围: 1-10000, 间距: 1, 倍数: 0, 单位: cm | 幻彩灯带在UI面板上展示的总长度 |
47 | 灯带点数(必选) | light_pixel | 只上报(ro) | 数值型(Value) | 数值范围: 1-1024, 间距: 1, 倍数: 0 | 幻彩灯带驱动芯片总数 |
53 | 点数/长度设置(可选) | lightpixel_number_set | 可下发可上报(rw) | 数值型(Value) | 数值范围: 1-1000, 间距: 1, 倍数: 0 | 幻彩灯带裁剪之后,对长度重新进行设置 |
【灯带长度】为可选功能,如果选中了此DP点,则面板上会以长度单位(米)来显示灯带长度设置内容,如果不选中此DP点,则以点数/数量来显示灯带点数设置内容 【灯带点数】为必选功能,表示设备驱动的总芯片数量/总点数,这个DP仅上报,面板能通过这个DP点获取到设备总点数 【点数/长度设置】为可选功能,如果选中了此DP点,则面板会显示灯带长度设置的板块,用户可在 App 上进行修正调整灯带长度,来调节灯光显示范围;如果不选择此DP点,则面板上不显示灯带长度设置的内容,用户无法进行二次设置
const max = lightPixel;
const min = 10;
const max = lightPixel;
const min = 10;
// 退出时恢复workMode
const workModeCode = 'work_mode';
useUnmount(() => {
dragon.putDpData({ [workModeCode]: workMode }, { checkCurrent: false});
});
dp code | dp 含义 | dp 类型 | 备注 | |
paint_colour_data | 彩光涂抹 dp | { "type": "raw", "maxlen": 255 } |
版本号 | 调节模式 | 调节效果 | 段数 | 数据 |
1byte | 1byte | 1byte | 1byte | 见下表 |
0x00 | 0x00:白光模式 0x01:彩光模式 0x02:色卡模式 0x03:组合模式 | 0x00:无效果 0x01:段段之间有过渡 0x02:闪烁 0x03:呼吸 0x04:闪耀 | 灯带段数 | 见下表 |
调节动作 | B亮度 | T色温 |
1byte | 2byte | 2byte |
0x00:油漆桶 | 0-1000 | 0-1000 |
调节动作 | HSV | 段选 | 数据1 | 数据2 | 数据x... |
1byte | 6byte | 1byte | 1byte | 1byte | ... |
0x00:油漆桶 0X01:铅笔(点选)0X02:橡皮擦(擦除 | 彩光HSV色值(2+2+2) | 7bit:(0:连续;1:不连续)0bit-6bit:(连续时,无意义;不连续时,代表段的总数) | 连续:起始编号 不连续:段编号 | 连续:结束编号 不连续:段编号 | ... |
组合模式(预留) | 颜色1 | 颜色2 | ... |
1byte | 6byte | 6byte | ... |
0x00:均匀 | 彩光HSV色值(2+2+2) | 彩光HSV色值(2+2+2) | ... |
node_module/@ray-js/lamp-strip-light-smear/src/README.md
中描述了具体实现的逻辑