cbsref/telephonyrefplugins/atltsy/atcommand/pktservice/src/atgprscontextactivate.cpp
author hgs
Thu, 07 Oct 2010 11:24:36 +0100
changeset 76 91e0f833dd8b
parent 44 8b72faa1200f
permissions -rw-r--r--
201039_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     2
// All rights reserved.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     7
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    10
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    11
// Contributors:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    12
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    13
// Description:
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    14
// The execution command is used to activate or deactivate the specified PDP context (s).
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    15
// After the command has completed, the MT remains in V.25ter command state. If any
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    16
// PDP context is already in the requested state, the state for that context remains
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    17
// unchanged.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    18
// If the requested state for any specified context cannot be achieved, an ERROR or +CME
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    19
// ERROR response is returned. Extended error responses are enabled by the +CMEE
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    20
// command.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    21
// If the MT is not GPRS attached when the activation form of the command is executed,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    22
// the MT first performs a GPRS attach and them attempts to activate the specified
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    23
// contexts. If the attach fails then the MT responds with ERROR or, if extended error
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    24
// responses are enabled, with the appropriate failure-to-attach error message.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    25
// If no <cid>s are specified the activation form of the command activates all defined
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    26
// contexts.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    27
// If no <cid>s are specified the deactivation form of the command deactivates all active
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    28
// contexts.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    29
// Two PDP contexts can be activated through Wavecom software.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    30
// The read command returns the current activation states for all the defined PDP
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    31
// contexts.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    32
// The test command is used for requesting information on the supported PDP context
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    33
// activation states.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    34
// Defined Values
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    35
// <state>: indicates the state of PDP context activation
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    36
//  0 ?deactivated
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    37
//  1 ?activated
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    38
//  Other values are reserved and will result in an ERROR response to the
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    39
// execution command.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    40
// <cid>: a numeric parameter which specifies a particular PDP context.
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    41
//  other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    42
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    43
#include "mslogger.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    44
#include "atgprscontextactivate.h"
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    45
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    46
_LIT8(KATContextActivate,   "AT+CGACT=1,%d\r");
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    47
const TInt KLtsyGprsContextActivateTimeOut = 30;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    48
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    49
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    50
// CATGprsContextActivate::NewL
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    51
//
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    52
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    53
CATGprsContextActivate* CATGprsContextActivate::NewL(CGlobalPhonemanager& aGloblePhone, 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    54
                                                     CCtsyDispatcherCallback& aCtsyDispatcherCallback)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    55
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    56
	CATGprsContextActivate* self = new(ELeave) CATGprsContextActivate(aGloblePhone,
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    57
			                                                          aCtsyDispatcherCallback);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    58
	CleanupStack::PushL(self );
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    59
	self->ConstructL();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    60
	CleanupStack::Pop(self );
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    61
	return self ;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    62
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    63
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    64
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    65
// CATGprsContextActivate::CATGprsContextActivate
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    66
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    67
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    68
CATGprsContextActivate::CATGprsContextActivate(CGlobalPhonemanager& aGloblePhone, 
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    69
                                               CCtsyDispatcherCallback& aCtsyDispatcherCallback)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    70
		:CAtCommandBase(aGloblePhone,aCtsyDispatcherCallback)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    71
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    72
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    73
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    74
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    75
// CATGprsContextActivate::ConstructL()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    76
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    77
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    78
void CATGprsContextActivate::ConstructL()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    79
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    80
	CAtCommandBase::ConstructL();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    81
	iAtType = ELtsyAT_Packet_ActivateContext;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    82
	iReadTimeOut = KLtsyGprsContextActivateTimeOut;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    83
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    84
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    85
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    86
// CATGprsContextActivate::~CATGprsContextActivate()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    87
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    88
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    89
CATGprsContextActivate::~CATGprsContextActivate()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    90
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    91
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    92
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    93
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    94
// CATGprsContextActivate::StartRequest()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    95
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    96
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    97
void CATGprsContextActivate::StartRequest()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    98
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
    99
	ExecuteCommand();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   100
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   101
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   102
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   103
// CATGprsContextActivate::ExecuteCommand()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   104
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   105
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   106
void CATGprsContextActivate::ExecuteCommand()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   107
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   108
	LOGTEXT(_L8("CATGprsContextActivate::Start called"));
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   109
	LOGTEXT2(_L8("iCid=%d"),iContextId);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   110
	iTxBuffer.Format(KATContextActivate,iContextId);
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   111
	Write();
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   112
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   113
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   114
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   115
// CATGprsContextActivate::SetContext
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   116
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   117
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   118
void CATGprsContextActivate::SetContext(const TInt aContextId)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   119
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   120
	iContextId = aContextId;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   121
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   122
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   123
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   124
// CATGprsContextActivate::GetErrorValue
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   125
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   126
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   127
TInt CATGprsContextActivate::GetErrorValue()
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   128
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   129
	return iError;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   130
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   131
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   132
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   133
// CATGprsContextActivate::ParseResponseL
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   134
// other items were commented in a header
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   135
// ---------------------------------------------------------------------------
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   136
void CATGprsContextActivate::ParseResponseL(const TDesC8& /*aResponseBuf*/)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   137
	{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   138
	if (CurrentLine().Match(KLtsyOkString) == 0)
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   139
		{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   140
		iError = KErrNone;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   141
		}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   142
	else
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   143
		{
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   144
		iError = KErrGeneral;
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   145
		}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   146
	}
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   147
8b72faa1200f 201024_02
hgs
parents:
diff changeset
   148
// End of file