static void OutputIpAddress(void) { NET_CONFIG* p_config; #if defined(ENABLE_STATIC_IP) char buf[64]; #endif p_config = GetNetworkConfig(); SYS_CONSOLE_MESSAGE("IP Address: "); #if defined(ENABLE_STATIC_IP) for (i = 0; i < 4; ++i) { sprintf(buf, "%d", (uint8_t)(p_config.MyIPAddr.Val >> (8 * i))); SYS_CONSOLE_MESSAGE(buf); if (i != 3) { SYS_CONSOLE_MESSAGE("."); } } SYS_CONSOLE_MESSAGE(" (static)\r\n"); #else SYS_CONSOLE_MESSAGE("via DHCP\r\n"); #endif }
/***************************************************************************** * FUNCTION: IfconfigDisplayStatus * * RETURNS: None * * PARAMS: None * * NOTES: Responds to the user invoking ifconfig with no parameters *****************************************************************************/ static void IfconfigDisplayStatus(void) { NET_CONFIG *p_netConfig; p_netConfig = GetNetworkConfig(); sprintf( (char *) g_ConsoleContext.txBuf, "\tIP addr: %d.%d.%d.%d", p_netConfig->MyIPAddr.v[0], p_netConfig->MyIPAddr.v[1], p_netConfig->MyIPAddr.v[2], p_netConfig->MyIPAddr.v[3] ); WFConsolePrintStr( (char *) g_ConsoleContext.txBuf , true); sprintf( (char *) g_ConsoleContext.txBuf, "\tMAC addr: %02X:%02X:%02X:%02X:%02X:%02X", p_netConfig->MyMACAddr.v[0], p_netConfig->MyMACAddr.v[1], p_netConfig->MyMACAddr.v[2], p_netConfig->MyMACAddr.v[3], p_netConfig->MyMACAddr.v[4], p_netConfig->MyMACAddr.v[5]); WFConsolePrintStr( (char *) g_ConsoleContext.txBuf , true); sprintf( (char *) g_ConsoleContext.txBuf, "\tNetmask: %d.%d.%d.%d", p_netConfig->MyMask.v[0], p_netConfig->MyMask.v[1], p_netConfig->MyMask.v[2], p_netConfig->MyMask.v[3] ); WFConsolePrintStr( (char *) g_ConsoleContext.txBuf , true); sprintf( (char *) g_ConsoleContext.txBuf, "\tGateway: %d.%d.%d.%d", p_netConfig->MyGateway.v[0], p_netConfig->MyGateway.v[1], p_netConfig->MyGateway.v[2], p_netConfig->MyGateway.v[3] ); WFConsolePrintStr( (char *) g_ConsoleContext.txBuf , true); #if defined(TCPIP_STACK_USE_DHCP_CLIENT) if ( DHCPIsEnabled(0) ) WFConsolePrintStr("\tDHCP: Started", true); else WFConsolePrintStr("\tDHCP: Stopped", true); #endif }
static void OutputSecurityMode(void) { SYS_CONSOLE_MESSAGE("Security: "); /* Set Security */ #if (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_OPEN) SYS_CONSOLE_MESSAGE("Open\r\n"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_WITH_KEY) SYS_CONSOLE_MESSAGE("WPA with key"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA2_WITH_KEY) SYS_CONSOLE_MESSAGE("WPA2 with key"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_WITH_PASS_PHRASE) SYS_CONSOLE_MESSAGE("WPA with pass phrase"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA2_WITH_PASS_PHRASE) SYS_CONSOLE_MESSAGE("WPA2 with pass phrase"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_AUTO_WITH_KEY) SYS_CONSOLE_MESSAGE("WPA with key, auto-select"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPA_AUTO_WITH_PASS_PHRASE) SYS_CONSOLE_MESSAGE("WPA with pass phrase, auto-select"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPS_PUSH_BUTTON) SYS_CONSOLE_MESSAGE("WPS push button method"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WPS_PIN) SYS_CONSOLE_MESSAGE("WPS PIN method"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_EAP) SYS_CONSOLE_MESSAGE("WPA Enterprise"); #else SYS_CONSOLE_MESSAGE("Unknown security type"); #endif #if ((WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WEP_40) || \ (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WEP_104)) SYS_CONSOLE_MESSAGE("\r\n"); #if (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WEP_40) SYS_CONSOLE_MESSAGE("WEP40, Open Key\r\n"); #elif (WF_DEFAULT_WIFI_SECURITY_MODE == WF_SECURITY_WEP_104) SYS_CONSOLE_MESSAGE("WEP104, Open Key\r\n"); #endif { char buf[4]; NET_CONFIG* p_config; p_config = GetNetworkConfig(); SYS_CONSOLE_MESSAGE("WEP Key Index: "); sprintf(buf, "%d\r\n", p_config->wepKeyIndex); SYS_CONSOLE_MESSAGE(buf); } #endif }
static void OutputSsid(void) { NET_CONFIG* p_config; p_config = GetNetworkConfig(); SYS_CONSOLE_MESSAGE("SSID: "); if (p_config->MySSID[0] == '\0') { SYS_CONSOLE_MESSAGE("(none)"); } else { SYS_CONSOLE_MESSAGE((char *)p_config->MySSID); } SYS_CONSOLE_MESSAGE("\r\n"); }
/***************************************************************************** * FUNCTION: setDHCPState * * RETURNS: None * * PARAMS: enable -- a boolean indicating whether to enable DHCP or not * * NOTES: Enable or disable DHCP operation *****************************************************************************/ static void setDHCPState(bool enable) { NET_CONFIG *p_netConfig; TCPIP_NET_HANDLE handle; handle = TCPIP_STACK_NetHandle("MRF24W"); p_netConfig = GetNetworkConfig(); if ( enable ) { p_netConfig->Flags.bIsDHCPEnabled = true; DHCPEnable(handle); } else { p_netConfig->Flags.bIsDHCPEnabled = false; DHCPDisable(handle, false); } }
/***************************************************************************** * FUNCTION: do_ifconfig_cmd * * RETURNS: None * * PARAMS: None * * NOTES: Responds to the user invoking ifconfig *****************************************************************************/ void do_ifconfig_cmd(void) { uint8_t address[6]; uint8_t conState, cpId; NET_CONFIG *p_netConfig; p_netConfig = GetNetworkConfig(); // if user only typed in ifconfig with no other parameters if (ARGC == 1u) { IfconfigDisplayStatus(); return; } if (g_hibernate_state) { WFConsolePrintStr("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] ); WFConsolePrintStr( (char *) g_ConsoleContext.txBuf , true); } } else if ( (ARGC == 2u) && !strcmp((char *) ARGV[1], "scan") ) { WF_Scan(1); // scan, using CP 1 } 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) && (isIPAddress(ARGV[1], address)) ) { #if defined(TCPIP_STACK_USE_DHCP_CLIENT) if (DHCPIsEnabled(0)) { WFConsolePrintStr( "Static IP address should not be set with DHCP enabled", true); return; } #endif p_netConfig->MyIPAddr.v[0] = address[0]; p_netConfig->MyIPAddr.v[1] = address[1]; p_netConfig->MyIPAddr.v[2] = address[2]; p_netConfig->MyIPAddr.v[3] = address[3]; /* Microchip DHCP client clobbers static ip on every iteration of loop, even if dhcp is turned off*/ p_netConfig->DefaultIPAddr.v[0] = address[0]; p_netConfig->DefaultIPAddr.v[1] = address[1]; p_netConfig->DefaultIPAddr.v[2] = address[2]; p_netConfig->DefaultIPAddr.v[3] = address[3]; LCDDisplayIPValue(p_netConfig->MyIPAddr); } // else if 2 args and second arg is MAC address else if ( (ARGC == 2u) && isMacAddress(ARGV[1], address)) { /* Can only set MAC address in idle state */ WF_CMGetConnectionState(&conState, &cpId); if ( conState != WF_CSTATE_NOT_CONNECTED ) { WFConsolePrintStr("HW MAC address can only be set in idle mode", true); return; } WF_SetMacAddress( address ); } else if ( (2u <= ARGC) && (strcmp((char *)ARGV[1], (const FAR char *)"netmask") == 0) ) { if (ARGC != 3u) { missingValue(); return; } #if defined(TCPIP_STACK_USE_DHCP_CLIENT) if ( DHCPIsEnabled(0) ) { WFConsolePrintStr( "The Netmask should not be set with DHCP enabled", true); return; } #endif if ( !isIPAddress(ARGV[2], address) ) { WFConsolePrintStr("Invalid netmask value", true); return; } p_netConfig->MyMask.v[0] = address[0]; p_netConfig->MyMask.v[1] = address[1]; p_netConfig->MyMask.v[2] = address[2]; p_netConfig->MyMask.v[3] = address[3]; /* Microchip DHCP client clobbers static netmask on every iteration of loop, even if dhcp is turned off*/ p_netConfig->DefaultMask.v[0] = address[0]; p_netConfig->DefaultMask.v[1] = address[1]; p_netConfig->DefaultMask.v[2] = address[2]; p_netConfig->DefaultMask.v[3] = address[3]; } else if ( (2u <= ARGC) && (strcmp((char *)ARGV[1], (const FAR char *)"gateway") == 0) ) { if (ARGC != 3u) { missingValue(); return; } if ( !isIPAddress(ARGV[2], address) ) { WFConsolePrintStr("Invalid gateway value", true); return; } p_netConfig->MyGateway.v[0] = address[0]; p_netConfig->MyGateway.v[1] = address[1]; p_netConfig->MyGateway.v[2] = address[2]; p_netConfig->MyGateway.v[3] = address[3]; } else if ( (2u <= ARGC) && (strcmp((char*)ARGV[1], "auto-dhcp") == 0) ) { if (ARGC != 3u) { missingValue(); return; } #if defined(TCPIP_STACK_USE_DHCP_CLIENT) if (strcmp((char*)ARGV[2], "start") == 0) { setDHCPState(true); } else if (strcmp((char*)ARGV[2], "stop") == 0) { setDHCPState(false); } else #endif { WFConsolePrintStr(" Invalid dhcp param", true); return; } } else { notHandledParam(1); } }
int main(int argc, const char **argv) { int ret = -1; void *zdbhandle = NULL; NetworkConfig Netconfig; WifiConfig WifiParam; InitWifiParam(&WifiParam); InitNetworkConfig(&Netconfig); if(ZDBOpen(Z_UTIL_ZQDEV,DBfile,&zdbhandle) != Z_SUCCESS){ ZCommandResponseError(SETNETWORKCONFIGURATION,1); return 1; } ret = GetNetworkConfig(&Netconfig, &WifiParam); if(ret != 0) { ZCommandResponseError(ZCOMMAND,1); goto funcOut; } ret = CheckNetConfig(&Netconfig); switch(ret) { case 1: ZCommandResponseError(SETNETWORKCONFIGURATION,6); goto funcOut; case 2: ZCommandResponseError(SETNETWORKCONFIGURATION,7); goto funcOut; case 3: ZCommandResponseError(SETNETWORKCONFIGURATION,8); goto funcOut; case 4: ZCommandResponseError(SETNETWORKCONFIGURATION,9); goto funcOut; case 5: ZCommandResponseError(SETNETWORKCONFIGURATION,10); goto funcOut; case 6: ZCommandResponseError(SETNETWORKCONFIGURATION,11); goto funcOut; } if(ret) { ZCommandResponseError(ZCOMMAND,3); goto funcOut; } ret = UpDateDataBase(zdbhandle, &Netconfig); UpDateWifiParam(zdbhandle,&WifiParam); if(ret != 0) { ZCommandResponseError(SETNETWORKCONFIGURATION,3); goto funcOut; } if(Netconfig.WireConfig.Enabled){ if(strcmp(Netconfig.WireConfig.Enabled,"1") == 0){ ret = BringUpNetwork(zdbhandle, &Netconfig.WireConfig, WIRE_NETWORK , NULL); if(ret != 0) { ZCommandResponseError(SETNETWORKCONFIGURATION,4); goto funcOut; } } } if(Netconfig.WifiConfig.Enabled){ if(strcmp(Netconfig.WifiConfig.Enabled,"1") == 0){ ret = BringUpNetwork(zdbhandle, &Netconfig.WifiConfig, WIFI_NETWORK , &WifiParam); if(ret != 0) { ZCommandResponseError(SETNETWORKCONFIGURATION,5); goto funcOut; } } } ret = WriteDNS(Netconfig.IPDNS1 ,0); ret = WriteDNS(Netconfig.IPDNS2 ,1); /* if(ret != 0) {*/ /* ZCommandResponseError(SETNETWORKCONFIGURATION,3);*/ /* goto funcOut;*/ /* } */ ZCommandResponseError(ZCOMMAND,0); funcOut: ZDBClose(zdbhandle); FreeWifiParam(&WifiParam); ConfigFree(&Netconfig); return ret; }
/************ * *功能: * * * **/ NetworkConfig::NetworkConfig(QWidget *parent) : QDialog(parent), ui(new Ui::NetworkConfig) { ui->setupUi(this); this->setWindowFlags(Qt::FramelessWindowHint|Qt::Dialog); QPalette palette = this->palette(); palette.setColor(QPalette::Background,Qt::white); this->setPalette(palette); this->setAutoFillBackground(true); palette.setColor(QPalette::ButtonText,Qt::white); palette.setColor(QPalette::Button,QColor(26,112,178,220)); ui->pushButton->setPalette(palette); ui->pushButton->setAutoFillBackground(true); ui->pushButton->setFlat(true); ui->comboBox->addItem("STATIC"); ui->comboBox->addItem("DHCP"); username = ""; password = ""; QRegExp rx_ip("(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])"); QValidator *validator = new QRegExpValidator(rx_ip, ui->lineEdit_2); ui->lineEdit_2->setValidator(validator); validator = new QRegExpValidator(rx_ip, ui->lineEdit_3); ui->lineEdit_3->setValidator(validator); validator = new QRegExpValidator(rx_ip, ui->lineEdit_4); ui->lineEdit_4->setValidator(validator); validator = new QRegExpValidator(rx_ip, ui->lineEdit_5); ui->lineEdit_5->setValidator(validator); QString resolutions = "1024x768,1280x720,1280x760,1280x768,1280x800,1280x960,1280x1024,1360x768,1366x768,1400x1050,1440x900,1600x900,1600x1200,1680x1050,1920x1080"; resolus = resolutions.split(","); ui->comboBox_2->addItems(resolus); ui->pushButton->setFocusPolicy(Qt::NoFocus); GetNetworkConfig(); CheckIpType(); method_ip = ui->comboBox->currentText(); this->localnetinform = macaddress+"\n"+localhostname+"\n"+gateway_info+"\n"+mask_info+"\n"+ip_info+"\n"+dns+"\n"+ui->comboBox->currentText(); //qDebug() << localnetinform; connect(ui->comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(doChangStyleForGetIP())); //connect(ui->lineEdit_4,SIGNAL(editingFinished()),this,SLOT(modifygateway())); //connect(ui->lineEdit_5,SIGNAL(editingFinished()),this,SLOT(doGetCdms())); //connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(modifyIpandNetMask())); connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(modifygateway())); connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(doGetCdms())); }