Page 1 of 1
rv1106适配sdk wifi配网异常
Posted: 2026年 May 29日 15:10
by qf123
SDK Version:< TuyaOS V:0.0.2 BS:40.00_PT:2.3_LAN:3.5_CAD:1.0.5_CD:1.0.0 >
sdk启动设置wifi工作模式后调用获取wifi工作模式发现传出参数是数值不是地址,后续还有几个获取的地方也是这样的现象 段错误是因为sdk调用tkl_wired_get_status我解指针导致的 这是sdk初始化异常吗
OPERATE_RET tkl_wifi_get_work_mode(WF_WK_MD_E *mode)
{
printf("====================test debug \n");
sleep(1);
if(NULL == mode){
Code: Select all
printf("mode 为空\n");
return OPRT_INVALID_PARM;
}
if((unsigned long)mode < 0x10000) {
printf("[WIFI] Invalid pointer %p\n", mode);
return OPRT_INVALID_PARM;
}
printf("s_curr_work_mode = %d\n",s_curr_work_mode);
*mode = s_curr_work_mode;
printf("WIFI Get Mode %d\r\n", *mode);
sleep(1);
return OPRT_OK;
}
OPERATE_RET tkl_wired_get_status(TKL_WIRED_STAT_E *status)
{
if(status == NULL) {
return OPRT_INVALID_PARM;
}
Code: Select all
printf("tkl_wired_get_status %p\n",status);
//没有网口
*status = TKL_WIRED_LINK_DOWN;
printf("[WIRED] No wired config, return LINK_DOWN\n");
return OPRT_OK;
}
Re: rv1106适配sdk wifi配网异常
Posted: 2026年 May 29日 15:20
by 郭老庄
我没理解你的问题,贴出来的代码和附件的日志要描述什么?
Re: rv1106适配sdk wifi配网异常
Posted: 2026年 May 29日 15:23
by qf123
郭老庄 2026年 May 29日 15:20
我没理解你的问题,贴出来的代码和附件的日志要描述什么?
sdk获取不了wifi的工作状态,OPERATE_RET tkl_wifi_get_work_mode(WF_WK_MD_E *mode),我对mode解指针赋值就段错误
Re: rv1106适配sdk wifi配网异常
Posted: 2026年 May 29日 15:49
by 罗通--蜜蜂
首先AP配网不需要实现tkl_wired_get_status接口。tkl_wifi_get_work_mode该接口SDK会主动去调用,至于接口的实现,可以参数tkl层自带的代码实现。该项目已有FAE在群里支持,如果问题直接问FAE即可。
OPERATE_RET tkl_wifi_get_work_mode(WF_WK_MD_E *mode)
{
if(NULL == mode){
return OPRT_INVALID_PARM;
}
Code: Select all
FILE *pp = popen("iwconfig "WLAN_DEV, "r");
if(pp == NULL){
//printf("WIFI Get Mode Fail. Force Set Station \r\n");
*mode = WWM_STATION;
return OPRT_OK;
}
char scan_mode[10] = {0};
char tmp[256] = {0};
while (fgets(tmp, sizeof(tmp), pp) != NULL){
char *pModeStart = strstr(tmp, "Mode:");
if(pModeStart != NULL){
int x1,x2,x3,x4,x5,x6;
sscanf(pModeStart + strlen("Mode:"), "%s ", scan_mode);
break;
}
}
pclose(pp);
*mode = WWM_STATION;
if(strncasecmp(scan_mode, "Managed", strlen("Managed")) == 0){
*mode = WWM_STATION;
}
if(strncasecmp(scan_mode, "Master", strlen("Master")) == 0){
*mode = WWM_SOFTAP;
}
if(strncasecmp(scan_mode, "Monitor", strlen("Monitor")) == 0){
*mode = WWM_SNIFFER;
}
// printf("WIFI Get Mode [%s] %d\r\n", scan_mode, *mode);
}
Re: rv1106适配sdk wifi配网异常
Posted: 2026年 May 29日 15:50
by qf123