/***************************************************************************** * FUNCTION: IfconfigDisplayStatus * * RETURNS: None * * PARAMS: None * * NOTES: Responds to the user invoking ifconfig with no parameters *****************************************************************************/ static void IfconfigDisplayStatus(void) { UINT8 p_mac[6]; sprintf( (char *) g_ConsoleContext.txBuf, "\tIP addr: %d.%d.%d.%d", AppConfig.MyIPAddr.v[0], AppConfig.MyIPAddr.v[1], AppConfig.MyIPAddr.v[2], AppConfig.MyIPAddr.v[3] ); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf , TRUE); WF_GetMacAddress(p_mac); sprintf( (char *) g_ConsoleContext.txBuf, "\tMAC addr: %02X:%02X:%02X:%02X:%02X:%02X", p_mac[0], p_mac[1], p_mac[2], p_mac[3], p_mac[4], p_mac[5]); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf , TRUE); sprintf( (char *) g_ConsoleContext.txBuf, "\tNetmask: %d.%d.%d.%d", AppConfig.MyMask.v[0], AppConfig.MyMask.v[1], AppConfig.MyMask.v[2], AppConfig.MyMask.v[3] ); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf , TRUE); sprintf( (char *) g_ConsoleContext.txBuf, "\tGateway: %d.%d.%d.%d", AppConfig.MyGateway.v[0], AppConfig.MyGateway.v[1], AppConfig.MyGateway.v[2], AppConfig.MyGateway.v[3] ); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf , TRUE); #if defined(STACK_USE_DHCP_CLIENT) if ( DHCPIsEnabled(0) ) WFConsolePrintRomStr("\tDHCP: Started", TRUE); else WFConsolePrintRomStr("\tDHCP: Stopped", TRUE); #endif }
/***************************************************************************** * FUNCTION: WFConsoleProcessEpilogue * * RETURNS: None * * PARAMS: None * * NOTES: Check if there is a left console msg, and release it if found. * *****************************************************************************/ void WFConsoleProcessEpilogue(void) { if (WFConsoleIsConsoleMsgReceived()) { if ( memcmppgm2ram(ARGV[0], "help", 4) != 0 ) { WFConsolePrintRomStr("Unknown cmd: ", FALSE); WFConsolePrintRamStr(ARGV[0], TRUE); } WFConsoleReleaseConsoleMsg(); } }
/***************************************************************************** * FUNCTION: WFConsoleProcessEpilogue * * RETURNS: None * * PARAMS: None * * NOTES: Check if there is a left console msg, and release it if found. * *****************************************************************************/ void WFConsoleProcessEpilogue(void) { if (WFConsoleIsConsoleMsgReceived()) { #if defined(WF_EASY_CONFIG_DEMO) && !defined(__C32__) putrsUART("Iperf supports only PIC32 for EasyConfig\n\r"); #else if (( memcmppgm2ram(ARGV[0], "iperf", 5) == 0 ) || ( memcmppgm2ram(ARGV[0], "kill", 4) == 0 )) { return; } #endif if ( memcmppgm2ram(ARGV[0], "help", 4) != 0 ) { WFConsolePrintRomStr("Unknown cmd: ", FALSE); WFConsolePrintRamStr(ARGV[0], TRUE); } WFConsoleReleaseConsoleMsg(); } }
/******************************************************************************* Function: void iwconfigDisplayStatus(void) Summary: Responds to the user invoking iwconfig with no parameters Description: Responds to the user invoking iwconfig with no parameters Parameters: None. Returns: None Remarks: None. *****************************************************************************/ static void iwconfigDisplayStatus(void) { UINT8 *p; UINT8 tmp; UINT8 connectionState; UINT8 cpId; #if defined(MRF24WG) char buf[6]; #endif union { struct { UINT8 List[WF_CHANNEL_LIST_LENGTH]; UINT8 Num; } Channel; UINT8 Domain; struct { UINT8 String[WF_MAX_SSID_LENGTH+1]; UINT8 Len; } Ssid; struct { UINT8 NetworkType; } Mode; struct { UINT16 Threshold; } Rts; } ws; // workspace // cpId { WFConsolePrintRomStr("\tcpid: ", FALSE); WFConsolePrintInteger(iwconfigCb.cpId, 'd'); WFConsolePrintRomStr("", TRUE); } // channel { WF_CAGetChannelList(ws.Channel.List, &ws.Channel.Num); WFConsolePrintRomStr("\tchannel: ", FALSE); p = ws.Channel.List; tmp = ws.Channel.Num; while ( --tmp > 0u ) { WFConsolePrintInteger(*p, 'd'); WFConsolePrintRomStr(",", FALSE); p++; } WFConsolePrintInteger(*p, 'd'); WFConsolePrintRomStr("", TRUE); } #if defined(MRF24WG) // domain { WF_GetRegionalDomain(&ws.Domain); WFConsolePrintRomStr("\tdomain: ", FALSE); if ( ws.Domain == WF_DOMAIN_FCC ) { WFConsolePrintRomStr("fcc", TRUE); } else if ( ws.Domain == WF_DOMAIN_ETSI ) { WFConsolePrintRomStr("etsi", TRUE); } else if ( ws.Domain == WF_DOMAIN_JAPAN ) { WFConsolePrintRomStr("japan", TRUE); } else if ( ws.Domain == WF_DOMAIN_OTHER ) { WFConsolePrintRomStr("other", TRUE); } else { WFConsolePrintRomStr("unknown", TRUE); } } #else // domain { WF_GetRegionalDomain(&ws.Domain); WFConsolePrintRomStr("\tdomain: ", FALSE); if ( ws.Domain == WF_DOMAIN_FCC ) { WFConsolePrintRomStr("fcc", TRUE); } else if ( ws.Domain == WF_DOMAIN_IC ) { WFConsolePrintRomStr("ic", TRUE); } else if ( ws.Domain == WF_DOMAIN_ETSI ) { WFConsolePrintRomStr("etsi", TRUE); } else if ( ws.Domain == WF_DOMAIN_SPAIN ) { WFConsolePrintRomStr("spain", TRUE); } else if ( ws.Domain == WF_DOMAIN_FRANCE ) { WFConsolePrintRomStr("france", TRUE); } else if ( ws.Domain == WF_DOMAIN_JAPAN_A ) { WFConsolePrintRomStr("japana", TRUE); } else if ( ws.Domain == WF_DOMAIN_JAPAN_B ) { WFConsolePrintRomStr("japanb", TRUE); } else { WFConsolePrintRomStr("unknown", TRUE); } } #endif // rts { WF_GetRtsThreshold(&ws.Rts.Threshold); WFConsolePrintRomStr("\trts: ", FALSE); WFConsolePrintInteger(ws.Rts.Threshold, 'd'); WFConsolePrintRomStr("", TRUE); } // mode { WF_CMGetConnectionState(&connectionState, &cpId); WF_CPGetNetworkType(iwconfigCb.cpId, &ws.Mode.NetworkType); WFConsolePrintRomStr("\tmode: ", FALSE); if (iwconfigCb.isIdle) { if (iwconfigCb.connState == WF_CSTATE_NOT_CONNECTED) { WFConsolePrintRomStr("idle", TRUE); } else if (iwconfigCb.connState == WF_CSTATE_CONNECTION_PERMANENTLY_LOST) { WFConsolePrintRomStr("idle (connection permanently lost)", TRUE); } else { WFConsolePrintRomStr("idle (?)", TRUE); } } else { WF_CPGetNetworkType(iwconfigCb.cpId, &ws.Mode.NetworkType); if (ws.Mode.NetworkType == WF_INFRASTRUCTURE) { if (iwconfigCb.connState == WF_CSTATE_CONNECTION_IN_PROGRESS) { WFConsolePrintRomStr("managed (connection in progress)", TRUE); } else if (iwconfigCb.connState == WF_CSTATE_CONNECTED_INFRASTRUCTURE) { WFConsolePrintRomStr("managed", TRUE); } else if (iwconfigCb.connState == WF_CSTATE_RECONNECTION_IN_PROGRESS) { WFConsolePrintRomStr("managed (reconnection in progress)", TRUE); } else { WFConsolePrintRomStr("managed (?)", TRUE); } } else if (ws.Mode.NetworkType == WF_ADHOC) { if (iwconfigCb.connState == WF_CSTATE_CONNECTION_IN_PROGRESS) { WFConsolePrintRomStr("adhoc (connection in progress)", TRUE); } else if (iwconfigCb.connState == WF_CSTATE_CONNECTED_ADHOC) { WFConsolePrintRomStr("adhoc", TRUE); } else if (iwconfigCb.connState == WF_CSTATE_RECONNECTION_IN_PROGRESS) { WFConsolePrintRomStr("adhoc (reconnection in progress)", TRUE); } else { WFConsolePrintRomStr("adhoc (?)", TRUE); } } else { WFConsolePrintRomStr("unknown", TRUE); } } } // ssid { WF_CPGetSsid(iwconfigCb.cpId, ws.Ssid.String, &ws.Ssid.Len); ws.Ssid.String[ws.Ssid.Len] = '\0'; WFConsolePrintRomStr("\tssid: ", FALSE); WFConsolePrintRamStr(ws.Ssid.String, TRUE); } // power { switch (iwconfigCb.powerSaveState) { case WF_PS_PS_POLL_DTIM_ENABLED: WFConsolePrintRomStr("\tpwrsave: enabled", TRUE); WFConsolePrintRomStr("\tdtim rx: enabled", TRUE); break; case WF_PS_PS_POLL_DTIM_DISABLED: WFConsolePrintRomStr("\tpwrsave: enabled", TRUE); WFConsolePrintRomStr("\tdtim rx: disabled", TRUE); break; case WF_PS_OFF: WFConsolePrintRomStr("\tpwrsave: disabled", TRUE); break; default: WFConsolePrintRomStr("\tpwrsave: unknown(", FALSE); WFConsolePrintInteger(iwconfigCb.powerSaveState, 'd'); WFConsolePrintRomStr(")", TRUE); break; } } #if defined(MRF24WG) // context WF_OutputConnectionContext(); // Network Type putrsUART("\tNetwork: "); #if defined(EZ_CONFIG_STORE) && !defined(WF_CONSOLE_DEMO) /* if EZConfig demo */ if (AppConfig.networkType == WF_ADHOC) { putrsUART("AdHoc\r\n"); } else { putrsUART("Infrastructure\r\n"); } #else #if (MY_DEFAULT_NETWORK_TYPE == WF_ADHOC) putrsUART("AdHoc\r\n"); #elif (MY_DEFAULT_NETWORK_TYPE == WF_P2P) putrsUART("P2P\r\n"); #elif (MY_DEFAULT_NETWORK_TYPE == WF_INFRASTRUCTURE) #if (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPS_PUSH_BUTTON) putrsUART("Infrastructure (using WPS Push Button)\r\n"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPS_PIN) putrsUART("Infrastructure (using WPS Pin)\r\n"); #else putrsUART("Infrastructure\r\n"); #endif #endif #endif /* EZ_CONFIG_STORE */ // Retry Count putrsUART("\tRetries "); #if (MY_DEFAULT_NETWORK_TYPE == WF_ADHOC) sprintf(buf, "%d\r\n", ADHOC_RETRY_COUNT); putsUART(buf); #elif (MY_DEFAULT_NETWORK_TYPE == WF_INFRASTRUCTURE) #if (INFRASTRUCTURE_RETRY_COUNT == WF_RETRY_FOREVER) sprintf(buf, "Retry Forever\r\n"); putsUART(buf); #else sprintf(buf, "%d\r\n", INFRASTRUCTURE_RETRY_COUNT); putsUART(buf); #endif #endif /* (MY_DEFAULT_NETWORK_TYPE == WF_ADHOC) */ // Security putrsUART("\tSecurity: "); #if (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_OPEN) putrsUART("WF_SECURITY_OPEN"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WEP_40) putrsUART("WF_SECURITY_WEP_40"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WEP_104) putrsUART("WF_SECURITY_WEP_104"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_WITH_KEY) putrsUART("WF_SECURITY_WPA_WITH_KEY"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_WITH_PASS_PHRASE) putrsUART("WF_SECURITY_WPA_WITH_PASS_PHRASE"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA2_WITH_KEY) putrsUART("WF_SECURITY_WPA2_WITH_KEY"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA2_WITH_PASS_PHRASE) putrsUART("WF_SECURITY_WPA2_WITH_PASS_PHRASE"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_AUTO_WITH_KEY) putrsUART("WF_SECURITY_WPA_AUTO_WITH_KEY"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_AUTO_WITH_PASS_PHRASE) putrsUART("WF_SECURITY_WPA_AUTO_WITH_PASS_PHRASE"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPS_PUSH_BUTTON) putrsUART("WF_SECURITY_WPS_PUSH_BUTTON"); #elif (MY_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPS_PIN) putrsUART("WF_SECURITY_WPS_PIN"); #else putrsUART("Unknown"); #endif putrsUART("\r\n"); // scan type putrsUART("\tScan: "); #if (MY_DEFAULT_SCAN_TYPE == WF_ACTIVE_SCAN) putrsUART("Active Scan\r\n"); #else putrsUART("Passive Scan\r\n"); #endif // MAC address putrsUART("\tMAC: "); OutputMacAddress(); #endif /* MRF24WG */ }
/***************************************************************************** * FUNCTION: do_ifconfig_cmd * * RETURNS: None * * PARAMS: None * * NOTES: Responds to the user invoking ifconfig *****************************************************************************/ void do_ifconfig_cmd(void) { uint8_t macAddress[6]; uint8_t conState, cpId; IP_ADDR ipAddress; // if user only typed in ifconfig with no other parameters if (ARGC == 1u) { IfconfigDisplayStatus(); return; } if (WF_hibernate.state) { WFConsolePrintRomStr("The Wi-Fi module is in hibernate mode - command failed.", true); return; } #if defined(WF_CM_DEBUG) else if ( (ARGC == 2u) && !strcmp((char *) ARGV[1], "info") ) { uint8_t i; tWFCMInfoFSMStats cm_stats; WF_CMInfoGetFSMStats(&cm_stats); for (i = 0; i < 12; i++) { sprintf( (char *) g_ConsoleContext.txBuf, "[%02X]: %02X%02X %02X%02X", i, cm_stats.byte[i*4 + 0], cm_stats.byte[i*4 + 1], cm_stats.byte[i*4 + 2], cm_stats.byte[i*4 + 3] ); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf , true); } } else if ( (ARGC == 2u) && !strcmp((char *) ARGV[1], "scan") ) { if (WF_Scan(1) != WF_SUCCESS) // scan, using CP 1 WFConsolePrintRomStr("Scan failed", true); } else if ( (ARGC == 2u) && !strcmp((char *) ARGV[1], "scanget") ) //"scangetresult" { tWFScanResult pScanResult[1]; WF_ScanGetResult(0, pScanResult); } else if ( (ARGC == 2u) && !strcmp((char *) ARGV[1], "cpgete") ) //"cpgetelements" { tWFCPElements pCPElements[1]; WF_CPGetElements(1, pCPElements); } #endif // else if 2 arguments and the second arg is IP address else if ( (ARGC == 2u) && (StringToIPAddress((uint8_t*)ARGV[1], &ipAddress)) ) { #if defined(STACK_USE_DHCP_CLIENT) if (DHCPIsEnabled(0)) { WFConsolePrintRomStr("Static IP address should not be set with DHCP enabled", true); return; } #endif AppConfig.MyIPAddr.v[0] = ipAddress.v[0]; AppConfig.MyIPAddr.v[1] = ipAddress.v[1]; AppConfig.MyIPAddr.v[2] = ipAddress.v[2]; AppConfig.MyIPAddr.v[3] = ipAddress.v[3]; /* Microchip DHCP client clobbers static ip on every iteration of loop, even if dhcp is turned off*/ AppConfig.DefaultIPAddr.v[0] = ipAddress.v[0]; AppConfig.DefaultIPAddr.v[1] = ipAddress.v[1]; AppConfig.DefaultIPAddr.v[2] = ipAddress.v[2]; AppConfig.DefaultIPAddr.v[3] = ipAddress.v[3]; LCDDisplayIPValue(AppConfig.MyIPAddr); } // else if 2 args and second arg is MAC address else if ( (ARGC == 2u) && isMacAddress(ARGV[1], macAddress)) { /* Can only set MAC address in idle state */ WF_CMGetConnectionState(&conState, &cpId); if ( conState != WF_CSTATE_NOT_CONNECTED ) { WFConsolePrintRomStr("HW MAC address can only be set in idle mode", true); return; } WF_SetMacAddress( macAddress ); AppConfig.MyMACAddr.v[0] = macAddress[0]; AppConfig.MyMACAddr.v[1] = macAddress[1]; AppConfig.MyMACAddr.v[2] = macAddress[2]; AppConfig.MyMACAddr.v[3] = macAddress[3]; AppConfig.MyMACAddr.v[4] = macAddress[4]; AppConfig.MyMACAddr.v[5] = macAddress[5]; } else if ( (2u <= ARGC) && (strcmppgm2ram((char *)ARGV[1], (ROM FAR char *)"netmask") == 0) ) { if (ARGC != 3u) { missingValue(); return; } #if defined(STACK_USE_DHCP_CLIENT) if ( DHCPIsEnabled(0) ) { WFConsolePrintRomStr( "The Netmask should not be set with DHCP enabled", true); return; } #endif if ( !StringToIPAddress((uint8_t*)ARGV[2], &ipAddress) ) { WFConsolePrintRomStr("Invalid netmask value", true); return; } AppConfig.MyMask.v[0] = ipAddress.v[0]; AppConfig.MyMask.v[1] = ipAddress.v[1]; AppConfig.MyMask.v[2] = ipAddress.v[2]; AppConfig.MyMask.v[3] = ipAddress.v[3]; /* Microchip DHCP client clobbers static netmask on every iteration of loop, even if dhcp is turned off*/ AppConfig.DefaultMask.v[0] = ipAddress.v[0]; AppConfig.DefaultMask.v[1] = ipAddress.v[1]; AppConfig.DefaultMask.v[2] = ipAddress.v[2]; AppConfig.DefaultMask.v[3] = ipAddress.v[3]; } else if ( (2u <= ARGC) && (strcmppgm2ram((char *)ARGV[1], (ROM FAR char *)"gateway") == 0) ) { if (ARGC != 3u) { missingValue(); return; } if ( !StringToIPAddress((uint8_t*)ARGV[2], &ipAddress) ) { WFConsolePrintRomStr("Invalid gateway value", true); return; } AppConfig.MyGateway.v[0] = ipAddress.v[0]; AppConfig.MyGateway.v[1] = ipAddress.v[1]; AppConfig.MyGateway.v[2] = ipAddress.v[2]; AppConfig.MyGateway.v[3] = ipAddress.v[3]; } else if ( (2u <= ARGC) && (strcmppgm2ram((char*)ARGV[1], "auto-dhcp") == 0) ) { if (ARGC != 3u) { missingValue(); return; } #if defined(STACK_USE_DHCP_CLIENT) if (strcmppgm2ram((char*)ARGV[2], "start") == 0) { setDHCPState(true); } else if (strcmppgm2ram((char*)ARGV[2], "stop") == 0) { setDHCPState(false); } else #endif { WFConsolePrintRomStr(" Invalid dhcp param", true); return; } } else { notHandledParam(1); } }
static void iwprivDisplayStatus(void) { UINT8 i, j; UINT8* p; // security type { WFConsolePrintRomStr("Encryption: ", FALSE); switch (iwprivCb.securityType) { case WF_SECURITY_OPEN: WFConsolePrintRomStr("none", TRUE); break; case WF_SECURITY_WEP_40: case WF_SECURITY_WEP_104: WFConsolePrintRomStr("wep", TRUE); break; case WF_SECURITY_WPA_WITH_KEY: case WF_SECURITY_WPA2_WITH_KEY: case WF_SECURITY_WPA_AUTO_WITH_KEY: WFConsolePrintRomStr("wpa-psk", TRUE); break; case WF_SECURITY_WPA_WITH_PASS_PHRASE: case WF_SECURITY_WPA2_WITH_PASS_PHRASE: case WF_SECURITY_WPA_AUTO_WITH_PASS_PHRASE: WFConsolePrintRomStr("wpa-phrase", TRUE); break; default: WFConsolePrintRomStr("unknown", TRUE); return; } } if ( iwprivCb.securityType == WF_SECURITY_WEP_40 || iwprivCb.securityType == WF_SECURITY_WEP_104 ) { UINT8 webKeyLen; if ( iwprivCb.securityKeyLength == (IWPRIV_WEB_KEY_NUM * IWPRIV_WEB_LONG_KEY_LEN) ) { webKeyLen = IWPRIV_WEB_LONG_KEY_LEN; } else if ( iwprivCb.securityKeyLength == (IWPRIV_WEB_KEY_NUM * IWPRIV_WEB_SHORT_KEY_LEN) ) { webKeyLen = IWPRIV_WEB_SHORT_KEY_LEN; } else { WFConsolePrintRomStr(" Wep key: not yet set or unknown", TRUE); return; } p = iwprivCb.securityKey; for( j=0; j < IWPRIV_WEB_KEY_NUM ; j++ ) { if ( j == iwprivCb.wepDefaultKeyId ) WFConsolePrintRomStr(" *", FALSE); else WFConsolePrintRomStr(" ", FALSE); WFConsolePrintRomStr("Wep key[", FALSE); WFConsolePrintInteger(j+1, FALSE); WFConsolePrintRomStr("]: 0x", FALSE); for ( i=0; i < webKeyLen ; i++ ) { sprintf( (char *) g_ConsoleContext.txBuf, "%.2x", *p++); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf, FALSE); } WFConsolePrintRomStr("", TRUE); } } else if ( iwprivCb.securityType == WF_SECURITY_WPA_AUTO_WITH_KEY ) { if ( iwprivCb.securityKeyLength != WF_WPA_KEY_LENGTH ) { WFConsolePrintRomStr(" PSK: not yet set or unknown", TRUE); return; } putrsUART(" PSK: \""); p = iwprivCb.securityKey; for( j=0; j < WF_WPA_KEY_LENGTH ; j++ ) { sprintf( (char *) g_ConsoleContext.txBuf, "%.2x", *p++); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf , FALSE ); } WFConsolePrintRomStr("", TRUE); } else if ( iwprivCb.securityType == WF_SECURITY_WPA_AUTO_WITH_PASS_PHRASE ) { if ( iwprivCb.securityKeyLength == 0 ) { WFConsolePrintRomStr(" Phrase: not yet set or unknown", TRUE); return; } WFConsolePrintRomStr(" Phrase: \"", FALSE); p = iwprivCb.securityKey; for( j=0; j < iwprivCb.securityKeyLength ; j++ ) { sprintf( (char *) g_ConsoleContext.txBuf, "%c", *p++); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf, FALSE ); } WFConsolePrintRomStr("\"", TRUE); WFConsolePrintRomStr(" SSID: ", FALSE); WFConsolePrintRamStr(iwprivCb.ssid, TRUE); } }
/***************************************************************************** * FUNCTION: iwprivDisplayStatus * * RETURNS: none * * PARAMS: none * * NOTES: Display security mode status * Valid security mode: * Open * WEP40 * WEP104 * WPA-PSK/WPA2-PSK Auto with Key * WPA-PSK/WPA2-PSK Auto with Passphrase *****************************************************************************/ static void iwprivDisplayStatus(void) { uint8_t i, j; uint8_t * p; // security type { WFConsolePrintRomStr("Encryption: ", false); switch (iwprivCb.securityType) { case WF_SECURITY_OPEN: WFConsolePrintRomStr("Open", true); break; case WF_SECURITY_WEP_40: WFConsolePrintRomStr("WEP40", true); break; case WF_SECURITY_WEP_104: WFConsolePrintRomStr("WEP104", true); break; case WF_SECURITY_WPA_AUTO_WITH_KEY: WFConsolePrintRomStr("WPA-PSK/WPA2-PSK Auto with Key", true); break; case WF_SECURITY_WPA_AUTO_WITH_PASS_PHRASE: WFConsolePrintRomStr("WPA-PSK/WPA2-PSK Auto with Passphrase", true); break; default: WFConsolePrintRomStr("Unknown", true); return; } } if ( iwprivCb.securityType == WF_SECURITY_WEP_40 || iwprivCb.securityType == WF_SECURITY_WEP_104 ) { uint8_t webKeyLen; if ( iwprivCb.securityKeyLength == (IWPRIV_WEB_KEY_NUM * IWPRIV_WEB_LONG_KEY_LEN) ) { webKeyLen = IWPRIV_WEB_LONG_KEY_LEN; } else if ( iwprivCb.securityKeyLength == (IWPRIV_WEB_KEY_NUM * IWPRIV_WEB_SHORT_KEY_LEN) ) { webKeyLen = IWPRIV_WEB_SHORT_KEY_LEN; } else { WFConsolePrintRomStr(" WEP Key: not yet set or unknown", true); return; } p = iwprivCb.securityKey; for (j = 0; j < IWPRIV_WEB_KEY_NUM; j++) { if (j == iwprivCb.wepDefaultKeyId ) WFConsolePrintRomStr(" *", false); else WFConsolePrintRomStr(" ", false); WFConsolePrintRomStr("WEP Key[", false); WFConsolePrintInteger(j + 1, false); WFConsolePrintRomStr("]: 0x", false); for (i = 0; i < webKeyLen ; i++) { sprintf( (char *) g_ConsoleContext.txBuf, "%.2x", *p++); WFConsolePrintRamStr((char *) g_ConsoleContext.txBuf, false); } WFConsolePrintRomStr("", true); } } else if ( iwprivCb.securityType == WF_SECURITY_WPA_AUTO_WITH_KEY ) { if ( iwprivCb.securityKeyLength != WF_WPA_KEY_LENGTH ) { WFConsolePrintRomStr(" PSK: not yet set or unknown", true); return; } putrsUART(" PSK: \""); p = iwprivCb.securityKey; for (j = 0; j < WF_WPA_KEY_LENGTH; j++) { sprintf( (char *) g_ConsoleContext.txBuf, "%.2x", *p++); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf , false ); } WFConsolePrintRomStr("", true); } else if ( iwprivCb.securityType == WF_SECURITY_WPA_AUTO_WITH_PASS_PHRASE ) { if ( iwprivCb.securityKeyLength == 0 ) { WFConsolePrintRomStr(" Passphrase: not yet set or unknown", true); return; } WFConsolePrintRomStr(" Passphrase: \"", false); p = iwprivCb.securityKey; for (j = 0; j < iwprivCb.securityKeyLength; j++ ) { sprintf( (char *) g_ConsoleContext.txBuf, "%c", *p++); WFConsolePrintRamStr( (char *) g_ConsoleContext.txBuf, false ); } WFConsolePrintRomStr("\"", true); WFConsolePrintRomStr(" SSID: ", false); WFConsolePrintRamStr(iwprivCb.ssid, true); } }