44 #include "epos_omasuplconfigurationkeys.h" |
44 #include "epos_omasuplconfigurationkeys.h" |
45 #include "epos_comasupltrace.h" |
45 #include "epos_comasupltrace.h" |
46 #include "epos_comasupltimeouttimer.h" |
46 #include "epos_comasupltimeouttimer.h" |
47 #include "epos_omasuplconstants.h" |
47 #include "epos_omasuplconstants.h" |
48 #include "epos_comasuplcommonconfig.h" |
48 #include "epos_comasuplcommonconfig.h" |
|
49 #include "epos_suplgeocellinfo.h" |
|
50 |
|
51 #include "epos_comasupllocationid.h" |
49 |
52 |
50 _LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp"); |
53 _LIT(KTraceFileName,"SUPL_OMA_PH::EPos_COMASUPLProtocolManager1.cpp"); |
51 |
54 |
52 const TInt KMaxIMSILen = 20; |
55 const TInt KMaxIMSILen = 20; |
53 const TInt KMaxDelay = 128; |
56 const TInt KMaxDelay = 128; |
2070 iSETMode = aCommmonConfig->iSETMode; |
2086 iSETMode = aCommmonConfig->iSETMode; |
2071 iSuplUsage = aCommmonConfig->iSuplUsage; |
2087 iSuplUsage = aCommmonConfig->iSuplUsage; |
2072 iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut; |
2088 iSuplInitTimeOut = aCommmonConfig->iSuplInitTimeOut; |
2073 iPersistFailTimer = aCommmonConfig->iPersistFailTimer; |
2089 iPersistFailTimer = aCommmonConfig->iPersistFailTimer; |
2074 } |
2090 } |
|
2091 |
|
2092 |
|
2093 // ----------------------------------------------------------------------------- |
|
2094 // COMASUPLProtocolManager1::MakeLocationConversionRequestL |
|
2095 // |
|
2096 // To make conversion request to retrieve position for a given cell id |
|
2097 // ----------------------------------------------------------------------------- |
|
2098 // |
|
2099 void COMASUPLProtocolManager1::MakeLocationConversionRequestL( CSuplSessionBase* aSuplSessn, |
|
2100 TGeoCellInfo& aCellInfo, |
|
2101 TRequestStatus& aStatus ) |
|
2102 { |
|
2103 iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL"), KTraceFileName, __LINE__); |
|
2104 TBuf<64> tempBuf; |
|
2105 |
|
2106 if ( iSuplSessions.Find(aSuplSessn) == KErrNotFound ) |
|
2107 { |
|
2108 TRequestStatus *status = &aStatus; |
|
2109 User::RequestComplete(status,KErrNotFound ); |
|
2110 return; |
|
2111 } |
|
2112 |
|
2113 CheckForSessionCount(); |
|
2114 iRunningSessionCount++; |
|
2115 |
|
2116 COMASuplLocationId* locationId = COMASuplLocationId::NewL(); |
|
2117 COMASuplLocationId::TOMASuplStatus status = COMASuplLocationId::EStale; |
|
2118 switch(aCellInfo.iGeoCellType) |
|
2119 { |
|
2120 case EGeoGsmCell: |
|
2121 { |
|
2122 iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting GSM Cell Info"), KTraceFileName, __LINE__); |
|
2123 COMASuplGSMCellInfo* cellInfo = COMASuplGSMCellInfo::NewL(); |
|
2124 cellInfo->SetSuplGSMCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid,aCellInfo.iLac); |
|
2125 locationId->SetSuplLocationId(cellInfo,status); |
|
2126 } |
|
2127 break; |
|
2128 case EGeoWcdmaCell: |
|
2129 { |
|
2130 iTrace->Trace(_L("COMASUPLProtocolManager1::MakeLocationConversionRequestL - Setting WCDMA Cell Info"), KTraceFileName, __LINE__); |
|
2131 COMASuplCellInfo* cellInfo = COMASuplCellInfo::NewL(); |
|
2132 cellInfo->SetSuplCellInfo(aCellInfo.iMNC,aCellInfo.iMCC,aCellInfo.iCid); |
|
2133 locationId->SetSuplLocationId(cellInfo,status); |
|
2134 } |
|
2135 break; |
|
2136 } |
|
2137 |
|
2138 tempBuf.Copy(_L("MCC = ")); |
|
2139 tempBuf.AppendNum(aCellInfo.iMCC); |
|
2140 iTrace->Trace(tempBuf, KTraceFileName, __LINE__); |
|
2141 tempBuf.Copy(_L("MNC = ")); |
|
2142 tempBuf.AppendNum(aCellInfo.iMNC); |
|
2143 iTrace->Trace(tempBuf, KTraceFileName, __LINE__); |
|
2144 tempBuf.Copy(_L("LAC = ")); |
|
2145 tempBuf.AppendNum(aCellInfo.iLac); |
|
2146 iTrace->Trace(tempBuf, KTraceFileName, __LINE__); |
|
2147 tempBuf.Copy(_L("CId = ")); |
|
2148 tempBuf.AppendNum(aCellInfo.iCid); |
|
2149 iTrace->Trace(tempBuf, KTraceFileName, __LINE__); |
|
2150 tempBuf.Copy(_L("Prompt = ")); |
|
2151 tempBuf.AppendNum(aCellInfo.iConnectionPrompt); |
|
2152 iTrace->Trace(tempBuf, KTraceFileName, __LINE__); |
|
2153 |
|
2154 TInt allowedCapabilities = KECID|KCID; |
|
2155 TInt requestID = 1000; |
|
2156 COMASuplSession* OMASession = static_cast<COMASuplSession*>(aSuplSessn); |
|
2157 OMASession->SetConfigurationParameters(iUT1_StartTimer,iUT2_PosInitTimer, iUT3_PosTimer,iPrivacyTimer,iSETMode, |
|
2158 iSuplUsage, iPersistFailTimer,iSuplInitTimeOut); |
|
2159 OMASession->RunSuplSessionL(aStatus,ETrue, KNullDesC,EFalse, allowedCapabilities,iRunningSessionCount,requestID,ETrue,locationId,aCellInfo.iConnectionPrompt,aCellInfo.iWlanOnly); |
|
2160 |
|
2161 } |
|
2162 |
|
2163 // ----------------------------------------------------------------------------- |
|
2164 // COMASUPLProtocolManager1::CancelLocationConversionRequest |
|
2165 // |
|
2166 // Cancel an ongoing conversion request |
|
2167 // ----------------------------------------------------------------------------- |
|
2168 // |
|
2169 void COMASUPLProtocolManager1::CancelLocationConversionRequest(CSuplSessionBase* aSuplSession) |
|
2170 { |
|
2171 // Log |
|
2172 iTrace->Trace(_L("COMASUPLProtocolManager1::CancelLocationConversionRequest"), KTraceFileName, __LINE__); |
|
2173 |
|
2174 // Check if the Session is valid |
|
2175 TInt index = iSuplSessions.Find(aSuplSession); |
|
2176 |
|
2177 if(KErrNotFound == index) |
|
2178 { |
|
2179 iTrace->Trace(_L("Cannot find Supl session."), KTraceFileName, __LINE__); |
|
2180 return; |
|
2181 } |
|
2182 aSuplSession->CancelRunSession(); |
|
2183 return ; |
|
2184 } |
|
2185 |
2075 |
2186 |
2076 // ----------------------------------------------------------------------------- |
2187 // ----------------------------------------------------------------------------- |
2077 // COMASUPLProtocolManager1::CancelUiLaunch |
2188 // COMASUPLProtocolManager1::CancelUiLaunch |
2078 // |
2189 // |
2079 // |
2190 // |
2080 // ----------------------------------------------------------------------------- |
2191 // ----------------------------------------------------------------------------- |
2081 // |
2192 // |