【已解决】[IPC SDK]IPC_DEMO_5.x AP配网问题

IPC/NVR/可视门铃等具备多媒体能力的设备,扫地机/AGV等机器人设备


Martin
Posts: 49

fallen-queen 2023年 Feb 21日 13:36
fallen-queen 2023年 Feb 21日 10:56
Martin 2023年 Feb 20日 17:51

这个log

看了一下,tuya_adapter_wifi_get_work_mode接口返回值有点问题,配网结束后,WIFI Set Mode 2(STATION模式),但是
tuya_adapter_wifi_get_work_mode接口返回仍然是3。
AP配网.png

先一步步来,修复一下这里呢?

Attachments
AP_log_mode1_new.txt
(49.45 KiB) Downloaded 59 times
User avatar
fallen-queen
Posts: 140

Re: [IPC SDK]IPC_DEMO_5.x AP配网问题

不好意思,tuya_adapter_wifi_station_connect第一行return 0直接返回了,删除后再看一下哈。

捕获.PNG
Martin
Posts: 49

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 44 times
User avatar
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状态,需要根据实际的网络连接状态进行适配

捕获.PNG
Martin
Posts: 49

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;

}

我是这样写的,可以吗

User avatar
fallen-queen
Posts: 140

Re: [IPC SDK]IPC_DEMO_5.x AP配网问题

感觉有问题,没连前端路由器,stat需要WSS_IDLE状态,只有真的连上路由器拿到IP后,才能设置成WSS_GOT_IP。

User avatar
fallen-queen
Posts: 140

Re: [IPC SDK]IPC_DEMO_5.x AP配网问题

Martin 2023年 Feb 22日 10:47
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;

}

我是这样写的,可以吗

这样写还有另外的问题,如果设备正在连路由器的过程中,没拿到IP地址,这里的stat直接变成WSS_CONN_FAIL,应该是设置成WSS_CONNECTING状态

Martin
Posts: 49

Re: [IPC SDK]IPC_DEMO_5.x AP配网问题

fallen-queen 2023年 Feb 22日 11:04
Martin 2023年 Feb 22日 10:47
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;

}

我是这样写的,可以吗

这样写还有另外的问题,如果设备正在连路由器的过程中,没拿到IP地址,这里的stat直接变成WSS_CONN_FAIL,应该是设置成WSS_CONNECTING状态

那要怎么样改?这是按照你们的文档改的。
https://developer.tuya.com/cn/docs/iot- ... p8ftgfkt96

User avatar
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
捕获.PNG
Martin
Posts: 49

Re: [IPC SDK]IPC_DEMO_5.x AP配网问题

fallen-queen 2023年 Feb 22日 11:41

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;

}

感谢,已经连上网络了。
不过有个问题请教下,我把APP端的设备信息删掉了。重新配网怎么操作?我这边重新运行程序没有进入配网流程。

Post Reply