Example #1
0
HBufC8* CAgentPosition::GetWiFiBufferL(TLocationAdditionalData* additionalData)
	{
	CBufBase* buffer = CBufFlat::NewL(50);
	CleanupStack::PushL(buffer);
	
	CWlanScanInfo* scanInfo=CWlanScanInfo::NewL();
	CleanupStack::PushL(scanInfo);
	CWlanMgmtClient* client=CWlanMgmtClient::NewL();
	CleanupStack::PushL(client);
	client->GetScanResults(*scanInfo);

	for(scanInfo->First(); !scanInfo->IsDone(); scanInfo->Next() )
	{
	
		TWiFiInfo wifiInfo;
		Mem::FillZ(&wifiInfo,sizeof(wifiInfo));
		
		//Retrieve BSSID
		TWlanBssid bssid;
		scanInfo->Bssid( bssid );
		//wifiInfo.macAddress.Zero();
		//wifiInfo.macAddress.Copy(bssid);
		for(TInt k = 0; k < bssid.Length(); k++)
			wifiInfo.macAddress[k] = bssid[k];
		
		//Retrieve transmision level
		TInt8 rxLevel = scanInfo->RXLevel();
		wifiInfo.rssi = rxLevel;
		
		//Retrieve SSID
		TBuf8<36> ssid;
		TInt err;
		err = GetSSID(scanInfo, ssid);
		if(err == KErrNone)
		{
			wifiInfo.ssidLen = ssid.Length();
			for(TInt i=0; i<wifiInfo.ssidLen; i++)
				wifiInfo.ssid[i] = ssid[i]; 
		}
		else 
		{
			wifiInfo.ssidLen = 0;
		}
		
		additionalData->uStructNum += 1;
		
		buffer->InsertL(buffer->Size(), &wifiInfo, sizeof(TWiFiInfo));
	}

	CleanupStack::PopAndDestroy(client);
	CleanupStack::PopAndDestroy(scanInfo);
	
	HBufC8* result = buffer->Ptr(0).AllocL();
	CleanupStack::PopAndDestroy(buffer);
	
	return result;
	}
void CNetSettingPage_Tools_PingView::PingThread()
{
	DWORD dwTotalCount = 0;
	DWORD dwSuccessCount = 0;
	DWORD dwFailedCount = 0;

	int nRSSI = 0;
	TCHAR tszSSID[64] = {0,};

	while( m_bIsPingOperating == TRUE )
	{
		if( m_ping.StartPing(&m_pingResult) == TRUE )
		{
			m_strResult.Format(_T("[%d] Size(%d),Time(%dms),TTL(%d)\r\n"),dwTotalCount, m_pingResult.dwDataSize, m_pingResult.dwTime, m_pingResult.ucTtl );
			dwSuccessCount++;
		}
		else
		{
			if( m_pingResult.dwErrCode == 11010 )
			{
				m_strResult.Format(_T("Request timed out.\r\n") );
			}
			else
			{
				m_strResult.Format(_T("Error (%d) \r\n"), m_pingResult.dwErrCode);
			}

			dwFailedCount++;
		}

		m_editPingResult.ReplaceSel(m_strResult, TRUE);

		dwTotalCount = dwSuccessCount + dwFailedCount;

		
		GetSSID(m_adapterInfo.tszAdapterName, tszSSID);
		if( _tcslen(tszSSID) != 0)
		{
			GetRSSI(m_adapterInfo.tszAdapterName, &nRSSI);
		}
		

		SetDlgItemInt(IDC_STATIC_RSSI, nRSSI);
		SetDlgItemText(IDC_STATIC_SSID, tszSSID);

		Sleep(1000);



		
	}

	m_strResult.Format(_T("Total/Success/Failed(%d/%d/%d) \r\n"),dwTotalCount, dwSuccessCount, dwFailedCount );
	m_editPingResult.ReplaceSel(m_strResult, TRUE);

}