34 #ifndef NCP_COMMON_BRIDGE_FAMILY |
34 #ifndef NCP_COMMON_BRIDGE_FAMILY |
35 #include <test_serverisi.h> // For APE Test Server message ID |
35 #include <test_serverisi.h> // For APE Test Server message ID |
36 #include <iscnokiadefinitions.h> // For APE Test Server channel ID |
36 #include <iscnokiadefinitions.h> // For APE Test Server channel ID |
37 #endif /* NCP_COMMON_BRIDGE_FAMILY */ |
37 #endif /* NCP_COMMON_BRIDGE_FAMILY */ |
38 |
38 |
39 // EXTERNAL DATA STRUCTURES |
|
40 // EXTERNAL FUNCTION PROTOTYPES |
|
41 // CONSTANTS |
|
42 // MACROS |
|
43 // LOCAL CONSTANTS AND MACROS |
|
44 // MODULE DATA STRUCTURES |
|
45 // LOCAL FUNCTION PROTOTYPES |
|
46 // FORWARD DECLARATIONS |
|
47 |
|
48 // ============================= LOCAL FUNCTIONS =============================== |
|
49 // ============================ MEMBER FUNCTIONS =============================== |
39 // ============================ MEMBER FUNCTIONS =============================== |
50 |
40 |
51 // ----------------------------------------------------------------------------- |
41 // ----------------------------------------------------------------------------- |
52 // CUsbPnUsbReceiver::CUsbPnUsbReceiver |
42 // CUsbPnUsbReceiver::CUsbPnUsbReceiver |
53 // C++ default constructor can NOT contain any code, that |
43 // C++ default constructor can NOT contain any code, that |
55 // ----------------------------------------------------------------------------- |
45 // ----------------------------------------------------------------------------- |
56 // |
46 // |
57 CUsbPnUsbReceiver::CUsbPnUsbReceiver( RDevUsbcClient& aLdd ) |
47 CUsbPnUsbReceiver::CUsbPnUsbReceiver( RDevUsbcClient& aLdd ) |
58 :CActive( CActive::EPriorityStandard ) |
48 :CActive( CActive::EPriorityStandard ) |
59 , iLdd( aLdd ) |
49 , iLdd( aLdd ) |
60 , iRecvPtr(0,0) |
50 , iRecvPtr( NULL, NULL ) |
61 , iStorage(0) |
51 , iStorage( NULL ) |
62 { |
52 { |
63 OstTrace1( TRACE_NORMAL, CUSBPNUSBRECEIVER_CUSBPNUSBRECEIVER_ENTRY, "CUsbPnUsbReceiver::CUsbPnUsbReceiver;aLdd=%x", ( TUint )&( aLdd ) ); |
53 OstTrace1( TRACE_NORMAL, CUSBPNUSBRECEIVER_CUSBPNUSBRECEIVER_ENTRY, "CUsbPnUsbReceiver::CUsbPnUsbReceiver;aLdd=%x", ( TUint )&( aLdd ) ); |
64 C_TRACE( ( _T( "CUsbPnUsbReceiver::CUsbPnUsbReceiver( aLdd:0x%x )" ), &aLdd ) ); |
54 C_TRACE( ( _T( "CUsbPnUsbReceiver::CUsbPnUsbReceiver( aLdd:0x%x )" ), &aLdd ) ); |
65 |
55 |
66 CActiveScheduler::Add(this); |
56 CActiveScheduler::Add(this); |
132 } |
122 } |
133 |
123 |
134 |
124 |
135 // ----------------------------------------------------------------------------- |
125 // ----------------------------------------------------------------------------- |
136 // CUsbPnUsbReceiver::DoCancel |
126 // CUsbPnUsbReceiver::DoCancel |
137 // ?implementation_description |
|
138 // (other items were commented in a header). |
|
139 // ----------------------------------------------------------------------------- |
127 // ----------------------------------------------------------------------------- |
140 // |
128 // |
141 void CUsbPnUsbReceiver::DoCancel( ) |
129 void CUsbPnUsbReceiver::DoCancel( ) |
142 { |
130 { |
143 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_DOCANCEL_ENTRY, "CUsbPnUsbReceiver::DoCancel" ); |
131 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_DOCANCEL_ENTRY, "CUsbPnUsbReceiver::DoCancel" ); |
153 C_TRACE( ( _T( "CUsbPnUsbReceiver::DoCancel() - return void" ) ) ); |
141 C_TRACE( ( _T( "CUsbPnUsbReceiver::DoCancel() - return void" ) ) ); |
154 } |
142 } |
155 |
143 |
156 // ----------------------------------------------------------------------------- |
144 // ----------------------------------------------------------------------------- |
157 // CUsbPnUsbReceiver::RunL |
145 // CUsbPnUsbReceiver::RunL |
158 // ?implementation_description |
|
159 // (other items were commented in a header). |
|
160 // ----------------------------------------------------------------------------- |
146 // ----------------------------------------------------------------------------- |
161 // |
147 // |
162 void CUsbPnUsbReceiver::RunL( ) |
148 void CUsbPnUsbReceiver::RunL( ) |
163 { |
149 { |
164 OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_RUNL_ENTRY, "CUsbPnUsbReceiver::RunL;iStatus:%d", iStatus.Int() ); |
150 OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_RUNL_ENTRY, "CUsbPnUsbReceiver::RunL;iStatus:%d", iStatus.Int() ); |
166 |
152 |
167 User::LeaveIfError( iStatus.Int() ); |
153 User::LeaveIfError( iStatus.Int() ); |
168 ConstructMessageL(); |
154 ConstructMessageL(); |
169 if( iMessageComplete ) |
155 if( iMessageComplete ) |
170 { |
156 { |
171 iIsaSender->Send( *iPacket ); |
157 iIsaSender->AddPacketToSendingQueue( *iPacket ); |
172 iMessageComplete = EFalse; |
158 SetMessageComplete( EFalse ); |
173 iByteCount = 0; |
159 SetByteCount( NULL ); |
174 iMessageLength = 0; |
160 SetMessageLength( NULL ); |
175 |
|
176 // Start fresh receive |
|
177 Receive( ETrue ); |
161 Receive( ETrue ); |
178 } |
162 } |
179 |
163 |
180 OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_RUNL_EXIT, "CUsbPnUsbReceiver::RunL - return void" ); |
164 OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_RUNL_EXIT, "CUsbPnUsbReceiver::RunL - return void" ); |
181 A_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() - return void" ) ) ); |
165 A_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() - return void" ) ) ); |
182 } |
166 } |
183 |
167 |
184 // ----------------------------------------------------------------------------- |
168 // ----------------------------------------------------------------------------- |
|
169 // CUsbPnUsbReceiver::SetMessageComplete |
|
170 // ----------------------------------------------------------------------------- |
|
171 void CUsbPnUsbReceiver::SetMessageComplete( const TBool aMsgComplete ) |
|
172 { |
|
173 OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_SETMESSAGECOMPLETE_ENTRY, "CUsbPnUsbReceiver::SetMessageComplete;aMsgComplete:%d", aMsgComplete ); |
|
174 A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageComplete() aMsgComplete:%d" ), aMsgComplete ) ); |
|
175 iMessageComplete = aMsgComplete; |
|
176 OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_SETMESSAGECOMPLETE_EXIT, "CUsbPnUsbReceiver::SetMessageComplete - return void" ); |
|
177 A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageComplete() - return void" ) ) ); |
|
178 } |
|
179 |
|
180 // ----------------------------------------------------------------------------- |
|
181 // CUsbPnUsbReceiver::SetByteCount |
|
182 // ----------------------------------------------------------------------------- |
|
183 void CUsbPnUsbReceiver::SetByteCount( const TUint aByteCount ) |
|
184 { |
|
185 OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_SETBYTECOUNT_ENTRY, "CUsbPnUsbReceiver::SetByteCount;aByteCount:%d", aByteCount ); |
|
186 A_TRACE( ( _T( "CUsbPnUsbReceiver::SetByteCount() aByteCount:%d" ), aByteCount ) ); |
|
187 iByteCount = aByteCount; |
|
188 OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_SETBYTECOUNT_EXIT, "CUsbPnUsbReceiver::SetByteCount - return void" ); |
|
189 A_TRACE( ( _T( "CUsbPnUsbReceiver::SetByteCount() - return void" ) ) ); |
|
190 } |
|
191 |
|
192 |
|
193 // ----------------------------------------------------------------------------- |
|
194 // CUsbPnUsbReceiver::SetMessageLength |
|
195 // ----------------------------------------------------------------------------- |
|
196 void CUsbPnUsbReceiver::SetMessageLength( const TUint aMessageLength ) |
|
197 { |
|
198 OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_SetMessageLength_ENTRY, "CUsbPnUsbReceiver::SetMessageLength;aMessageLength:%d", aMessageLength ); |
|
199 A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageLength() aMessageLength:%d" ), aMessageLength ) ); |
|
200 iMessageLength = aMessageLength; |
|
201 OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_SetMessageLength_EXIT, "CUsbPnUsbReceiver::SetMessageLength - return void" ); |
|
202 A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageLength() - return void" ) ) ); |
|
203 } |
|
204 |
|
205 // ----------------------------------------------------------------------------- |
185 // CUsbPnUsbReceiver::RunError |
206 // CUsbPnUsbReceiver::RunError |
186 // ?implementation_description |
|
187 // (other items were commented in a header). |
|
188 // ----------------------------------------------------------------------------- |
207 // ----------------------------------------------------------------------------- |
189 // |
208 // |
190 TInt CUsbPnUsbReceiver::RunError( TInt aError ) |
209 TInt CUsbPnUsbReceiver::RunError( TInt aError ) |
191 { |
210 { |
192 OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_RUNERROR_ENTRY, "CUsbPnUsbReceiver::RunError;aError=%d", aError ); |
211 OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_RUNERROR_ENTRY, "CUsbPnUsbReceiver::RunError;aError=%d", aError ); |
207 case KErrUsbDeviceBusReset: |
226 case KErrUsbDeviceBusReset: |
208 case KErrUsbEpNotReady: |
227 case KErrUsbEpNotReady: |
209 { |
228 { |
210 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RUNERROR, "CUsbPnUsbReceiver::RunError - Cable detached!" ); |
229 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RUNERROR, "CUsbPnUsbReceiver::RunError - Cable detached!" ); |
211 C_TRACE( ( _T( "CUsbPnUsbReceiver::RunError - Cable detached!" ))); |
230 C_TRACE( ( _T( "CUsbPnUsbReceiver::RunError - Cable detached!" ))); |
212 aError = KErrNone; |
|
213 break; |
231 break; |
214 } |
232 } |
215 default: |
233 default: |
216 { |
234 { |
217 TRACE_ASSERT_ALWAYS; // Log the errorcase. |
235 TRACE_ASSERT_ALWAYS; |
218 aError = KErrNone; // Ignore error.. |
236 User::Panic( KUsbPnPanicCat, aError ); |
219 break; |
237 break; |
220 } |
238 } |
221 } |
239 } |
222 |
240 |
223 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RUNERROR_EXIT, "CUsbPnUsbReceiver::RunError - return" ); |
241 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RUNERROR_EXIT, "CUsbPnUsbReceiver::RunError - return" ); |
224 C_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() - return" ) ) ); |
242 C_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() - return" ) ) ); |
225 return aError; |
243 return KErrNone; |
226 } |
244 } |
227 |
245 |
228 // ----------------------------------------------------------------------------- |
246 // ----------------------------------------------------------------------------- |
229 // CUsbPnUsbReceiver::Receive |
247 // CUsbPnUsbReceiver::Receive |
230 // ?implementation_description |
248 // ----------------------------------------------------------------------------- |
231 // (other items were commented in a header). |
249 // |
232 // ----------------------------------------------------------------------------- |
250 void CUsbPnUsbReceiver::Receive( TBool ) |
233 // |
|
234 void CUsbPnUsbReceiver::Receive( TBool /*aForward*/ ) |
|
235 { |
251 { |
236 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RECEIVE_ENTRY, "CUsbPnUsbReceiver::Receive" ); |
252 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RECEIVE_ENTRY, "CUsbPnUsbReceiver::Receive" ); |
237 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive()" )) ); |
253 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive()" )) ); |
238 |
254 |
239 // iEnumerated flag is controlled by CUsbPnInterface. ETrue when altset1. EFalse if altset0 or cable disconnected. |
255 // iEnumerated flag is controlled by CUsbPnInterface. ETrue when altset1. EFalse if altset0 or cable disconnected. |
240 if( iEnumerated ) |
256 if( iEnumerated ) |
241 { |
257 { |
242 if(!IsActive()) |
258 if(!IsActive()) |
243 { |
259 { |
244 TRAPD( err, iPacket = &iIsaSender->PacketL() ); |
260 TRAPD( err, iPacket = &iIsaSender->GetNextPacketL() ); |
245 if(!err) |
261 if(!err) |
246 { |
262 { |
247 iRecvPtr.Set( iPacket->Buffer().Des() ); |
263 iRecvPtr.Set( iPacket->Buffer().Des() ); |
248 iLdd.ReadUntilShort( iStatus, EEndpoint2, iRecvPtr ); |
264 iLdd.ReadUntilShort( iStatus, EEndpoint2, iRecvPtr ); |
249 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RECEIVE, "CUsbPnUsbReceiver::Receive - Receiving" ); |
265 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RECEIVE, "CUsbPnUsbReceiver::Receive - Receiving" ); |
250 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive - Receiving" )) ); |
266 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive - Receiving" )) ); |
251 SetActive(); |
267 SetActive(); |
252 } |
268 } |
253 else |
269 else |
254 { |
270 { |
255 // No free packets so receiving not activated until sender |
|
256 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RECEIVE_DUP1, "CUsbPnUsbReceiver::Receive - Sender tells when to continue" ); |
271 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_RECEIVE_DUP1, "CUsbPnUsbReceiver::Receive - Sender tells when to continue" ); |
257 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive - Sender tells when to continue" )) ); |
272 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive - Sender tells when to continue" )) ); |
258 } |
273 } |
259 } |
274 } |
260 } |
275 } |
263 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive() - return void" ) ) ); |
278 C_TRACE( ( _T( "CUsbPnUsbReceiver::Receive() - return void" ) ) ); |
264 } |
279 } |
265 |
280 |
266 // ----------------------------------------------------------------------------- |
281 // ----------------------------------------------------------------------------- |
267 // CUsbPnUsbReceiver::IsaSender |
282 // CUsbPnUsbReceiver::IsaSender |
268 // ?implementation_description |
|
269 // (other items were commented in a header). |
|
270 // ----------------------------------------------------------------------------- |
283 // ----------------------------------------------------------------------------- |
271 // |
284 // |
272 MUsbPnControlObserver* CUsbPnUsbReceiver::IsaSender() |
285 MUsbPnControlObserver* CUsbPnUsbReceiver::IsaSender() |
273 { |
286 { |
274 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_ISASENDER_ENTRY, "CUsbPnUsbReceiver::IsaSender" ); |
287 OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_ISASENDER_ENTRY, "CUsbPnUsbReceiver::IsaSender" ); |
278 |
291 |
279 return (MUsbPnControlObserver*)iIsaSender; |
292 return (MUsbPnControlObserver*)iIsaSender; |
280 } |
293 } |
281 // ----------------------------------------------------------------------------- |
294 // ----------------------------------------------------------------------------- |
282 // CUsbPnUsbReceiver::SetEnumerated |
295 // CUsbPnUsbReceiver::SetEnumerated |
283 // ?implementation_description |
|
284 // (other items were commented in a header). |
|
285 // ----------------------------------------------------------------------------- |
296 // ----------------------------------------------------------------------------- |
286 // |
297 // |
287 void CUsbPnUsbReceiver::SetEnumerated( TBool aState ) |
298 void CUsbPnUsbReceiver::SetEnumerated( TBool aState ) |
288 { |
299 { |
289 OstTrace1( TRACE_NORMAL, CUSBPNUSBRECEIVER_SETENUMERATED_ENTRY, "CUsbPnUsbReceiver::SetEnumerated;aState=%d", aState ); |
300 OstTrace1( TRACE_NORMAL, CUSBPNUSBRECEIVER_SETENUMERATED_ENTRY, "CUsbPnUsbReceiver::SetEnumerated;aState=%d", aState ); |
314 if( iByteCount == 0 ) |
325 if( iByteCount == 0 ) |
315 { |
326 { |
316 TUint16 lsb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]); |
327 TUint16 lsb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]); |
317 TUint16 msb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH]); |
328 TUint16 msb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH]); |
318 |
329 |
319 iMessageLength = (lsb | (msb<<8)); |
330 iMessageLength = ( lsb | ( msb<<8 ) ); |
320 |
331 |
321 OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP1, "CUsbPnUsbReceiver::ConstructMessageL;iMessageLength=%d", iMessageLength ); |
332 OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP1, "CUsbPnUsbReceiver::ConstructMessageL;iMessageLength=%d", iMessageLength ); |
322 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - iMessageLength:%d" ), iMessageLength ) ); |
333 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - iMessageLength:%d" ), iMessageLength ) ); |
323 if( iMessageLength >= 4 ) |
334 if( iMessageLength >= 4 ) |
324 { |
335 { |
327 OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP2, "CUsbPnUsbReceiver::ConstructMessageLNew message;Received:%d", iByteCount ); |
338 OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP2, "CUsbPnUsbReceiver::ConstructMessageLNew message;Received:%d", iByteCount ); |
328 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - New message. Received:%d"), iByteCount)); |
339 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - New message. Received:%d"), iByteCount)); |
329 |
340 |
330 if( ( PN_HEADER_SIZE + iMessageLength ) > packetLength ) |
341 if( ( PN_HEADER_SIZE + iMessageLength ) > packetLength ) |
331 { |
342 { |
332 // realloc |
|
333 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP3, "CUsbPnUsbReceiver::ConstructMessageL - partial message. Receive more" ); |
343 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP3, "CUsbPnUsbReceiver::ConstructMessageL - partial message. Receive more" ); |
334 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - partial message. Receive more"))); |
344 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - partial message. Receive more"))); |
335 |
345 |
336 // Alloc temporary buffer to store data |
|
337 iStorage = HBufC8::NewL( iMessageLength + PN_HEADER_SIZE ); |
346 iStorage = HBufC8::NewL( iMessageLength + PN_HEADER_SIZE ); |
338 TPtr8 tmp( iStorage->Des() ); |
347 TPtr8 tmp( iStorage->Des() ); |
339 tmp.Append( iPacket->Buffer() ); |
348 tmp.Append( iPacket->Buffer() ); |
340 } |
349 } |
341 } |
350 } |
349 E_TRACE((_T("CUsbPnUsbReceiver::ConstructMessage - Append to previous part. iByteCount:%d"), iByteCount)); |
358 E_TRACE((_T("CUsbPnUsbReceiver::ConstructMessage - Append to previous part. iByteCount:%d"), iByteCount)); |
350 TPtr8 tmp( iStorage->Des() ); |
359 TPtr8 tmp( iStorage->Des() ); |
351 tmp.Append( iPacket->Buffer() ); |
360 tmp.Append( iPacket->Buffer() ); |
352 } |
361 } |
353 |
362 |
354 // Ready to be sent? |
363 // message ready to be sent |
355 if( iByteCount == iMessageLength + PN_HEADER_SIZE ) |
364 if( iByteCount == ( iMessageLength + PN_HEADER_SIZE ) ) |
356 { |
365 { |
357 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP5, "CUsbPnUsbReceiver::ConstructMessageL - message complete" ); |
366 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP5, "CUsbPnUsbReceiver::ConstructMessageL - message complete" ); |
358 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - message complete"))); |
367 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - message complete"))); |
359 |
368 |
360 if( iByteCount > KPnPacketSize ) |
369 if( iByteCount > KPnPacketSize ) |
361 { |
370 { |
362 // Realloc iPacket's buffer with needed length |
|
363 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP6, "CUsbPnUsbReceiver::ConstructMessageL - realloc for whole message" ); |
371 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP6, "CUsbPnUsbReceiver::ConstructMessageL - realloc for whole message" ); |
364 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - realloc for whole message"))); |
372 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - realloc for whole message"))); |
365 iPacket->ReallocBufferL( iMessageLength + PN_HEADER_SIZE ); |
373 iPacket->ReallocBufferL( iMessageLength + PN_HEADER_SIZE ); |
366 iRecvPtr.Set( iPacket->Buffer().Des() ); |
374 iRecvPtr.Set( iPacket->Buffer().Des() ); |
367 iRecvPtr.Append( *iStorage ); |
375 iRecvPtr.Append( *iStorage ); |
374 TUint8 tmp5(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]); |
382 TUint8 tmp5(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]); |
375 iRecvPtr[ISI_HEADER_OFFSET_LENGTH] = tmp5; |
383 iRecvPtr[ISI_HEADER_OFFSET_LENGTH] = tmp5; |
376 iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1] = tmp4; |
384 iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1] = tmp4; |
377 |
385 |
378 #ifndef NCP_COMMON_BRIDGE_FAMILY |
386 #ifndef NCP_COMMON_BRIDGE_FAMILY |
379 // Message directly to APE Test Server. Rare labeling case for optimized performance |
387 // Message directly to APE Test Server. |
380 if( (iRecvPtr[ISI_HEADER_OFFSET_RESOURCEID] == PN_EPOC_TEST) && |
388 if( (iRecvPtr[ISI_HEADER_OFFSET_RESOURCEID] == PN_EPOC_TEST) && |
381 (iRecvPtr[ISI_HEADER_OFFSET_MESSAGEID] == TS_SOS_FILE_WRITE_REQ ) ) |
389 (iRecvPtr[ISI_HEADER_OFFSET_MESSAGEID] == TS_SOS_FILE_WRITE_REQ ) ) |
382 { |
390 { |
383 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP7, "CUsbPnUsbReceiver::ConstructMessageL - Message to APE Test Server" ); |
391 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP7, "CUsbPnUsbReceiver::ConstructMessageL - Message to APE Test Server" ); |
384 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - Message to APE Test Server"))); |
392 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - Message to APE Test Server"))); |
385 |
393 |
386 // Set Receiver device |
|
387 //TUint8 recvDev = iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] & 0x03; |
|
388 //iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] = (recvDev | (PN_DEV_SOS & 0xFC)); |
|
389 |
|
390 iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] = PN_DEV_SOS; |
394 iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] = PN_DEV_SOS; |
391 |
395 iRecvPtr[ISI_HEADER_OFFSET_RECEIVEROBJECT] = EIscNokiaTest; |
392 // Set Receiver Object ID |
396 } |
393 TUint8 objIdHighBits = (EIscNokiaTest >> 8) & 0x03; |
397 #endif // NCP_COMMON_BRIDGE_FAMILY |
394 TUint8 objIdLowBits = (EIscNokiaTest & 0x00ff); |
|
395 |
|
396 TUint8 receiverDevice( (iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] ) & 0xFC ); |
|
397 |
|
398 receiverDevice = (receiverDevice | objIdHighBits); |
|
399 iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] = receiverDevice; |
|
400 |
|
401 iRecvPtr[ISI_HEADER_OFFSET_RECEIVEROBJECT] = objIdLowBits; |
|
402 } |
|
403 #endif /* NCP_COMMON_BRIDGE_FAMILY */ |
|
404 |
398 |
405 iMessageComplete = ETrue; |
399 iMessageComplete = ETrue; |
406 } |
400 } |
407 else |
401 else |
408 { |
402 { |