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(); }
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(); }
void ConsoleInit(){ consoleInited = 1; ConsoleFlush(); }
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]); }