【已同步】7231n做低功耗设备,下发dp异常

Wi-Fi 设备、Wi-Fi 低功耗设备、Wi-Fi BLE 双模设备、Ethernet设备、Ethernet+Wi-Fi设备等
cheng_JS
Posts: 78

1.我用ty_iot_sdk_bk7231nl_BK7231NL_2.3.1-beta.14的sdk,做的温湿度计,我在设备休眠时,切换温标,重新唤醒设备后并没有收到下发的温标dp;
VOID dev_obj_dp_cb(IN CONST TY_RECV_OBJ_DP_S dp)
{
PR_NOTICE("app_send dp_cnt:%d",dp->dps_cnt);
OPERATE_RET op_ret = OPRT_OK;
UINT_T dp_index = 0;
UINT_T app_send_dp_num = 1;
DEV_DP_TYPE_E dpid_type = DP_NOT_EXIST;
for(dp_index = 0;dp_index < app_send_dp_num;dp_index++)
{
switch (dp->dps[dp_index].dpid)
{
case 9:
PR_DEBUG("DPID_UNIO_CNT:%d",dp->dps[dp_index].value.dp_bool);
Temp_Unio_Sta = dp->dps[dp_index].value.dp_bool;
break;
default:
break; }
}
op_ret = tuya_hard_upload_wb();
if (OPRT_OK != op_ret)
{
PR_ERR("[%s] tuya_hard_upload_all_data fail,fail_num:%d",op_ret);
}
return;}
2.我想除了用gpio唤醒以外,加上4小时的定时器唤醒,但加上之后,休眠就唤醒不了了;
/

bk_deep_ctrl_param.wake_up_way = PS_DEEP_WAKEUP_GPIO|PS_DEEP_WAKEUP_RTC;
bk_deep_ctrl_param.gpio_index_map = (1 << TY_GPIOA_16)|(1 << TY_GPIOA_20);
bk_deep_ctrl_param.gpio_edge_map = 1; // 0:high level wakeup,1:low level wakeup.
bk_deep_ctrl_param.gpio_stay_lo_map = (1 << TY_GPIOA_16)|(1 << TY_GPIOA_20);
bk_deep_ctrl_param.sleep_time = 14400;
bk_deep_ctrl_param.lpo_32k_src = LPO_SELECT_ROSC;
*/

Code: Select all

bk_deep_ctrl_param.wake_up_way = PS_DEEP_WAKEUP_GPIO;
bk_deep_ctrl_param.gpio_index_map = (1 << TY_GPIOA_16)|(1 << TY_GPIOA_20); 
bk_deep_ctrl_param.gpio_edge_map = 1; // 0:high level wakeup,1:low level wakeup.
bk_deep_ctrl_param.gpio_stay_lo_map = (1 << TY_GPIOA_16)|(1 << TY_GPIOA_20);

上面被屏蔽部分的是异常的代码,下面部分是gpio唤醒正常的代码,大佬帮忙看看啥问题
附件图片是后台的设置

Attachments
7772.PNG
yingtao_33
Posts: 222

Re: 7231n做低功耗设备,下发dp异常

切换时dp 就下发了,如果设备此时不在线,这个dp控制就不生效。

cheng_JS
Posts: 78

Re: 7231n做低功耗设备,下发dp异常

1.这不是在下次唤醒的时候云端下发吗?
2.如何在GPIO唤醒的情况下再增加4小时自动唤醒的功能

Attachments
4173.PNG
09ff81b09033b3251e1907b75ee168e.jpg
cheng_JS
Posts: 78

Re: 7231n做低功耗设备,下发dp异常

我测试了一下,取消“低功耗dp缓存下发”功能后,确实是实时下发的,但勾选后就没下发了,重新上电连接云端也没下发

cheng_JS
Posts: 78

Re: 7231n做低功耗设备,下发dp异常

我测试了一下,取消“低功耗dp缓存下发”功能后,确实是实时下发的,但勾选后就没下发了,重新上电连接云端也没下发

cheng_JS
Posts: 78

Re: 7231n做低功耗设备,下发dp异常

yingtao 2023年 Jun 12日 13:50

切换时dp 就下发了,如果设备此时不在线,这个dp控制就不生效。

能否帮忙解答一下

愚者千虑必有一得
Posts: 422

Re: 7231n做低功耗设备,下发dp异常

cheng_JS 2023年 Jun 12日 14:13

我测试了一下,取消“低功耗dp缓存下发”功能后,确实是实时下发的,但勾选后就没下发了,重新上电连接云端也没下发

这个功能是这样的:对于某些带设置执行或者控制功能的传感设备(经常断电节省功耗),当设备离线时,面板的指令就无法接收到;针对这种应用场景,可以打开低功耗DP缓存下发功能,开启该功能后,面板下发会先缓存在云端,等待设备主动获取。
说明:开启低功耗DP缓存下发功能后,面板下发的控制指令只会走缓存通道,即使设备在线也是如此。

就是说开启这个功能,必须要在设备唤醒之后,主动去获取缓存DP。获取的接口是:

Code: Select all

/***********************************************************
*  函数: tuya_iot_dp_low_power_query
*  输入: dps: DP点列表
*        cnt: 输入的DP点数量
*  输出: obj_dps: 获取到的对象类型的DP点数据
*        raw_dps: 获取到的RAW类型的DP点数据
*  返回: 处理结果
***********************************************************/
OPERATE_RET tuya_iot_dp_low_power_query(IN CONST UCHAR_T *dps, IN CONST UINT_T cnt, 
                                    OUT TY_RECV_OBJ_DP_S **obj_dps, OUT TY_RECV_RAW_DP_S **raw_dps);
User avatar
chenyisong
Posts: 95

Re: 7231n做低功耗设备,下发dp异常

设备id 后几位 方便提供一下

cheng_JS
Posts: 78

Re: 【已同步】7231n做低功耗设备,下发dp异常

OPERATE_RET tuya_iot_dp_low_power_query(IN CONST UCHAR_T *dps, IN CONST UINT_T cnt,
OUT TY_RECV_OBJ_DP_S **obj_dps, OUT TY_RECV_RAW_DP_S **raw_dps);
我调用此函数获取dp数据,但传回的参数都是0,帮忙看看是不是引用错误;

unsigned char dps_Get[1] = {9};
OUT TY_RECV_OBJ_DP_S **obj_Get;
OUT TY_RECV_RAW_DP_S **dp_data_Get;

tuya_iot_dp_low_power_query(dps_Get, 1,obj_Get, dp_data_Get);
PR_NOTICE("++++++++------I got dpid: %d",obj_Get[0]->dps->dpid);
PR_NOTICE("++++++++------I got data: %d",obj_Get[0]->dps->value);
PR_NOTICE("++++++++------I got dpcnt: %d",obj_Get[0]->dps_cnt);
PR_NOTICE("++++++++------I got raw dpid: %d",dp_data_Get[0]->dpid);
PR_NOTICE("++++++++------I got raw dpcnt: %d",dp_data_Get[0]->data[0]);

串口的log;log里面可以看到下发的数据,但我不知道如何引用该参数
[06-19 14:23:00 TUYA D][lr:0x9c18b] TUYA_TLS Success Connect a3.tuyacn.com:443 CustomNet:TRUE Suit:TLS-PSK-WITH-AES-128-CBC-SHA256
[06-19 14:23:00 TUYA D][lr:0xc14df] Decode Rev:{"result":["{\"9\":\"c\"}"],"t":1687155780,"success":true}
[06-19 14:23:00 TUYA D][lr:0x9c2ff] TUYA_TLS Disconnect ENTER
[06-19 14:23:00 TUYA D][lr:0x9c363] TUYA_TLS Disconnect Success
[06-19 14:23:00 TUYA N][lr:0xb9e23] result:["{\"9\":\"c\"}"]
[06-19 14:23:00 TUYA E][lr:0xb9e3d] lp pack_dp err:-2
[06-19 14:23:00 TUYA N][lr:0x57c3f] ++++++++------I got dpid: 0
[06-19 14:23:00 TUYA N][lr:0x57c4b] ++++++++------I got data: 0
[06-19 14:23:00 TUYA N][lr:0x57c57] ++++++++------I got dpcnt: 0
[06-19 14:23:00 TUYA N][lr:0x57c63] ++++++++------I got raw dpid: 0
[06-19 14:23:00 TUYA N][lr:0x57c6f] ++++++++------I got raw dpcnt: 0

cheng_JS
Posts: 78

Re: 【已同步】7231n做低功耗设备,下发dp异常

有没有大佬帮忙看看,

Post Reply