int wifi_on(rtw_mode_t mode) { int ret = 1; int timeout = 20; int idx; int devnum = 1; static int event_init = 0; if(rltk_wlan_running(WLAN0_IDX)) { printf("\n\rWIFI is already running"); return 1; } if(event_init == 0){ init_event_callback_list(); event_init = 1; } wifi_mode = mode; if(mode == RTW_MODE_STA_AP) devnum = 2; printf("\n\rInitializing WIFI ..."); for(idx=0;idx<devnum;idx++){ ret = rltk_wlan_init(idx, mode); if(ret <0) return ret; } for(idx=0;idx<devnum;idx++) rltk_wlan_start(idx); while(1) { if(rltk_wlan_running(devnum-1)) { printf("\n\rWIFI initialized\n"); /* * printf("set country code here\n"); * wifi_set_country(RTW_COUNTRY_US); */ break; } if(timeout == 0) { printf("\n\rERROR: Init WIFI timeout!"); break; } vTaskDelay(1 * configTICK_RATE_HZ); timeout --; } #if CONFIG_INIC_EN inic_start(); #endif return ret; }
void wps_judge_staion_disconnect(void) { int mode = 0; unsigned char ssid[33]; wext_get_mode(WLAN0_NAME, &mode); switch(mode) { case IW_MODE_MASTER: //In AP mode rltk_wlan_deinit(); rltk_wlan_init(0,RTW_MODE_STA); rltk_wlan_start(0); break; case IW_MODE_INFRA: //In STA mode if(wext_get_ssid(WLAN0_NAME, ssid) > 0) wifi_disconnect(); } }