Example #1
0
void ConsoleClr(int mode)
{
	unsigned char *pt, *pt_end;
	unsigned int i;

	//Clear current screen buffer
	if(0 == mode)
	{
		if(print_col > 0) {
			console_buf_end += CONSOLE_WIDTH;
			if((console_buf_end - console_buf) >= console_buf_size)
				console_buf_end -= console_buf_size;
		}

		console_print_header = console_buf_end;
		print_row = 0;
		print_col = 0;
		print_row_saved = 0;
		print_col_saved = 0;
	}
	//Clear all
	else if(1 == mode)
	{
		console_buf_front = console_buf;
		console_buf_end = console_buf;
		console_print_header = console_buf;
		print_row = 0;
		print_col = 0;
		print_row_saved = 0;
		print_col_saved = 0;

		pt = console_buf;
		pt_end = console_buf + console_buf_size;
		while(pt < pt_end)
		{
			pt[0] = '\0';
			pt += CONSOLE_WIDTH;
		}
	}

	ConsoleClearscreen();
	ConsoleFlush();
}
Example #2
0
void ConsolePrintstring(unsigned char* string)
{
	unsigned char *pt;
	unsigned char ch;

	print_row_saved = print_row;
	print_col_saved = print_col;
	console_print_header = print_header_saved;
//cprintf("print_row %d; print_col %d; [%s]\n", print_row, print_col, string);
	pt = string;
	do
	{
		ch = *pt++;
		ConsolePrintchar(ch);
	}
	while ('\0' != ch);

	print_header_saved = console_print_header;

	ConsoleDrawfont();
	ConsoleFlush();
}
Example #3
0
void ConsoleInit(){
	consoleInited = 1;
	ConsoleFlush();
}
Example #4
0
static void ConsoleMovewin(int dir, int sw_screen)
{
	unsigned char *pt;
	
	if(dir || sw_screen)
		ConsoleClearscreen();

	//switch to another screen to dispaly text
	if(sw_screen)
	{
		ConsoleFlush();
		//now up screen
		if(console_id & UP_MASK)	{
			console_screen = down_screen_addr;
			console_id = DOWN_SCREEN;
		}
		//switch to up screen
		else
		{
			console_screen = up_screen_addr;
			console_id = UP_SCREEN;
		}
	}

	pt = console_print_header + dir*CONSOLE_WIDTH;

	//screen scroll down
	if(dir > 0)
	{
		if(console_buf_end > console_print_header) {
			if(pt > console_buf_end)
				pt = console_buf_end;
			console_print_header = pt;
		}
		else if(console_buf_end < console_print_header)	{
			if((pt - console_buf) >= console_buf_size) {
				pt -= console_buf_size;
				if(pt > console_buf_end)
					pt = console_buf_end;
			}
			console_print_header = pt;
		}
	}
	//screen scroll up
	else if(dir < 0)
	{
		if(console_buf_front > console_print_header) {
			if(pt < console_buf) {
				pt += console_buf_size;
				if(pt < console_buf_front)
					pt = console_buf_front;
			}
			console_print_header = pt;
		}
		else if(console_buf_front < console_print_header) {
			if(pt < console_buf_front)
				pt = console_buf_front;
			console_print_header = pt;
		}
	}

	if(dir || sw_screen)
	{
		print_row_saved = 0;	//redraw entire screen
		print_col_saved = 0;

		ConsoleDrawfontall();
		ConsoleFlush();
	}
}
/*****************************************************************************
 * FUNCTION: IwconfigDisplayStatus
 *
 * RETURNS:  None
 *
 * PARAMS:   None
 *
 * NOTES:    Responds to the user invoking "iwconfig" with no parameters
 *****************************************************************************/
static void IwconfigDisplayStatus(SYS_CMD_DEVICE_NODE *pCmdIO)
{
    uint8_t *p;
    uint8_t tmp;

    union
    {
        struct
        {
            uint8_t list[DRV_WIFI_MAX_CHANNEL_LIST_LENGTH];
            uint8_t num;
        } Channel;

        uint8_t Domain;

        struct
        {
            uint8_t name[DRV_WIFI_MAX_SSID_LENGTH + 1];
            uint8_t len;
        } Ssid;

        uint16_t RtsThreshold;

        DRV_WIFI_CONNECTION_CONTEXT Context;

        uint8_t NetworkType;

        struct
        {
            uint8_t beaconTimeout;
            uint8_t retryCount;
            uint8_t deauthAction;
            uint8_t beaconTimeoutAction;
        } ReconnectMode;

        struct
        {
            uint8_t securityType;
            uint8_t keyType;
        } Security;

        DRV_WIFI_SCAN_CONTEXT ScanContext;

        uint8_t MAC[6];
    } ws; // workspace

    SYS_CONSOLE_MESSAGE("Current Wi-Fi configuration:\r\n");

    // domain
    DRV_WIFI_RegionalDomainGet(&ws.Domain);
    SYS_CONSOLE_MESSAGE("\tdomain:       ");
    if (ws.Domain == DRV_WIFI_DOMAIN_FCC)
    {
        SYS_CONSOLE_MESSAGE("FCC\r\n");
    }
    else if (ws.Domain == DRV_WIFI_DOMAIN_ETSI)
    {
        SYS_CONSOLE_MESSAGE("ETSI\r\n");
    }
    else if (ws.Domain == DRV_WIFI_DOMAIN_JAPAN)
    {
        SYS_CONSOLE_MESSAGE("JAPAN or OTHER\r\n");
    }
    else
    {
        SYS_CONSOLE_MESSAGE("Unknown\r\n");
    }

    // rts
    DRV_WIFI_RtsThresholdGet(&ws.RtsThreshold);
    SYS_CONSOLE_PRINT("\trts:          %d\r\n", ws.RtsThreshold);

    // mode
    DRV_WIFI_NetworkTypeGet(&ws.NetworkType);
    SYS_CONSOLE_MESSAGE("\tmode:         ");
    ConsoleFlush();
    if (s_IwconfigCb.isIdle)
    {
        if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_NOT_CONNECTED)
        {
            SYS_CONSOLE_MESSAGE("Idle\r\n");
        }
        else if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_CONNECTION_PERMANENTLY_LOST)
        {
            SYS_CONSOLE_MESSAGE("Idle (connection permanently lost)\r\n");
        }
        else
        {
            SYS_CONSOLE_MESSAGE("Idle (undefined)\r\n");
        }
    }
    else
    {
        if (ws.NetworkType == DRV_WIFI_NETWORK_TYPE_INFRASTRUCTURE)
        {
            if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_CONNECTION_IN_PROGRESS)
            {
                SYS_CONSOLE_MESSAGE("Managed (connection in progress)\r\n");
            }
            else if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_CONNECTED_INFRASTRUCTURE)
            {
                SYS_CONSOLE_MESSAGE("Managed (connected)\r\n");
            }
            else if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_RECONNECTION_IN_PROGRESS)
            {
                SYS_CONSOLE_MESSAGE("Managed (reconnection in progress)\r\n");
            }
            else
            {
                SYS_CONSOLE_MESSAGE("Managed (undefined)\r\n");
            }
        }
        else if (ws.NetworkType == DRV_WIFI_NETWORK_TYPE_ADHOC)
        {
            if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_CONNECTION_IN_PROGRESS)
            {
                SYS_CONSOLE_MESSAGE("Ad-Hoc (connection in progress)\r\n");
            }
            else if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_CONNECTED_ADHOC)
            {
                SYS_CONSOLE_MESSAGE("Ad-Hoc (connected)\r\n");
            }
            else if (s_IwconfigCb.connState == DRV_WIFI_CSTATE_RECONNECTION_IN_PROGRESS)
            {
                SYS_CONSOLE_MESSAGE("Ad-Hoc (reconnection in progress)\r\n");
            }
            else
            {
                SYS_CONSOLE_MESSAGE("Ad-Hoc (undefined)\r\n");
            }
        }
        else if (ws.NetworkType == DRV_WIFI_NETWORK_TYPE_SOFT_AP)
        {
            SYS_CONSOLE_MESSAGE("Soft AP\r\n");
        }
        else
        {
            SYS_CONSOLE_MESSAGE("Unknown\r\n");
        }
    }

    // channel list, current operating channel and bssid
    if (ws.NetworkType == DRV_WIFI_NETWORK_TYPE_ADHOC || ws.NetworkType == DRV_WIFI_NETWORK_TYPE_SOFT_AP)
    {
        SYS_CONSOLE_MESSAGE("\tchannel:      ");
        DRV_WIFI_ChannelListGet(ws.Channel.list, &ws.Channel.num);
        SYS_CONSOLE_PRINT("%d\r\n", ws.Channel.list[0]);
    }
    else
    {
        SYS_CONSOLE_MESSAGE("\tchannel list: ");
        DRV_WIFI_ChannelListGet(ws.Channel.list, &ws.Channel.num);
        p = ws.Channel.list;
        tmp = ws.Channel.num;
        while (--tmp > 0u)
        {
            SYS_CONSOLE_PRINT("%d,", *p);
            p++;
        }
        SYS_CONSOLE_PRINT("%d\r\n", *p);

        // In Ad-Hoc or Soft AP mode, this function can only get all zeros.
        // So we only call it when the network type is not Ad-Hoc and Soft AP.
        DRV_WIFI_ConnectContextGet(&ws.Context);
        SYS_CONSOLE_MESSAGE("\tchannel:      ");
        SYS_CONSOLE_PRINT("%d\r\n", ws.Context.channel);

        SYS_CONSOLE_MESSAGE("\tbssid:        ");
        SYS_CONSOLE_PRINT("%02X:%02X:%02X:%02X:%02X:%02X\r\n",
                            ws.Context.bssid[0],
                            ws.Context.bssid[1],
                            ws.Context.bssid[2],
                            ws.Context.bssid[3],
                            ws.Context.bssid[4],
                            ws.Context.bssid[5]);
    }

    // ssid
    DRV_WIFI_SsidGet(ws.Ssid.name, &ws.Ssid.len);
    ws.Ssid.name[ws.Ssid.len] = '\0';
    SYS_CONSOLE_MESSAGE("\tssid:         ");
    SYS_CONSOLE_PRINT("%s\r\n", ws.Ssid.name);

    // power
    switch (s_IwconfigCb.powerSaveState) {
    case DRV_WIFI_PS_PS_POLL_DTIM_ENABLED:
        SYS_CONSOLE_MESSAGE("\tpwrsave:      Enabled\r\n");
        SYS_CONSOLE_MESSAGE("\tdtim rx:      Enabled\r\n");
        break;
    case DRV_WIFI_PS_PS_POLL_DTIM_DISABLED:
        SYS_CONSOLE_MESSAGE("\tpwrsave:      Enabled\r\n");
        SYS_CONSOLE_MESSAGE("\tdtim rx:      Disabled\r\n");
        break;
    case DRV_WIFI_PS_OFF:
        SYS_CONSOLE_MESSAGE("\tpwrsave:      Disabled\r\n");
        break;
    default:
        SYS_CONSOLE_PRINT("\tpwrsave:      Unknown %d\r\n", s_IwconfigCb.powerSaveState);
        break;
    }

    // network type
    DRV_WIFI_NetworkTypeGet(&ws.NetworkType); // ws is an union, so need to call this function again
    SYS_CONSOLE_MESSAGE("\tnetwork:      ");
    if (ws.NetworkType == DRV_WIFI_NETWORK_TYPE_ADHOC) {
        SYS_CONSOLE_MESSAGE("Ad-Hoc\r\n");
    } else if (ws.NetworkType == DRV_WIFI_NETWORK_TYPE_SOFT_AP) {
        SYS_CONSOLE_MESSAGE("Soft AP\r\n");
    } else if (ws.NetworkType == DRV_WIFI_NETWORK_TYPE_INFRASTRUCTURE) {
        SYS_CONSOLE_MESSAGE("Infrastructure\r\n");
    } else {
        SYS_CONSOLE_MESSAGE("Invalid\r\n");
    }

    // retries
    DRV_WIFI_ReconnectModeGet(&ws.ReconnectMode.retryCount, &ws.ReconnectMode.deauthAction, &ws.ReconnectMode.beaconTimeout, &ws.ReconnectMode.beaconTimeoutAction);
    ConsoleFlush();
    SYS_CONSOLE_MESSAGE("\tretries:      ");
    if (ws.ReconnectMode.retryCount == DRV_WIFI_RETRY_FOREVER) {
        SYS_CONSOLE_MESSAGE("255 (Retry Forever)\r\n");
    }
    else if (ws.ReconnectMode.retryCount > 0 && ws.ReconnectMode.retryCount < DRV_WIFI_RETRY_FOREVER ) {
        SYS_CONSOLE_PRINT("%d\r\n", ws.ReconnectMode.retryCount);
    }
    else {
        SYS_CONSOLE_MESSAGE("Invalid\r\n");
    }

    // security type
    SYS_CONSOLE_MESSAGE("\tsecurity:     ");
    DRV_WIFI_SecurityTypeGet(&ws.Security.securityType);
    ConsoleFlush();

    switch (ws.Security.securityType) {
    case DRV_WIFI_SECURITY_OPEN:
        SYS_CONSOLE_MESSAGE("Open\r\n");
        break;
    case DRV_WIFI_SECURITY_WPA_WITH_KEY:
        SYS_CONSOLE_MESSAGE("WPA-PSK with key\r\n");
        break;
    case DRV_WIFI_SECURITY_WPA2_WITH_KEY:
        SYS_CONSOLE_MESSAGE("WPA2-PSK with key\r\n");
        break;
    case DRV_WIFI_SECURITY_WPA_WITH_PASS_PHRASE:
        SYS_CONSOLE_MESSAGE("WPA-PSK with pass phrase\r\n");
        break;
    case DRV_WIFI_SECURITY_WPA2_WITH_PASS_PHRASE:
        SYS_CONSOLE_MESSAGE("WPA2-PSK with pass phrase\r\n");
        break;
    case DRV_WIFI_SECURITY_WPA_AUTO_WITH_KEY:
        SYS_CONSOLE_MESSAGE("WPA-PSK with key, auto-select\r\n");
        break;
    case DRV_WIFI_SECURITY_WPA_AUTO_WITH_PASS_PHRASE:
        SYS_CONSOLE_MESSAGE("WPA-PSK with pass phrase, auto-select\r\n");
        break;
    case DRV_WIFI_SECURITY_WPS_PUSH_BUTTON:
        SYS_CONSOLE_MESSAGE("WPS push button method\r\n");
        break;
    case  DRV_WIFI_SECURITY_WPS_PIN:
        SYS_CONSOLE_MESSAGE("WPS PIN method\r\n");
        break;
    case DRV_WIFI_SECURITY_WEP_40:
    case DRV_WIFI_SECURITY_WEP_104:
        if (ws.Security.securityType == DRV_WIFI_SECURITY_WEP_40)
            SYS_CONSOLE_MESSAGE("WEP40, ");
        else if (ws.Security.securityType == DRV_WIFI_SECURITY_WEP_104)
            SYS_CONSOLE_MESSAGE("WEP104, ");
        else
            SYS_CONSOLE_MESSAGE("Invalid WEP mode, ");

        DRV_WIFI_WepKeyTypeGet(&ws.Security.keyType);

        if (ws.Security.keyType == DRV_WIFI_SECURITY_WEP_OPENKEY)
            SYS_CONSOLE_MESSAGE("Open Key\r\n");
        else if (ws.Security.keyType == DRV_WIFI_SECURITY_WEP_SHAREDKEY)
            SYS_CONSOLE_MESSAGE("Shared Key\r\n");
        else
            SYS_CONSOLE_MESSAGE("Invalid key type\r\n");

        break;
    default:
        SYS_CONSOLE_MESSAGE("Invalid security setting\r\n");
    }

    ConsoleFlush();
    // scan
    SYS_CONSOLE_MESSAGE("\tscan:         ");
    DRV_WIFI_ScanContextGet(&ws.ScanContext);
    if (ws.ScanContext.scanType == DRV_WIFI_PASSIVE_SCAN)
        SYS_CONSOLE_MESSAGE("Passive Scan\r\n");
    else if (ws.ScanContext.scanType == DRV_WIFI_ACTIVE_SCAN)
        SYS_CONSOLE_MESSAGE("Active Scan\r\n");
    else
        SYS_CONSOLE_MESSAGE("Invalid\r\n");

    // mac
    DRV_WIFI_MacAddressGet(ws.MAC);
    SYS_CONSOLE_MESSAGE("\tmac:          ");

    SYS_CONSOLE_PRINT("%02X:%02X:%02X:%02X:%02X:%02X\r\n",
                        ws.MAC[0],
                        ws.MAC[1],
                        ws.MAC[2],
                        ws.MAC[3],
                        ws.MAC[4],
                        ws.MAC[5]);
}