void Menu::ConnectWifi() { consoleClear(); CONFIG config; if(!Config::Load(&config)) { printf("No configuration set\n\n"); Menu::Continue(); return; } printf("Connecting wifi\n"); Wifi_AutoConnect(); while(1) { int n = Wifi_AssocStatus(); int ln = -1; switch(n) { case ASSOCSTATUS_AUTHENTICATING: if(ln != ASSOCSTATUS_AUTHENTICATING) printf("Authenticating\n"); break; case ASSOCSTATUS_ASSOCIATING: if(ln != ASSOCSTATUS_ASSOCIATING) printf("Associating\n"); break; case ASSOCSTATUS_ACQUIRINGDHCP: if(ln != ASSOCSTATUS_ACQUIRINGDHCP) printf("Acquiring IP address from DHCP\n"); break; case ASSOCSTATUS_ASSOCIATED: in_addr a; a.s_addr = Wifi_GetIP(); printf("Connected: %s\n", inet_ntoa(a)); Menu::ConnectNX(config); Wifi_DisconnectAP(); return; case ASSOCSTATUS_CANNOTCONNECT: printf("Connection failed\n\n"); Menu::Continue(); return; } ln = n; } }
int wifi_connect() { iprintf("Connecting with WFC settings...\n"); /* Begin connecting asynchronously */ Wifi_AutoConnect(); while (1) { switch (Wifi_AssocStatus()) { case ASSOCSTATUS_ASSOCIATED: return 1; case ASSOCSTATUS_CANNOTCONNECT: return 0; } } }
static int arm9_wifiConnect() { int j = 0, state = 5, delay; arm9_wifiInit(); PJ_LOG(3,(THIS_FILE, "Connecting to AP...")); while(1) { WaitVbl(); switch(state) { case 5: // connect to AP state=6; // firmware Wifi_AutoConnect(); PJ_LOG(3,(THIS_FILE, "Connecting to Access Point...")); case 6: j=Wifi_AssocStatus(); if(j == ASSOCSTATUS_ASSOCIATED) state=30; if(j == ASSOCSTATUS_CANNOTCONNECT) state=20; break; case 20: PJ_LOG(3,(THIS_FILE, "Cannot connect to Access Point.")); return 0; case 30: delay=60; state=31; case 31: PJ_LOG(3,(THIS_FILE, "Connected!")); if(!(delay--)) return 1; break; } } return 0; }