Page 1 of 1
【已同步】CBU的IOTOS配网和按键问题
Posted: 2022年 Dec 14日 23:50
by wqvbdcb123
1.CBU的IOTOS SDK里调用了uya_iot_wf_gw_unactive()这个函数进入配网状态,一进入配网WIFI就复位,或APP移除设备WIFI也复位,有办法能使WIFI不复位吗?
2.SDK:ty_iot_sdk_bk7231nl_BK7231NL_2.3.1-beta.14 下面试demo 里面的按键程序,怎么没有按下再松开的键值?按下再松开的键值要怎样去实现?或者加上按下再松开的回调函数?(不想外加软件定时器检测去实现)谢谢!
typedef enum {
/** one shot */
NORMAL_KEY = 0,
/** continual shot */
SEQ_KEY,
/** long press */
LONG_KEY,
}PUSH_KEY_TYPE_E;
STATIC VOID wifi_key_process(TY_GPIO_PORT_E port,PUSH_KEY_TYPE_E type,INT_T cnt)
{
PR_DEBUG("port:%d,type:%d,cnt:%d",port,type,cnt);
OPERATE_RET op_ret = OPRT_OK;
UCHAR_T ucConnectMode = 0;
Code: Select all
if (port = WIFI_KEY_PIN) {
if (LONG_KEY == type)
{//press long enter linking network
PR_NOTICE("key long press");
if(OPRT_OK != op_ret) {
PR_ERR("tuya_iot_wf_gw_unactive op_ret:%d",op_ret);
return;
}
} else if (NORMAL_KEY == type)
{
PR_NOTICE("key normal press");
}
else
{
PR_NOTICE("key type is no deal");
}
}
return;
}
Re: CBU的IOTOS配网和按键问题
Posted: 2022年 Dec 15日 11:41
by yingtao_33
第一个问题,目前没法实现。现在设备重置,一定会伴随设备重启的。关于设备重置的详细描述请看 https://developer.tuya.com/cn/docs/iot- ... 7srci7m1jk
第二个问题 我们先内部验证一下,迟些答复
Re: CBU的IOTOS配网和按键问题
Posted: 2022年 Dec 15日 12:04
by yingtao_33
关于第二个问题,如果想要抬起触发 low_level_detect 选择 FALSE lp_tp 选择 FALLING_EDGE_TRIG 示例代码如下
Code: Select all
/* reset key config */
#define WIFI_KEY_PIN TY_GPIOA_9 /* reset button pin */
#define WIFI_KEY_TIMER_MS 100 /* key scan poll time, default 100ms */
#define WIFI_KEY_LONG_PRESS_MS 3000 /* long press time */
#define WIFI_KEY_SEQ_PRESS_MS 400
#define WIFI_KEY_LOW_LEVEL_ENABLE FALSE
/* key initiation */
KEY_USER_DEF_S key_def;
op_ret = key_init(NULL, 0, WIFI_KEY_TIMER_MS);
if (OPRT_OK != op_ret) {
PR_ERR("key init err:%d", op_ret);
return;
}
/* config key parameter */
memset(&key_def, 0, SIZEOF(key_def));
key_def.port = WIFI_KEY_PIN;
key_def.long_key_time = WIFI_KEY_LONG_PRESS_MS;
key_def.low_level_detect = WIFI_KEY_LOW_LEVEL_ENABLE;
key_def.lp_tp = FALLING_EDGE_TRIG;
key_def.call_back = wifi_key_process;
key_def.seq_key_detect_time = WIFI_KEY_SEQ_PRESS_MS;
/* register key */
op_ret = reg_proc_key(&key_def);
if (OPRT_OK != op_ret) {
PR_ERR("register WiFi key err:%d", op_ret);
}
Re: CBU的IOTOS配网和按键问题
Posted: 2022年 Dec 15日 13:37
by wqvbdcb123
low_level_detect 选择 FALSE lp_tp 选择 FALLING_EDGE_TRIG这样修改的话,可以实现长按,短按,抬起,这3种触发发方式是吧?
Re: CBU的IOTOS配网和按键问题
Posted: 2022年 Dec 15日 13:46
by yingtao_33
Re: CBU的IOTOS配网和按键问题
Posted: 2022年 Dec 15日 14:22
by wqvbdcb123
有什么办法可使3种触发方式共成?程序要做何修改?另外按键可选双边沿出发方式?
Re: CBU的IOTOS配网和按键问题
Posted: 2022年 Dec 15日 21:42
by wqvbdcb123
按键在短按的时候,有时没反应,按键程序哪里可以调反应时间?
Re: CBU的IOTOS配网和按键问题
Posted: 2023年 Feb 21日 16:38
by yangjie
wqvbdcb123 2022年 Dec 15日 21:42
按键在短按的时候,有时没反应,按键程序哪里可以调反应时间?
可能是按下松开太快了,你可以把短按检测时间调短一点,还可以在初始化的时候将那个轮询检测时间调短一点,这样会灵敏些