fallen-queen 2023年 Feb 21日 13:36fallen-queen 2023年 Feb 21日 10:56看了一下,tuya_adapter_wifi_get_work_mode接口返回值有点问题,配网结束后,WIFI Set Mode 2(STATION模式),但是
tuya_adapter_wifi_get_work_mode接口返回仍然是3。
AP配网.png先一步步来,修复一下这里呢?
【已解决】[IPC SDK]IPC_DEMO_5.x AP配网问题
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
- Attachments
-
- AP_log_mode1_new.txt
- (49.45 KiB) Downloaded 162 times
- fallen-queen
- Posts: 140
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
不好意思,tuya_adapter_wifi_station_connect第一行return 0直接返回了,删除后再看一下哈。
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
fallen-queen 2023年 Feb 21日 18:35不好意思,tuya_adapter_wifi_station_connect第一行return 0直接返回了,删除后再看一下哈。
捕获.PNG
你好!去掉那个return 0;也是一样的。
log没有exec_cmd的打印
- Attachments
-
- AP_log_mode1_New20230221.txt
- (47.09 KiB) Downloaded 159 times
- fallen-queen
- Posts: 140
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
麻烦看一下tuya_adapter_wifi_station_get_status,stat的取值是多少?在没有连路由器前,需要设置成WSS_IDLE,连上路由器拿到IP地址后,需要设置成WSS_GOT_IP状态,需要根据实际的网络连接状态进行适配
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
fallen-queen 2023年 Feb 22日 09:55麻烦看一下tuya_adapter_wifi_station_get_status,stat的取值是多少?在没有连路由器前,需要设置成WSS_IDLE,连上路由器拿到IP地址后,需要设置成WSS_GOT_IP状态,需要根据实际的网络连接状态进行适配
捕获.PNG
//note:High frequency interface
OPERATE_RET tuya_adapter_wifi_station_get_status(OUT WF_STATION_STAT_E *stat)
{
NW_IP_S ip = {0};
Code: Select all
if (stat == NULL) {
printf("invalid param");
return OPRT_INVALID_PARM;
}
if (OPRT_OK == tuya_adapter_wifi_get_ip(WF_STATION, &ip)) {
*stat = WSS_GOT_IP;
} else {
*stat = WSS_CONN_FAIL;
}
//Be sure to return in real time
//Reserved
return OPRT_OK;
}
我是这样写的,可以吗
- fallen-queen
- Posts: 140
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
感觉有问题,没连前端路由器,stat需要WSS_IDLE状态,只有真的连上路由器拿到IP后,才能设置成WSS_GOT_IP。
- fallen-queen
- Posts: 140
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
Martin 2023年 Feb 22日 10:47fallen-queen 2023年 Feb 22日 09:55麻烦看一下tuya_adapter_wifi_station_get_status,stat的取值是多少?在没有连路由器前,需要设置成WSS_IDLE,连上路由器拿到IP地址后,需要设置成WSS_GOT_IP状态,需要根据实际的网络连接状态进行适配
捕获.PNG//note:High frequency interface
OPERATE_RET tuya_adapter_wifi_station_get_status(OUT WF_STATION_STAT_E *stat)
{
NW_IP_S ip = {0};Code: Select all
if (stat == NULL) { printf("invalid param"); return OPRT_INVALID_PARM; } if (OPRT_OK == tuya_adapter_wifi_get_ip(WF_STATION, &ip)) { *stat = WSS_GOT_IP; } else { *stat = WSS_CONN_FAIL; } //Be sure to return in real time //Reserved return OPRT_OK;
}
我是这样写的,可以吗
这样写还有另外的问题,如果设备正在连路由器的过程中,没拿到IP地址,这里的stat直接变成WSS_CONN_FAIL,应该是设置成WSS_CONNECTING状态
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
fallen-queen 2023年 Feb 22日 11:04Martin 2023年 Feb 22日 10:47fallen-queen 2023年 Feb 22日 09:55麻烦看一下tuya_adapter_wifi_station_get_status,stat的取值是多少?在没有连路由器前,需要设置成WSS_IDLE,连上路由器拿到IP地址后,需要设置成WSS_GOT_IP状态,需要根据实际的网络连接状态进行适配
捕获.PNG//note:High frequency interface
OPERATE_RET tuya_adapter_wifi_station_get_status(OUT WF_STATION_STAT_E *stat)
{
NW_IP_S ip = {0};Code: Select all
if (stat == NULL) { printf("invalid param"); return OPRT_INVALID_PARM; } if (OPRT_OK == tuya_adapter_wifi_get_ip(WF_STATION, &ip)) { *stat = WSS_GOT_IP; } else { *stat = WSS_CONN_FAIL; } //Be sure to return in real time //Reserved return OPRT_OK;
}
我是这样写的,可以吗
这样写还有另外的问题,如果设备正在连路由器的过程中,没拿到IP地址,这里的stat直接变成WSS_CONN_FAIL,应该是设置成WSS_CONNECTING状态
那要怎么样改?这是按照你们的文档改的。
https://developer.tuya.com/cn/docs/iot- ... p8ftgfkt96
- fallen-queen
- Posts: 140
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
demo代码只是一个参考,不同硬件平台是要根据实际情况适配的。
建议修改如下:
static int station_connect = 0;
OPERATE_RET tuya_adapter_wifi_station_get_status(WF_STATION_STAT_E *stat)
{
NW_IP_S ip = {0};
Code: Select all
if (stat == NULL) {
PR_ERR("invalid param");
return OPRT_INVALID_PARM;
}
if (!station_connect) {
*stat = WSS_IDLE;
return OPRT_OK;
}
if (OPRT_OK == tuya_adapter_wifi_get_ip(WF_STATION, &ip)) {
*stat = WSS_GOT_IP;
} else {
*stat = WSS_CONN_FAIL;
}
return OPRT_OK;
}
OPERATE_RET tuya_adapter_wifi_station_connect(IN CONST CHAR_T *ssid,IN CONST CHAR_T *passwd)
{
station_connect = 1;
Code: Select all
/// 连前端路由器的逻辑
return OPRT_OK;
}
- Attachments
-
Re: [IPC SDK]IPC_DEMO_5.x AP配网问题
fallen-queen 2023年 Feb 22日 11:41demo代码只是一个参考,不同硬件平台是要根据实际情况适配的。
建议修改如下:
static int station_connect = 0;
OPERATE_RET tuya_adapter_wifi_station_get_status(WF_STATION_STAT_E *stat)
{
NW_IP_S ip = {0};Code: Select all
if (stat == NULL) { PR_ERR("invalid param"); return OPRT_INVALID_PARM; } if (!station_connect) { *stat = WSS_IDLE; return OPRT_OK; } if (OPRT_OK == tuya_adapter_wifi_get_ip(WF_STATION, &ip)) { *stat = WSS_GOT_IP; } else { *stat = WSS_CONN_FAIL; } return OPRT_OK;
}
OPERATE_RET tuya_adapter_wifi_station_connect(IN CONST CHAR_T *ssid,IN CONST CHAR_T *passwd)
{
station_connect = 1;Code: Select all
/// 连前端路由器的逻辑 return OPRT_OK;
}
感谢,已经连上网络了。
不过有个问题请教下,我把APP端的设备信息删掉了。重新配网怎么操作?我这边重新运行程序没有进入配网流程。