Пример #1
0
 void WFDisplayScanMgr(void)
{
    DRV_WIFI_SCAN_RESULT   bssDesc;
    char ssid[32+1];
    char buf[10];
    int i;
    char rssiChan[48];

    if ((SCANCXT.numScanResults == 0)               ||
        (!IS_SCAN_STATE_DISPLAY(SCANCXT.scanState)) ||
        (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))    ||
        (!IS_SCAN_STATE_VALID(SCANCXT.scanState)))
    {
       SCAN_CLEAR_DISPLAY(SCANCXT.scanState); 
       return;
    }

    WFRetrieveScanResult(SCANCXT.displayIdx, &bssDesc);

    /* Display SSID */
    for(i=0;i<32;i++) ssid[i] = bssDesc.ssid[i];
    ssid[32] = 0;
    if(bssDesc.ssidLen<32) ssid[bssDesc.ssidLen] = 0;

    sprintf(buf,"%d  ",SCANCXT.displayIdx+1);
    SYS_CONSOLE_MESSAGE(buf);
    SYS_CONSOLE_MESSAGE("SSID:");
    SYS_CONSOLE_MESSAGE(ssid);
    SYS_CONSOLE_MESSAGE("\r\n");

    /* Display SSID  & Channel */
    /* RSSI_MAX : 200, RSSI_MIN : 106 */
    sprintf(rssiChan, "  => RSSI: %u, Channel: %u\r\n", bssDesc.rssi, bssDesc.channel);
    SYS_CONSOLE_MESSAGE(rssiChan);

    #if (WF_DEFAULT_NETWORK_TYPE == DRV_WIFI_NETWORK_TYPE_SOFT_AP) || (DRV_WIFI_DEFAULT_ADHOC_PRESCAN == DRV_WIFI_ENABLED)
        preScanResult[SCANCXT.displayIdx]= bssDesc;    // WF_PRESCAN
        if (SCANCXT.displayIdx == sizeof(preScanResult) / sizeof(preScanResult[0]) - 1) {
            SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
            SCANCXT.displayIdx = 0;
            #if defined(CMD_PARSER)
            WFConsoleReleaseConsoleMsg();
            #endif
        }
    #endif

    if (++SCANCXT.displayIdx == SCANCXT.numScanResults)  
    {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        SCANCXT.displayIdx = 0;
        #if defined(CMD_PARSER)
        WFConsoleReleaseConsoleMsg();
        #endif
    }
}
Пример #2
0
extern void
WFDisplayScanMgr()
{
    tWFScanResult   bssDesc;
    char ssid[32];

    if (!IS_SCAN_STATE_DISPLAY(SCANCXT.scanState))
       return;

    if (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))
       return;

    if (!IS_SCAN_STATE_VALID(SCANCXT.scanState))
       return;

    WFRetrieveScanResult(SCANCXT.displayIdx, &bssDesc);

    /* Display SSID */
    sprintf(ssid, "%s\r\n", bssDesc.ssid);
    putsUART(ssid);

    if (++SCANCXT.displayIdx == SCANCXT.numScanResults)  {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        SCANCXT.displayIdx = 0;
#if defined(WF_CONSOLE)
        WFConsoleReleaseConsoleMsg();
#endif
    }

    return;
}
Пример #3
0
void WFGetScanResults(void)
{
    int    id,counts;

    if (SCANCXT.numScanResults == 0) {
       SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
       return;
    }

    if (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))
       return;

    if (!IS_SCAN_STATE_VALID(SCANCXT.scanState))
       return;

    counts = SCANCXT.numScanResults>50? 50:SCANCXT.numScanResults;
    for(id = 0;id<SCANCXT.numScanResults;id++)
    {
        WFRetrieveScanResult(id, &preScanResult[id]);
    }
    SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
    return;
}
uint16_t WDRV_ScanStart(void)
{
    if (IS_SCAN_IN_PROGRESS(g_scanStatus.scanState))
        return 0;

    WDRV_EXT_CmdScanStart();

    SCAN_SET_IN_PROGRESS(g_scanStatus.scanState);
    SCAN_CLEAR_VALID(g_scanStatus.scanState);
    SCAN_CLEAR_DISPLAY(g_scanStatus.scanState);

    g_wdrv_priv.isScanDone = false;
    g_scanStatus.displayIdx = 0;

    return WDRV_SUCCESS;
}
Пример #5
0
extern void
WFDisplayScanMgr()
{
    tWFScanResult   bssDesc;
    char ssid[32];
	char rssiChan[48];

    if (SCANCXT.numScanResults == 0)
       return;
    if (!IS_SCAN_STATE_DISPLAY(SCANCXT.scanState))
       return;

    if (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))
       return;

    if (!IS_SCAN_STATE_VALID(SCANCXT.scanState))
       return;

    WFRetrieveScanResult(SCANCXT.displayIdx, &bssDesc);

    /* Display SSID */
    sprintf(ssid, "%s\r\n", bssDesc.ssid);
    putsUART(ssid);

	/* Display SSID  & Channel */
    /* RSSI_MAX : 200, RSSI_MIN : 106 */
    sprintf(rssiChan, "  => RSSI: %u, Channel: %u\r\n", bssDesc.rssi, bssDesc.channel);
    putsUART(rssiChan);

    if (++SCANCXT.displayIdx == SCANCXT.numScanResults)  {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        SCANCXT.displayIdx = 0;
#if defined(WF_CONSOLE)
        WFConsoleReleaseConsoleMsg();
#endif
    }

    return;
}
Пример #6
0
void WFDisplayScanMgr()
{
    tWFScanResult   bssDesc;
    char ssid[WF_MAX_SSID_LENGTH+1];
    char rssiChan[48];
    int    i;
    char    st[80];

    if (SCANCXT.numScanResults == 0) {
       SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
       return;
    }
    if (!IS_SCAN_STATE_DISPLAY(SCANCXT.scanState))
       return;

    if (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))
       return;

    if (!IS_SCAN_STATE_VALID(SCANCXT.scanState))
       return;

    WFRetrieveScanResult(SCANCXT.displayIdx, &bssDesc);
    sprintf(st,"%3d ",SCANCXT.displayIdx);
    putrsUART(st);

    if (bssDesc.bssType == 1)
        sprintf(st,"NetType: Infra.");
    else if (bssDesc.bssType == 2)
        sprintf(st,"NetType: Ad-hoc");
    putrsUART(st);

    sprintf(st,", ESSID:");
    putrsUART(st);

    /* Display SSID */
    for(i=0;i<bssDesc.ssidLen;i++) ssid[i] = bssDesc.ssid[i];
    ssid[bssDesc.ssidLen] = 0;
    putsUART(ssid);
    putrsUART("\r\n");

    /* Display SSID  & Channel */
#ifdef STACK_USE_CERTIFICATE_DEBUG
    sprintf(rssiChan, "\tRSSI: %3u, Channel: %2u", bssDesc.rssi, bssDesc.channel);
        putsUART(rssiChan);
    /* Display BSSID */
    sprintf(rssiChan, ", BSSID: %02x:%02x:%02x:%02x:%02x:%02x",
                 bssDesc.bssid[0],bssDesc.bssid[1],bssDesc.bssid[2],
                 bssDesc.bssid[3],bssDesc.bssid[4],bssDesc.bssid[5]);
    putsUART(rssiChan);
    /* Display Security Mode */
    if((bssDesc.apConfig & 0x10) == 0)    // bit4==0:   open (no security)
    {
        sprintf(rssiChan, ", SecMode: %s\r\n", "Open");
    }
    else    // bit4== 1:    security
    {
        if ((bssDesc.apConfig & 0xc0) == 0xc0) // bit7 ==  1: WPA2, bit6 == 1: WPA
        {
            sprintf(rssiChan, ", SecMode: %s\r\n", "WPA/WPA2");
        }
        else if ((bssDesc.apConfig & 0x80) == 0x80) // bit7 ==  1: WPA2
        {
            sprintf(rssiChan, ", SecMode: %s\r\n", "WPA2");
        }
        else if((bssDesc.apConfig & 0x40) == 0x40)//bit6==1: WPA
        {
            sprintf(rssiChan, ", SecMode: %s\r\n", "WPA");
        }
        else    // bit7==0, bit6==0, WEP
        {
            sprintf(rssiChan, ", SecMode: %s\r\n", "WEP");
        }
    }
    putsUART(rssiChan);
#else
    sprintf(rssiChan, ", RSSI: %u, Channel: %u\r\n", bssDesc.rssi, bssDesc.channel);
        putsUART(rssiChan);
#endif

#if (MY_DEFAULT_NETWORK_TYPE == WF_SOFT_AP)
    preScanResult[SCANCXT.displayIdx]= bssDesc;    // WF_PRESCAN
    if (SCANCXT.displayIdx == sizeof(preScanResult) / sizeof(preScanResult[0]) - 1) {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        SCANCXT.displayIdx = 0;
        #if defined(WF_CONSOLE) & defined(STACK_USE_UART)
        WFConsoleReleaseConsoleMsg();
        #endif
    }
#endif

    if (++SCANCXT.displayIdx == SCANCXT.numScanResults)  {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        SCANCXT.displayIdx = 0;
#if defined(WF_CONSOLE) & defined(STACK_USE_UART)
        WFConsoleReleaseConsoleMsg();
#endif
    }

    return;
}
void WDRV_ScanResultsDisplayManager(void)
{
    static bool displayHeader = true;
    uint8_t i;
    uint8_t ssid[32 + 1];

    if ((g_scanStatus.numberOfResults == 0) ||
        (!IS_SCAN_STATE_DISPLAY(g_scanStatus.scanState)) ||
        (IS_SCAN_IN_PROGRESS(g_scanStatus.scanState)) ||
        (!IS_SCAN_STATE_VALID(g_scanStatus.scanState)))
    {
       SCAN_CLEAR_DISPLAY(g_scanStatus.scanState);
       return;
    }

    if (displayHeader)
    {
        g_scanStatus.displayIdx = 0;
        SYS_CONSOLE_MESSAGE((const char *)"\nWi-Fi Scan Results:\r\n\n");
        if (g_scanStatus.numberOfResults == 0)
        {
            /* No AP found, re-initialize the scan context state. Scan is not allowed in Soft AP mode.
             * However, g_scanStatus.numberOfResults needs to be preserved for webpage using.
             */
            SYS_CONSOLE_MESSAGE((const char *)"No AP found\r\n ");
            SCAN_CLEAR_DISPLAY(g_scanStatus.scanState);
            if (WDRV_CONFIG_PARAMS(networkType) == WDRV_NETWORK_TYPE_SOFT_AP) {
                SCAN_CLEAR_VALID(g_scanStatus.scanState);
                return;
            } else {
                return;
            }
        }
        else
        {
            SYS_CONSOLE_MESSAGE((const char *)"    SSID                              RSSI  Channel\r\n");
            SYS_CONSOLE_MESSAGE((const char *)"    --------------------------------  ----  -------\r\n");
            displayHeader = false;
        }
    }

    // If the g_scanResults[] buffer is full, don't try to store more scan results to it.
    if (g_scanStatus.displayIdx > sizeof(g_scanResults) / sizeof(g_scanResults[0]) - 1)
    {
        SCAN_CLEAR_DISPLAY(g_scanStatus.scanState);
        g_scanStatus.displayIdx = 0;
        displayHeader = true;
        return;
    }
    WDRV_EXT_ScanResultGet(g_scanStatus.displayIdx, &(g_scanResults[g_scanStatus.displayIdx]));

    /* Display SSID */
    memset(ssid, ' ', sizeof(ssid));
    for (i = 0; i < g_scanResults[g_scanStatus.displayIdx].ssidLen; ++i)
    {
        if (!isprint(g_scanResults[g_scanStatus.displayIdx].ssid[i]))
            ssid[i] = '*';
        else
            ssid[i] = g_scanResults[g_scanStatus.displayIdx].ssid[i];
    }
    ssid[32] = 0;

    /* RSSI_MAX : 128, RSSI_MIN : 43 */
    SYS_CONSOLE_PRINT(" %2d)%s  %2u    %u\r\n",
            g_scanStatus.displayIdx + 1,
            ssid,
            g_scanResults[g_scanStatus.displayIdx].rssi,
            g_scanResults[g_scanStatus.displayIdx].channel);

    // If all the scan results have been displayed and stored, clear status and return.
    if (++g_scanStatus.displayIdx >= g_scanStatus.numberOfResults)
    {
        SCAN_CLEAR_DISPLAY(g_scanStatus.scanState);
        g_scanStatus.displayIdx = 0;
        displayHeader = true;
    }
}
void WFDisplayScanMgr(void)
{
    DRV_WIFI_SCAN_RESULT bssDesc;
    char ssid[32 + 1];
    int i;

    if ((SCANCXT.numScanResults == 0)               ||
            (!IS_SCAN_STATE_DISPLAY(SCANCXT.scanState)) ||
            (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))    ||
            (!IS_SCAN_STATE_VALID(SCANCXT.scanState)))
    {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        return;
    }

    WFRetrieveScanResult(SCANCXT.displayIdx, &bssDesc);

    memset(ssid, ' ', sizeof(ssid));

    /* Display SSID */
    for (i = 0; i < bssDesc.ssidLen; i++)
    {
        if (!isprint(bssDesc.ssid[i]))
        {
            ssid[i] = '*';
        }
        else
        {
            ssid[i] = bssDesc.ssid[i];
        }
    }

    ssid[32] = 0;

    /* Display Index & SSID */
    //SYS_CONSOLE_PRINT("%2d)  ",SCANCXT.displayIdx + 1);
    //SYS_CONSOLE_PRINT("%s", ssid);

    /* Display RSSI & Channel */
    /* RSSI_MAX : 128, RSSI_MIN : 43 */
    //SYS_CONSOLE_PRINT(" %2u    %u\r\n", bssDesc.rssi, bssDesc.channel);

    SYS_CONSOLE_PRINT(" %2d) %s %2u    %u\r\n", SCANCXT.displayIdx + 1, ssid, bssDesc.rssi, bssDesc.channel);

    if (p_wifi_ConfigData->networkType == DRV_WIFI_NETWORK_TYPE_SOFT_AP)
    {
        preScanResult[SCANCXT.displayIdx] = bssDesc; // WF_PRESCAN
        if (SCANCXT.displayIdx == sizeof(preScanResult) / sizeof(preScanResult[0]) - 1)
        {
            /* Prescan is finished, re-initialize the scan context state. Scan is not allowed in Soft AP mode.
             * However, SCANCXT.numScanResults needs to be preserved for webpage using.
             */
            SCAN_CLEAR_VALID(SCANCXT.scanState);
            SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
            SCANCXT.displayIdx = 0;
        }
    }
    else
    {
#if (DRV_WIFI_DEFAULT_ADHOC_PRESCAN == DRV_WIFI_ENABLED)
        preScanResult[SCANCXT.displayIdx] = bssDesc; // WF_PRESCAN
        if (SCANCXT.displayIdx == sizeof(preScanResult) / sizeof(preScanResult[0]) - 1)
        {
            SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
            SCANCXT.displayIdx = 0;
        }
#endif
    }

    if (++SCANCXT.displayIdx == SCANCXT.numScanResults)
    {
        if (p_wifi_ConfigData->networkType == DRV_WIFI_NETWORK_TYPE_SOFT_AP)
        {
            /* Prescan is finished, re-initialize the scan context state. Scan is not allowed in Soft AP mode.
             * However, SCANCXT.numScanResults needs to be preserved for webpage using.
             */
            SCAN_CLEAR_VALID(SCANCXT.scanState);
            SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
            SCANCXT.displayIdx = 0;
        }
        else
        {
            SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
            SCANCXT.displayIdx = 0;
        }
    }
}
void WFDisplayScanMgr()
{
    tWFScanResult   bssDesc;
    char ssid[80];
    char rssiChan[48];
    int    count;

    if (SCANCXT.numScanResults == 0)
       return;
    if (!IS_SCAN_STATE_DISPLAY(SCANCXT.scanState))
       return;

    if (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))
       return;

    if (!IS_SCAN_STATE_VALID(SCANCXT.scanState))
       return;

    WFRetrieveScanResult(SCANCXT.displayIdx, &bssDesc);

    /* Display SSID */
    count = SCANCXT.displayIdx + 1;
    sprintf(ssid, "%d SSID: %s\r\n", count, bssDesc.ssid);
    putsUART(ssid);

    /* Display SSID  & Channel */
    /* RSSI_MAX : 200, RSSI_MIN : 106 */
#ifdef STACK_USE_CERTIFATE_DEBUG	
	sprintf(rssiChan, "  => RSSI: %u, Channel: %u", bssDesc.rssi, bssDesc.channel);
    putsUART(rssiChan);
	/* Display BSSID */
	sprintf(rssiChan, " , BSSID: %02x:%02x:%02x:%02x:%02x:%02x ,", 
				 bssDesc.bssid[0],bssDesc.bssid[1],bssDesc.bssid[2],
				 bssDesc.bssid[3],bssDesc.bssid[4],bssDesc.bssid[5]);
	putsUART(rssiChan);
	/* Display Security Mode */
	if((bssDesc.apConfig & 0x10) == 0)	  // bit4==0:	open (no security)
	{
		sprintf(rssiChan, "Security mode: %s\r\n", "Open");
	}
	else								 // bit4== 1:	security
	{			 
		if ((bssDesc.apConfig & 0x80) == 0x80) // bit7 ==  1: WPA2
		{
			sprintf(rssiChan, "Security mode: %s\r\n", "WPA2");
		}
		else if((bssDesc.apConfig & 0x40) == 0x40)//bit6==1: WPA
		{
			sprintf(rssiChan, "Security mode: %s\r\n", "WPA");
		}
		else									  // bit7==0, bit6 ==0, WEP
		{
			sprintf(rssiChan, "Security mode: %s\r\n", "WEP");
		}
	}
	putsUART(rssiChan);
#else
	sprintf(rssiChan, "  => RSSI: %u, Channel: %u\r\n", bssDesc.rssi, bssDesc.channel);
    putsUART(rssiChan);
#endif

#if (MY_DEFAULT_NETWORK_TYPE == WF_SOFT_AP) 		
	preScanResult[SCANCXT.displayIdx]= bssDesc;    // WF_PRESCAN
#endif

    if (++SCANCXT.displayIdx == SCANCXT.numScanResults)  {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        SCANCXT.displayIdx = 0;
#if defined(WF_CONSOLE) & defined(STACK_USE_UART)
        WFConsoleReleaseConsoleMsg();
#endif
    }

    return;
}
Пример #10
0
 void WFDisplayScanMgr(void)
{
    t_wfScanResult   bssDesc;
    char st[80];
    int i;
	
    if ((SCANCXT.numScanResults == 0)               ||
        (!IS_SCAN_STATE_DISPLAY(SCANCXT.scanState)) ||
        (IS_SCAN_IN_PROGRESS(SCANCXT.scanState))    ||
        (!IS_SCAN_STATE_VALID(SCANCXT.scanState)))
    {
       return;
    }

    WFRetrieveScanResult(SCANCXT.displayIdx, &bssDesc);

    /* Display SSID */
    sprintf(st,"%2d ",SCANCXT.displayIdx);
    SYS_CONSOLE_MESSAGE(st);
    SYS_CONSOLE_MESSAGE("SSID: ");
    for(i = 0; i < bssDesc.ssidLen; i++) st[i] = bssDesc.ssid[i];
    st[bssDesc.ssidLen]=0;
    SYS_CONSOLE_MESSAGE(st);
    SYS_CONSOLE_MESSAGE("\r\n");


    /* Display BSSID */
    SYS_CONSOLE_MESSAGE("   BSSID: ");
    for(i = 0; i < WF_BSSID_LENGTH; i++)
    {
        if (i < 5)
        {
            sprintf(st, "%02X:", bssDesc.bssid[i]);
            SYS_CONSOLE_MESSAGE(st);
        }
        else
        {
            sprintf(st, "%02X, ", bssDesc.bssid[i]);
            SYS_CONSOLE_MESSAGE(st);
        }
    }
    /* Display network mode*/
    if (bssDesc.bssType == WF_NETWORK_TYPE_INFRASTRUCTURE)
        SYS_CONSOLE_MESSAGE("Network Mode: Infra, ");
    else if (bssDesc.bssType == WF_NETWORK_TYPE_ADHOC)
        SYS_CONSOLE_MESSAGE("Network Mode: Adhoc, ");

    /* Display RSSI  & Channel */
    sprintf(st, "RSSI: %3u, Channel: %2u\r\n", bssDesc.rssi, bssDesc.channel);
    SYS_CONSOLE_MESSAGE(st);

    #if (WF_DEFAULT_NETWORK_TYPE == WF_NETWORK_TYPE_SOFT_AP)
        preScanResult[SCANCXT.displayIdx]= bssDesc;    // WF_PRESCAN
    #endif

    if (++SCANCXT.displayIdx == SCANCXT.numScanResults)  
    {
        SCAN_CLEAR_DISPLAY(SCANCXT.scanState);
        SCANCXT.displayIdx = 0;
        #if defined(CMD_PARSER)
            WFConsoleReleaseConsoleMsg();
        #endif
    }
}