예제 #1
0
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
}
예제 #2
0
/*****************************************************************************
 * 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
}
예제 #3
0
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
}
예제 #4
0
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");
}
예제 #5
0
/*****************************************************************************
 * 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);
    }
}
예제 #6
0
/*****************************************************************************
 * 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);
	}
}
예제 #7
0
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;
}
예제 #8
0
/************
 *
 *功能:
 *
 *
 *
 **/
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()));

}