--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/cbsref/telephonyrefplugins/atltsy/atcommand/generic/src/atswitchonlinemode.cpp Tue Jul 06 15:36:38 2010 +0300
@@ -0,0 +1,227 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+// This contains CATSwitchOnLineMode which switch to online mode
+//
+
+#include "atswitchonlinemode.h"
+#include "mslogger.h"
+#include "commengine.h"
+#include "tsyconfg.h"
+
+// Class CATSwitchOnLineMode
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::NewL
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+CATSwitchOnLineMode* CATSwitchOnLineMode::NewL(CGlobalPhonemanager& aGloblePhone,
+ CCtsyDispatcherCallback& aCtsyDispatcherCallback)
+ {
+ CATSwitchOnLineMode* self = new(ELeave) CATSwitchOnLineMode(aGloblePhone,
+ aCtsyDispatcherCallback);
+ CleanupStack::PushL(self );
+ self->ConstructL();
+ CleanupStack::Pop(self );
+ return self ;
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::CATSwitchOnLineMode
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+CATSwitchOnLineMode::CATSwitchOnLineMode(CGlobalPhonemanager& aGloblePhone,
+ CCtsyDispatcherCallback& aCtsyDispatcherCallback)
+ :CAtCommandBase(aGloblePhone,aCtsyDispatcherCallback)
+ {
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::ConstructL
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::ConstructL()
+ {
+ CAtCommandBase::ConstructL();
+ RemoveAllExpectString();
+ AddExpectStringL(KLtsyNoCarrierString());
+ iWhichTimer = ETimerNone;
+ iCallbackTimer = CCallbackTimer::NewL(*this);
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::~CATSwitchOnLineMode
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+CATSwitchOnLineMode::~CATSwitchOnLineMode()
+ {
+ if(iCallbackTimer)
+ {
+ iCallbackTimer->Cancel();
+ delete iCallbackTimer;
+ iCallbackTimer = NULL;
+ }
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::ExecuteCommand
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::ExecuteCommand()
+ {
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::ParseResponseL
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::ParseResponseL(const TDesC8& /*aResponseBuf*/)
+ {
+ if(CurrentLine().Match(KLtsyNoCarrierString) == 0)
+ {
+ iError = KErrNone;
+ }
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::StartSwitchOnLineModeL
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::StartSwitchOnLineMode(CAtCommandBase* aAtCommandBase,
+ MAtCommandExecuteObserver* aAtCommandObserver)
+ {
+ iAtCommandBase = aAtCommandBase;
+ iAtCommandObserver = aAtCommandObserver;
+ RemoveAtCommandObserver();
+ iPhoneGlobals.iCommEngine->CommCancel(); // This required to avoid a panic in C32 when we call iIo->ConfigurePort
+ TCommConfig configPckg;
+ TInt ret = KErrNone;
+ ret = iPhoneGlobals.iConfiguration->PortConfig(configPckg,EConfigTypeHangUp);
+ if (ret==KErrNone)
+ ret = iPhoneGlobals.iCommEngine->ConfigurePort(configPckg);
+ if (ret!=KErrNone)
+ {
+ iAtCommandBase->EventSignal(EWriteCompletion,ret);
+ }
+ iPhoneGlobals.iCommEngine->DropDtr();
+ iWhichTimer = ETimerDrop;
+ StartTimer(500000L);
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::EventSignal
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::EventSignal(TAtEventSource /*aEventSource*/, TInt aStatus)
+ {
+ if(KErrNone ==aStatus)
+ {
+ aStatus = iError;
+ }
+ CAtCommandBase::Complete();
+ if(KErrNone ==aStatus)
+ {
+ //iPhoneGlobals.iPhoneStatus.iMode = RPhone::EModeOnlineCommand;
+ Disable();
+ StartTimer(1000000L);
+ iWhichTimer = ETimerWait;
+ }
+ else
+ {
+ Disable();
+ iPhoneGlobals.iEventSignalActive = EFalse;
+ iAtCommandBase->EventSignal(EWriteCompletion,KErrNotReady);
+ }
+
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::Enable
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::Enable()
+ {
+ AddUnsolicitedAtCommand();
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::Disable
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::Disable()
+ {
+ RemoveAtCommand();
+ }
+// ---------------------------------------------------------------------------
+// CATSwitchOnLineMode::StartTimer
+// other items were commented in a header
+// ---------------------------------------------------------------------------
+void CATSwitchOnLineMode::StartTimer(const TInt aTimeout)
+ {
+ if (iCallbackTimer->IsActive())
+ iCallbackTimer->Cancel();
+ iCallbackTimer->After(aTimeout);
+ }
+/**
+ *
+ *
+ */
+void CATSwitchOnLineMode::TimerRun(TInt aError)
+ {
+ if(aError == KErrNone)
+ {
+ switch(iWhichTimer)
+ {
+ case ETimerDrop:
+ LOGTEXT(_L8("[Ltsy] CATSwitchOnLineMode::ETimerDrop time out."));
+ iPhoneGlobals.iCommEngine->RaiseDTR();
+ iPhoneGlobals.iPhoneStatus.iMode = RPhone::EModeOnlineCommand;
+ iPhoneGlobals.iEventSignalActive = ETrue;
+ iWhichTimer = ETimerRaise;
+ StartTimer(1000000L);
+ break;
+ case ETimerRaise:
+ LOGTEXT(_L8("[Ltsy] CATSwitchOnLineMode::ETimerRaise time out."));
+ iPhoneGlobals.iCommEngine->ResetBuffers();
+ iWhichTimer = ETimerReset;
+ StartTimer(1000000L);
+ break;
+ case ETimerReset:
+ LOGTEXT(_L8("[Ltsy] CATSwitchOnLineMode::ETimerReset time out."));
+ ClearBuffer();
+ iPhoneGlobals.iCommEngine->Read();
+ iWhichTimer = ETimerRead;
+ Enable();
+ StartTimer(1000000L);
+ break;
+ case ETimerRead:
+ LOGTEXT(_L8("[Ltsy] CATSwitchOnLineMode::ETimerRead time out."));
+ StartTimer(1000000L);
+ iWhichTimer = ETimerWait;
+ break;
+ case ETimerWait:
+ LOGTEXT(_L8("[Ltsy] CATSwitchOnLineMode::ETimerWait time out."));
+ if(iAtCommandObserver)
+ {
+ SetAtCommandObserver(iAtCommandObserver);
+ }
+ Disable();
+ iAtCommandBase->StartRequest();
+ iWhichTimer = ETimerNone;
+ break;
+ default:
+ Disable();
+ iPhoneGlobals.iEventSignalActive = EFalse;
+ iAtCommandBase->EventSignal(EWriteCompletion,KErrNotReady);
+ break;
+ }
+ }
+ else
+ {
+ Disable();
+ iPhoneGlobals.iEventSignalActive = EFalse;
+ iAtCommandBase->EventSignal(EWriteCompletion,KErrNotReady);
+ }
+ }
+//
+// End of file