wlan_bearer/wlanldd/wlan_common/umac_common/src/UmacWsaJoin.cpp
changeset 0 c40eb8fe8501
--- /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<WHA::TOperationMode>(0) ), 
+    iBSSID ( WHA::KZeroMacAddr), iBand( 0 ),
+    iChannel( 0 ), iBeaconInterval( 0 ),
+    iBasicRateSet( 0 ), iAtimWindow( 0 ),
+    iPreambleType( static_cast<WHA::TPreamble>(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<const ::TMacAddress&>(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