--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/hayes/ATINIT.H Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,224 @@
+// Copyright (c) 1997-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:
+// AT Initialisation
+//
+//
+
+/**
+ @file
+ @internalAll
+*/
+
+#ifndef __ATINIT_H__
+#define __ATINIT_H__
+
+#include <cdblen.h>
+#include "ATBASE.H"
+#include "mSMSMEM.H"
+
+class CATInit : public CATBase
+/**
+@internalTechnology
+*/
+ {
+public:
+ // Object instantiation method
+ static CATInit* NewL(CATIO* aIo,CTelObject* aTelObject,CPhoneGlobals* aPhoneGlobals);
+
+ // C++ destructor
+ ~CATInit();
+
+ // Public API methods
+ void StartInit(CATCommands* aPendingCommand, TTsyReqHandle aTsyReqHandle, TAny* aParams);
+ void StopInit(TTsyReqHandle aTsyReqHandle);
+ void SpecialStart(TTsyReqHandle aTsyReqHandle=NULL);
+ TBool JustInitialised(TInt& aError) const;
+ void Complete(TInt aError);
+ CATSmsMemoryStorage* iEnumerate;
+ TBool CheckActiveReqHandle(const TTsyReqHandle aTsyReqHandle);
+
+private:
+ // C++ constructor and second stage construct
+ CATInit(CATIO* aIo,CTelObject* aTelObject,CPhoneGlobals* aPhoneGlobals);
+ void ConstructL();
+
+ // Methods inherited from CATBase
+ virtual void EventSignal(TEventSource aSource);
+ virtual void CompleteWithIOError(TEventSource aSource,TInt aStatus);
+
+ // Class Utility Methods
+ void InitAttempt();
+ void ParseWaitTimeL();
+ void ValidateATHExpectStringL();
+ void RetryOrFail(TBool aCommsErrorOccurred = EFalse);
+ void ParsePhoneBearerServiceTypeL();
+ void ParsePhoneCapsL();
+ void ParseAnErroredPhoneCaps();
+ void ParsePhoneBookStorageL();
+ TInt GetIdentityResponse();
+ void DoGetIdentityResponseL();
+ TBool CheckResponse(TPtrC8 aResult);
+ void CheckCMGFResponseL();
+ void ParseOperatorL();
+ void ParseCurrentMsClassL();
+ void ParseMaxMsClassL();
+ void ParseCGQREQResponseL();
+ void ParseCGATTResponseL();
+ void ParseCNMIResponseL();
+ void ParseCBSTResponseL();
+ void SetSpeedCaps(TInt aVal,RMobileCall::TMobileCallDataCapsV1& aCaps);
+ void SetNameCaps(TInt aVal,RMobileCall::TMobileCallDataCapsV1& aCaps);
+ void SetCECaps(TInt aVal,RMobileCall::TMobileCallDataCapsV1& aCaps);
+
+private:
+ TUint iAttemptCnt; // For the entire initialise sequence
+ TUint iRetryCounter; // For "AT" which is sent after the user-defined modem
+ // init string
+ CATCommands* iPendingCommand; // Which command to set going after initialisation
+ TAny* iParams;
+ CCommChatString* iExpectString;
+ CCommChatString* iConnectExpectString;
+ CCommChatString* iNoCarrierExpectString;
+ TBool iInitJustCompleted;
+ TInt iInitError;
+ TBool iMoreInfoFlag;
+ TBool iCGMIFlag;
+ TBool iCGMMFlag;
+ TBool iCGMRFlag;
+ TBool iCGSNFlag;
+
+ enum {
+ EShortTimeOutFix,
+ EWaitForDSR,
+ EWaitForATHangUpWriteComplete,
+ EWaitForATHangUpOK,
+ EWaitForModemInitWrite,
+ EWaitForModemInitOK,
+ EWaitForATCheckWrite,
+ EATWaitForATCheckOK,
+ EWaitForATGetPhoneCapsWrite,
+ EWaitForATGetPhoneCapsOK,
+ EWaitForATStandardInitWrite,
+ EWaitForATStandardInitOK,
+ EWaitForATUnsolicitedFixWrite,
+ EWaitForATUnsolicitedFixOK,
+ EWaitForATCarrierWaitTimeWrite,
+ EWaitForATCarrierWaitTimeOK,
+ EWaitForATAutoAnswerTimeWrite,
+ EWaitForATAutoAnswerTimeOK,
+ EATWaitForSendingCMGFRequestWrite,
+ EATWaitForSendingCMGFRequestComplete,
+ EATWaitForSendingCMGFConfigureWrite,
+ EATWaitForCMGFResponseOKComplete,
+ EATWaitForSendingCNMIConfigRequest,
+ EATWaitForSendingCNMIRequestComplete,
+ EATWaitForSendingCNMIConfigureWrite,
+ EATWaitForSendingCNMIConfigureComplete,
+ EATWaitForTestPhoneBookStorageWriteComplete,
+ EATWaitForTestPhoneBookStorageRequestComplete,
+ EATWaitForSendingEnumRequest,
+ EATWaitForSendingEnumRequestComplete,
+ EATWaitForGetPrefMemWriteComplete,
+ EATWaitForGetPrefMemReadComplete,
+ EATWaitForSendingCGMIRequest,
+ EATWaitForSendingCGMIRequestComplete,
+ EATWaitForSendingCGMMRequest,
+ EATWaitForSendingCGMMRequestComplete,
+ EATWaitForSendingCGMRRequest,
+ EATWaitForSendingCGMRRequestComplete,
+ EATWaitForSendingCGSNRequest,
+ EATWaitForSendingCGSNRequestComplete,
+ EATGetSubscriberIdWriteComplete,
+ EATGetSubscriberIdReadComplete,
+ EATWaitForSetExtendedCallIndicationWrite,
+ EATWaitForSetExtendedCallIndicationOK,
+ EATWaitForClearUnsolicitedNetworkRegistrationWrite,
+ EATWaitForClearUnsolicitedNetworkRegistrationOK,
+ EATWaitForSetUnsolicitedNetworkRegistrationWrite,
+ EATWaitForSetUnsolicitedNetworkRegistrationOK,
+ EATWaitForReadUnsolicitedNetworkRegistrationWrite,
+ EATWaitForReadUnsolicitedNetworkRegistrationOK,
+ EATGetCurrentOperatorWriteComplete,
+ EATGetCurrentOperatorReadComplete,
+ EATGetBatteryInfoWriteComplete,
+ EATGetBatteryInfoReadComplete,
+ EATGetSignalInfoWriteComplete,
+ EATGetSignalInfoReadComplete,
+ EATGetBearerServiceType, // DJN these should be changed ???
+ EATSetBearerServiceType, // DJN
+ EATGetCurrentMSCLASSWriteComplete,
+ EATGetCurrentMSCLASSReadComplete,
+ EATGetMaxMSCLASSWriteComplete,
+ EATGetMaxMSCLASSReadComplete,
+ EATGetCurrentCGQREQTWriteComplete,
+ EATGetCurrentCGQREQTReadComplete,
+ EATGetCurrentGprsAttachStateWriteComplete,
+ EATGetCurrentGprsAttachStateReadComplete,
+ EATWaitForSendingCNMIRequest,
+ EATWaitForSendingCNMIComplete,
+ EATWaitForSendingCBSTRequest,
+ EATWaitForSendingCBSTComplete,
+ EATWaitForSendingCSCARequest,
+ EATWaitForSendingCSCAComplete,
+ EATWaitForSetUnsolicitedGPRSNetworkRegistrationWrite,
+ EATWaitForSetUnsolicitedGPRSNetworkRegistrationOK,
+ EATWaitForSendingECAMRequest,
+ EATWaitForSendingECAMComplete
+ } iState;
+ };
+
+class CATHangUpData;
+class CCallHayes;
+class CATQuickInit : public CATBase
+/**
+@internalTechnology
+*/
+ {
+public:
+ static CATQuickInit* NewL(CATIO* aIo,CTelObject* aTelObject,CPhoneGlobals* aPhoneGlobals);
+ ~CATQuickInit();
+ void StartQuickInit();
+ void CancelAndHangUp(TCallInfoTSY* aCallInfoTSY, CATHangUpData* aHangUpData);
+protected:
+ CATQuickInit(CATIO* aIo,CTelObject* aTelObject,CPhoneGlobals* aPhoneGlobals);
+ virtual void EventSignal(TEventSource aSource);
+ virtual void CompleteWithIOError(TEventSource aEventSource, TInt aStatus);
+private:
+ void ValidateATHExpectStringL();
+ void Complete(TInt aError);
+ void RemoveQuickInitExpectStrings();
+private:
+ TInt iAttempt;
+ enum {
+ ENotInProgress,
+ EWaitForATSilence,
+ EWaitForEscapeWriteCompletion,
+ EWaitForATEscapeOK,
+ EWaitForATWrite,
+ EWaitForATOK,
+ EATOWaitForWriteComplete,
+ EWaitForATOOK,
+ EWaitForDTRDropped,
+ EWaitForDTRRaised,
+ ECancelling
+ } iState;
+ CCommChatString* iConnectExpectString;
+ CCommChatString* iRingExpectString;
+ CCommChatString* iNoCarrierExpectString;
+ CATHangUpData* iHangUpData; // temporary storage while quick init cancels, before calling
+ TCallInfoTSY* iCallInfo; // hang up.
+ TBuf8<KCommsDbSvrMaxFieldLength> iConnectString;
+ };
+
+#endif