Page 1 of 1

【已解决】TLSR8258 zigbee sdk 上报自定义DP失败

Posted: 2022年 Dec 5日 10:00
by 梁修道

基于temp_hum_lcd_sensor例程开发

已经在package.json中将设备模型改为TZ3210
设备端可以正常从dev_msg_recv_callback收到自定义DP(101)的下发数据
问题:自定义数据上报失败,导致面板不更新
上报代码如下:

//调用

Code: Select all

dev_report_private_temp_unit(ep, temp_scale);

//定义

Code: Select all


void dev_report_private_msg(uint8_t ep, uint8_t len, uint8_t *data, uint8_t command_id, SEND_QOS_T qos) {
    dev_send_data_t send_data;
    memset(&send_data, 0, sizeof(dev_send_data_t));
    send_data.zcl_id = 0;
    send_data.qos = qos;
    send_data.commmand_type = ZCL_COMMAND_CLUSTER_SPEC_CMD;
    send_data.direction = ZCL_DATA_DIRECTION_SERVER_TO_CLIENT;
    send_data.command_id = command_id;
    send_data.addr.mode = SEND_MODE_GW;
    send_data.addr.type.gw.cluster_id = CLUSTER_PRIVATE_TUYA_CLUSTER_ID;
    send_data.addr.type.gw.src_ep = ep;
    send_data.delay_time = 0;
    send_data.random_time = 0;
    send_data.data.private.len = len;
    memcpy((send_data.data.private.data), data, len);
    dev_zigbee_send_data(&send_data, NULL, 2000);
}

void dev_report_private_temp_unit(uint8_t endpoint, uint8_t unit)
{
	 const uint8_t t_msg_len = 7;
	 uint8_t *data = NULL;

 if (0xFFFF == sequence_num)
 {
	 sequence_num = 0;
 }
 else
 {
	 sequence_num ++;
 }
 data = malloc(t_msg_len * sizeof(uint8_t));
 if (data)
 {
	  memset(data, 0x00, t_msg_len);
	  data[0] = (uint8_t)(sequence_num >> 8);
	  data[1] = (uint8_t)(sequence_num);
	  data[2] = 101;
	  data[3] = 4; //DT_ENUM = 4
	  data[4] = 0;
	  data[5] = 0x01;
	  data[6] = unit;
	  //TY_MODULE_DATA_REPORT_CMD 0x06
	  dev_report_private_msg(endpoint, t_msg_len, data, 0x06, QOS_1);
	  free(data);
 }
}

Re: TLSR8258 zigbee sdk 上报自定义DP失败

Posted: 2022年 Dec 5日 10:13
by 马小勤

提供一下设备的pid及入网后的设备id,有设备的抓包日志可以更好分析


Re: 【求助】TLSR8258 zigbee sdk 上报自定义DP失败

Posted: 2022年 Dec 5日 17:41
by 梁修道

pid:ncw88jfq,设备id:6c6927ed645199f46fxqpo 谢谢


Re: 【求助】TLSR8258 zigbee sdk 上报自定义DP失败

Posted: 2022年 Dec 5日 18:24
by 梁修道

另外抓包要怎么抓?


Re: 【求助】TLSR8258 zigbee sdk 上报自定义DP失败

Posted: 2022年 Dec 6日 14:19
by 马小勤
梁修道 2022年 Dec 5日 17:41

pid:ncw88jfq,设备id:6c6927ed645199f46fxqpo 谢谢

dev_report_private_msg 中的dev_zigbee_send_data(&send_data, NULL, 2000)函数,打印观察下 发送失败的返回原因 NULL参数的地方是一个发送函数的回调接口


Re: 【求助】TLSR8258 zigbee sdk 上报自定义DP失败

Posted: 2022年 Dec 7日 13:23
by 梁修道

你好 打印日志是这样

b4248541-2fbb-48d6-9163-474b0f1abe22.jpg

显示成功的,还有什么可能性导致app没获取呢


Re: 【求助】TLSR8258 zigbee sdk 上报自定义DP失败

Posted: 2022年 Dec 7日 17:12
by 马小勤
梁修道 2022年 Dec 7日 13:23

你好 打印日志是这样
b4248541-2fbb-48d6-9163-474b0f1abe22.jpg
显示成功的,还有什么可能性导致app没获取呢

你用的面板是涂鸦的,温标切换有标准dp的,好像是dp9,透传的dp面板无法支持