目前在音乐模式,播放音乐,通过串口可以看到收到的数据在变化,但是不知道该怎么处理,可以提供一份相关文档介绍吗?
[已解决]照明灯的音乐模式下发数据协议
Re: [求助]照明灯的音乐模式下发数据协议
如下为压缩协议
如下为具体的解压代码(涂鸦IDE上light demo有相关源码),解压完就是iot平台里面产品公版音乐dp格式了
Code: Select all
int ty_light_basis_u_snprintf(char *buf, unsigned int size,const char *format, ...)
{
int n=0;
va_list args;
va_start(args, format );
n=print(&buf, format, args);
if(n>=size)
{
buf[size-1]=0;
n=size-1;
}
return n;
}
Code: Select all
OPERATE_LIGHT ty_light_basis_tools_music_data_decompress(const IN u8* input_buf, const IN u32 input_buf_len, OUT char* output_str)
{
OPERATE_LIGHT opRet = 1;
u8 output_str_tmp[22] = {0};
if(NULL == input_buf || NULL == output_str) {
return LIGHT_INVALID_PARM;
}
u16 val_H, val_S, val_V, val_L, val_T = 0;
u8 change_mode = (input_buf[0] >> 7) & 0x01;
val_H = (((input_buf[0] >> 6) & 0x01) << 8) + input_buf[1];
val_S = (((input_buf[0] >> 2) & 0x03) << 8) + input_buf[2];
val_V = ((input_buf[0] & 0x03) << 8) + input_buf[3];
memset(output_str_tmp, 0, 22);
ty_light_basis_u_snprintf(output_str_tmp, 22, "%01x%04x%04x%04x%04x%04x", change_mode, val_H, val_S, val_V, val_L, val_T);
strncpy(output_str, output_str_tmp, 21);
return LIGHT_OK;
}
解压完后的数据格式
Re: [求助]照明灯的音乐模式下发数据协议
前四个字节是涂鸦mesh vendor model里标准dp的格式,只需要后四个字节数据解压
第一个字节 01 代表DP点,固定的
第二个字节 08 代表dp序号
第三个字节 00 代表raw类型数据
第四个字节 04 代表长度
如之前回复,可以通过IDE下载涂鸦light demo,里面有完整源码
Re: [求助]照明灯的音乐模式下发数据协议
好的,非常感谢,主要是我司内外网隔离(还需要IT装),不太方便安装和使用IDE,因此看不了该部分源码