diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_common/umac_common/src/UmacWsaScan.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanldd/wlan_common/umac_common/src/UmacWsaScan.cpp Tue Feb 02 02:03:13 2010 +0200 @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Implementation of the WlanWsaScan class +* +*/ + +/* +* %version: 15 % +*/ + +#include "config.h" +#include "UmacWsaScan.h" +#include "UmacContextImpl.h" + +#ifndef NDEBUG +const TInt8 WlanWsaScan::iName[] = "wsa-scan"; +#endif + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +WlanWsaScan::~WlanWsaScan() + { + iChannels = NULL; + iSsid = NULL; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void WlanWsaScan::Entry( WlanContextImpl& aCtxImpl ) + { + // mark WSA cmd active + aCtxImpl.ActivateWsaCmd(); + + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaScan::Entry: iMaxTransmitRate: 0x%08x"), + iMaxTransmitRate ); + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaScan::Entry: iScanType: %d"), iScanType ); + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaScan::Entry: iNumOfProbeRequests: %d"), + iNumOfProbeRequests ); + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaScan::Entry: iSplitScan: %d"), iSplitScan ); + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaScan::Entry: iNumOfSSID: %d"), iNumOfSSID ); + +#ifndef NDEBUG + if ( iNumOfSSID ) + { + TUint8 ssidTraceBuf[KMaxSSIDLength + 1]; // + 1 for NULL termination + + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaScan::Entry: SSIDs:") ); + + const WHA::SSSID* ssid_end = iSsid + iNumOfSSID; + + for ( const WHA::SSSID* ssid_ptr = iSsid + ; ssid_ptr != ssid_end ; ++ssid_ptr ) + { + // trace the SSIDs + + os_memset( ssidTraceBuf, 0, sizeof( ssidTraceBuf ) ); + os_memcpy( ssidTraceBuf, ssid_ptr->iSSID, ssid_ptr->iSSIDLength ); + + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaScan::Entry: SSID length: %d, SSID:"), + ssid_ptr->iSSIDLength ); + OsTracePrint( KWsaCmdStateDetails, ssidTraceBuf ); + } + } +#endif // !NDEBUG + + OsTracePrint( KWsaCmdState, (TUint8*) + ("UMAC: WHA-CMD-Scan") ); + + // execute the command + aCtxImpl.Wha().Scan( + iMaxTransmitRate, + iBand, + iNumOfChannels, + iChannels, + iScanType, + iNumOfProbeRequests, + iSplitScan, + iNumOfSSID, + iSsid ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void WlanWsaScan::Set( + WlanContextImpl& /*aCtxImpl*/, + TUint32 aMaxTransmitRate, + WHA::TBand aBand, + TUint8 aNumOfChannels, + const WHA::SChannels* aChannels, + WHA::TScanType aScanType, + TUint8 aNumOfProbeRequests, + TBool aSplitScan, + TUint8 aNumOfSSID, + const WHA::SSSID* aSSID ) + { + iMaxTransmitRate = aMaxTransmitRate; + iBand = aBand; + iNumOfChannels = aNumOfChannels; + iChannels = aChannels; + iScanType = aScanType; + iNumOfProbeRequests = aNumOfProbeRequests; + iSplitScan = aSplitScan; + iNumOfSSID = aNumOfSSID; + iSsid = aSSID; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void WlanWsaScan::CommandResponse( + WlanContextImpl& aCtxImpl, + WHA::TCommandId aCommandId, + WHA::TStatus aStatus, + const WHA::UCommandResponseParams& aCommandResponseParams ) + { + OsTracePrint( KWsaCmdState, + (TUint8*)("UMAC* WlanWsaScan::CommandResponse()") ); + + if ( aCommandId == WHA::EScanCommandResponse ) + { + TraverseToHistoryState( aCtxImpl, + aCommandId, aStatus, aCommandResponseParams ); + } + else + { + OsTracePrint( KErrorLevel, + (TUint8*)("UMAC: aCommandId: %d"), aCommandId ); + OsAssert( (TUint8*)("UMAC * panic"), (TUint8*)(WLAN_FILE), __LINE__ ); + } + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +#ifndef NDEBUG +const TInt8* WlanWsaScan::GetStateName( TUint8& aLength ) const + { + aLength = sizeof( iName ); + return iName; + } +#endif