diff -r 000000000000 -r c40eb8fe8501 wlan_bearer/wlanldd/wlan_common/umac_common/src/UmacWsaJoin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wlan_bearer/wlanldd/wlan_common/umac_common/src/UmacWsaJoin.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 WlanWsaJoin class +* +*/ + +/* +* %version: 14 % +*/ + +#include "config.h" +#include "UmacWsaJoin.h" +#include "UmacContextImpl.h" + +#ifndef NDEBUG +const TInt8 WlanWsaJoin::iName[] = "wsa-join"; +#endif + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +WlanWsaJoin::WlanWsaJoin() : + iMode( static_cast(0) ), + iBSSID ( WHA::KZeroMacAddr), iBand( 0 ), + iChannel( 0 ), iBeaconInterval( 0 ), + iBasicRateSet( 0 ), iAtimWindow( 0 ), + iPreambleType( static_cast(0) ), + iProbeForJoin( EFalse ) + { + iSSID.iSSIDLength = 0; + os_memset( &iSSID.iSSID, 0, sizeof( iSSID.iSSID ) ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void WlanWsaJoin::Entry( WlanContextImpl& aCtxImpl ) + { + // mark WSA cmd active + aCtxImpl.ActivateWsaCmd(); + +#ifndef NDEBUG + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaJoin::Entry") ); + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaJoin::Entry: iMode: %d"), + iMode ); + + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaJoin::Entry(): BSSID:"), + reinterpret_cast(iBSSID) ); + + OsTracePrint( KWsaCmdStateDetails, + (TUint8*)("UMAC: WlanWsaJoin::Entry: SSID:") ); + TUint8 ssidTraceBuf[KMaxSSIDLength + 1]; // + 1 for NULL termination + os_memset( ssidTraceBuf, 0, sizeof( ssidTraceBuf ) ); + os_memcpy( ssidTraceBuf, iSSID.iSSID, iSSID.iSSIDLength ); + OsTracePrint( KWsaCmdStateDetails, ssidTraceBuf ); + + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaJoin::Entry: iChannel: %d"), + iChannel ); + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaJoin::Entry: iBeaconInterval: %d"), + iBeaconInterval ); + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaJoin::Entry: iBasicRateSet: 0x%08x"), + iBasicRateSet ); + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaJoin::Entry: iAtimWindow: %d"), + iAtimWindow ); + OsTracePrint( KWsaCmdStateDetails, (TUint8*) + ("UMAC: WlanWsaJoin::Entry: iPreambleType: %d"), + iPreambleType ); + OsTracePrint( KWsaCmdStateDetails, (TUint8*)("UMAC: WlanWsaJoin::Entry(): iProbeForJoin: %d"), + iProbeForJoin ); + + OsTracePrint( KWsaCmdState, (TUint8*) + ("UMAC: WHA-CMD-Join") ); +#endif // !NDEBUG + + // execute the command + aCtxImpl.Wha().Join( + iMode, iBSSID, iSSID, iBand, iChannel, + iBeaconInterval, iBasicRateSet, iAtimWindow, + iPreambleType, iProbeForJoin ); + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void WlanWsaJoin::Set( + WlanContextImpl& /*aCtxImpl*/, + WHA::TOperationMode aMode, + WHA::TMacAddress& aBSSID, + WHA::TBand aBand, + WHA::SSSID& aSSID, + WHA::TChannelNumber aChannel, + TUint32 aBeaconInterval, + WHA::TRate aBasicRateSet, + TUint16 aAtimWindow, + WHA::TPreamble aPreambleType, + TBool aProbeForJoin ) + { + iMode = aMode; + iBSSID = aBSSID; + iSSID = aSSID; + iBand = aBand; + iChannel = aChannel; + iBeaconInterval = aBeaconInterval; + iBasicRateSet = aBasicRateSet; + iAtimWindow = aAtimWindow; + iPreambleType = aPreambleType; + iProbeForJoin = aProbeForJoin; + } + +// --------------------------------------------------------------------------- +// +// --------------------------------------------------------------------------- +// +void WlanWsaJoin::CommandResponse( + WlanContextImpl& aCtxImpl, + WHA::TCommandId aCommandId, + WHA::TStatus aStatus, + const WHA::UCommandResponseParams& aCommandResponseParams ) + { + OsTracePrint( KWsaCmdState, (TUint8*) + ("UMAC: WlanWsaJoin::CommandResponse") ); + + if ( aCommandId == WHA::EJoinResponse ) + { + 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* WlanWsaJoin::GetStateName( TUint8& aLength ) const + { + aLength = sizeof( iName ); + return iName; + } +#endif