特色-灯带裁剪

功能介绍

  • 用户可在 App 上进行修正调整灯带长度,来调节灯光显示范围。

DP 协议

  • 通过多个 DP 的配合来进行灯带长度或个数显示的调节。
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点,则面板上不显示灯带长度设置的内容,用户无法进行二次设置

如何开发

  • 裁剪 DP 具体逻辑:

    • light_pixel与light_length dp都存在
      • 首次配网,light_pixel与lightpixel_number_set初始数据上报一样
      • 面板进行长度设置时需要下发 lightpixel_number_set dp,实际上是点数
      • 举个例子🌰:
        • light_length => 200cm === 2m
        • light_pixel => 100 对应的意思是在2m上有100个灯珠
        • 进行长度设置时需要转换为点数下发:
          • 比如从中间裁剪了,那么剩余长度应该为1m
            • 主要是页面展示中需要,下发时直接使用灯珠数
            • 下发值为:50 对应的灯珠数
        • 下发最大最小限制:
          • const max = lightPixel;
          • const min = 10;
    • light_pixel dp存在,light_length dp不存在
      • 首次配网,light_pixel与lightpixel_number_set初始数据上报一样
      • 面板进行长度设置时需要下发 lightpixel_number_set dp,实际上是点数
        • 举个例子🌰:
          • light_pixel => 100 对应的意思是灯带有100个灯珠
          • 直接下发对应的灯珠数据
          • 下发最大最小限制:
            • const max = lightPixel;
            • const min = 10;
  • 参考上面 DP 操作,直接下发对应 DP 值。

注意事项

  • 设备裁剪保存后,要实现在裁剪的RGB混光状态会恢复到之前运行的状态
    • 只需要重新下发设置 work_mode
// 退出时恢复workMode
const workModeCode = 'work_mode';
useUnmount(() => {
	dragon.putDpData({ [workModeCode]: workMode }, { checkCurrent: false});
});

相关物料

  • 【功能页】:
    1. 灯带裁剪功能页
  • 【组件】:无
  • 【教程】:无
  • 【SDK】:无
  • 【API】:无