telephonyserverplugins/attestltsy/atcommand/phone/src/atdetectnetwork.cpp
author Tom Pritchard <tomp@symbian.org>
Tue, 09 Feb 2010 12:31:43 +0000
branchAT_Test_LTSY
changeset 1 4047d69ee0e4
permissions -rw-r--r--
Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     7
//
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    10
//
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    11
// Contributors:
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    12
//
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    13
// Description:
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    14
// Get the detected network
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    15
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    16
#include "atdetectnetwork.h"
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    17
#include "mslogger.h"
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    18
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    19
_LIT8(KDetectNetworkCommand,"AT+COPS=?\r");
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    20
_LIT8(KGetDetectNetworkRepondStr,"+COPS:");
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    21
const TInt KLtsyDetectNetworkReadTimeOut = 80;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    22
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    23
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    24
// NetworkIdL
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    25
// Utility function to translate the 5 digit ASCII network identification 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    26
// returned by the ME into Mobile Country Code (aCountryCode) and a Mobile 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    27
// Network Code (aNetworkIdentity) strings. Tbe format returned by the ME is 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    28
// XXXYY, where XXX represents the Mobile Country Code and YY represents the 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    29
// Mobile Network Code.
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    30
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    31
static TInt NetworkIdL(const TDesC8& aCode,
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    32
					   RMobilePhone::TMobilePhoneNetworkCountryCode& aCountryCode, 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    33
					   RMobilePhone::TMobilePhoneNetworkIdentity& aNetworkIdentity)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    34
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    35
	if (aCode.Length()!=5)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    36
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    37
		return KErrGeneral;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    38
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    39
	
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    40
	aCountryCode.SetLength(3);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    41
	aCountryCode[0] = aCode[0];
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    42
	aCountryCode[1] = aCode[1];
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    43
	aCountryCode[2] = aCode[2];
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    44
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    45
	aNetworkIdentity.SetLength(2);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    46
	aNetworkIdentity[0] = aCode[3];
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    47
	aNetworkIdentity[1] = aCode[4];
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    48
	return KErrNone;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    49
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    50
// Class CATDetectNetwork
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    51
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    52
// CATDetectNetwork::NewL
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    53
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    54
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    55
CATDetectNetwork* CATDetectNetwork::NewL(CGlobalPhonemanager& aGloblePhone, 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    56
	                                     CCtsyDispatcherCallback& aCtsyDispatcherCallback)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    57
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    58
	CATDetectNetwork* self = new(ELeave) CATDetectNetwork(aGloblePhone,aCtsyDispatcherCallback);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    59
	CleanupStack::PushL(self );
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    60
	self->ConstructL();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    61
	CleanupStack::Pop(self );
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    62
	return self ;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    63
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    64
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    65
// CATDetectNetwork::CATDetectNetwork
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    66
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    67
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    68
CATDetectNetwork::CATDetectNetwork(CGlobalPhonemanager& aGloblePhone, 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    69
	                               CCtsyDispatcherCallback& aCtsyDispatcherCallback)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    70
		:CAtCommandBase(aGloblePhone,aCtsyDispatcherCallback)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    71
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    72
	iReadTimeOut = KLtsyDetectNetworkReadTimeOut;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    73
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    74
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    75
// CATDetectNetwork::ConstructL
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    76
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    77
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    78
void CATDetectNetwork::ConstructL()
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    79
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    80
	CAtCommandBase::ConstructL();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    81
	iList= NULL;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    82
	iCommandRunning = EFalse;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    83
	iCommandCancel = EFalse;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    84
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    85
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    86
// CATDetectNetwork::~CATDetectNetwork
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    87
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    88
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    89
CATDetectNetwork::~CATDetectNetwork()
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    90
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    91
	if(iList)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    92
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    93
		delete iList;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    94
		iList = NULL;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    95
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    96
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    97
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    98
// CATDetectNetwork::StartRequestL
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
    99
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   100
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   101
void CATDetectNetwork::StartRequest()
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   102
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   103
	iCommandRunning = ETrue;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   104
	ExecuteCommand();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   105
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   106
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   107
// CATDetectNetwork::ExecuteCommand
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   108
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   109
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   110
void CATDetectNetwork::ExecuteCommand()
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   111
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   112
	iTxBuffer.Copy(KDetectNetworkCommand);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   113
	Write();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   114
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   115
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   116
// CATDetectNetwork::CancelCommand
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   117
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   118
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   119
void CATDetectNetwork::CancelCommand()
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   120
	{	
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   121
	iCommandCancel = ETrue;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   122
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   123
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   124
// CATDetectNetwork::ParseResponseL
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   125
// should be
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   126
// +COPS: (status,"longname","shortname",code),... ,,(list),(list)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   127
// +COPS: [list of supported (<stat>,long alphanumeric <oper>,short alphanumeric 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   128
// <oper>,numeric <oper>)s]
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   129
// <stat>:
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   130
// 0 unknown
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   131
// 1 available
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   132
// 2 current
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   133
// 3 forbidden
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   134
// <oper>: string type; <format> indicates if the format is alphanumeric or numeric;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   135
// long alphanumeric format can be upto 16 characters long and short format up to 8 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   136
// characters (refer GSM MoU SE.13 [9]); numeric format is the GSM Location Area 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   137
// Identification number (refer GSM 04.08 [8] subclause 10.5.1.3) which consists of
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   138
// a three BCD digit country code coded as in ITU-T E.212 Annex A [10], plus a two 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   139
// BCD digit network code, which is administration specific; returned <oper> shall 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   140
// not be in BCD format, but in IRA characters converted from BCD; hence the number 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   141
// has structure: (country code digit 3)(country code digit 2)(country code digit 1)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   142
// (network code digit 2)(network code digit 1)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   143
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   144
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   145
void CATDetectNetwork::ParseResponseL(const TDesC8& /*aResponseBuf*/)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   146
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   147
	if (CurrentLine().Match(KLtsyOkString) != 0)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   148
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   149
		iError = KErrGeneral;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   150
		return ;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   151
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   152
    if(iList)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   153
    	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   154
    	delete iList;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   155
    	iList = NULL;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   156
    	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   157
	iList=CMobilePhoneNetworkListV2::NewL();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   158
	
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   159
	RArray<TPtrC8> array;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   160
	CleanupClosePushL(array);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   161
	iParser->ParseRespondedBuffer(array,PrecedingLine());
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   162
	TInt Count = array.Count();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   163
	if (Count < 1)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   164
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   165
		CleanupStack::PopAndDestroy();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   166
		iError = KErrNotFound;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   167
		return ;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   168
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   169
	if( array[0].MatchF(KGetDetectNetworkRepondStr)==KErrNotFound)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   170
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   171
		CleanupStack::PopAndDestroy();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   172
		iError = KErrNotFound;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   173
		return ;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   174
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   175
	TInt count = array.Count() - 1;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   176
	for (TInt i = 1;i < count;i++)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   177
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   178
		RMobilePhone::TMobilePhoneNetworkInfoV2 info;	
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   179
		// This TSY only supports GSM mode so we can hardcode this
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   180
		info.iMode=RMobilePhone::ENetworkModeGsm;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   181
		TInt val;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   182
		TLex8 lex(array[i]);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   183
		lex.Val(val);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   184
		info.iStatus = RMobilePhone::TMobilePhoneNetworkStatus(val);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   185
		i++;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   186
		info.iLongName.Copy(array[i]);		
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   187
		i++;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   188
		if(array[i].Length() > info.iShortName.MaxLength())
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   189
			info.iShortName.Copy(array[i].Mid(0,info.iShortName.MaxLength()));			
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   190
		else
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   191
			info.iShortName.Copy(array[i]);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   192
		i++;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   193
		User::LeaveIfError(NetworkIdL(array[i],info.iCountryCode, info.iNetworkId));  // MNC and MCC	
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   194
		
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   195
		iList->AddEntryL(info); 
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   196
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   197
	CleanupStack::PopAndDestroy();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   198
	} //ParseResponseL
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   199
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   200
// ATDetectNetwork::EventSignal
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   201
// other items were commented in a header
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   202
// ---------------------------------------------------------------------------
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   203
void CATDetectNetwork::EventSignal(TAtEventSource aEventSource, TInt aStatus)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   204
	{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   205
	if(KErrNone ==aStatus)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   206
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   207
		if(aEventSource == EReadCompletion)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   208
			{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   209
			aStatus = iError;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   210
			}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   211
		else
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   212
			return;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   213
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   214
	if(iCommandCancel)
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   215
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   216
		iCtsyDispatcherCallback.CallbackPhoneGetDetectedNetworksCancelComp(0);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   217
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   218
	else
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   219
		{
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   220
		iCtsyDispatcherCallback.CallbackPhoneGetDetectedNetworksComp(aStatus,*iList);
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   221
		}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   222
	iCommandRunning = EFalse;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   223
	iCommandCancel = EFalse;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   224
	CAtCommandBase::Complete();
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   225
	iPhoneGlobals.iEventSignalActive = EFalse;
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   226
	
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   227
	}
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   228
//
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   229
// End of file
4047d69ee0e4 Initial upload of Nokia's AT based test LTSY which uses the dispatcher
Tom Pritchard <tomp@symbian.org>
parents:
diff changeset
   230