connectivitylayer/usbphonetlink/usbpnserver_exe/src/cusbpnusbreceiver.cpp
changeset 9 8486d82aef45
parent 8 6295dc2169f3
equal deleted inserted replaced
8:6295dc2169f3 9:8486d82aef45
   152 // CUsbPnUsbReceiver::RunL
   152 // CUsbPnUsbReceiver::RunL
   153 // -----------------------------------------------------------------------------
   153 // -----------------------------------------------------------------------------
   154 //
   154 //
   155 void CUsbPnUsbReceiver::RunL( )
   155 void CUsbPnUsbReceiver::RunL( )
   156     {
   156     {
   157     OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_RUNL_ENTRY, "CUsbPnUsbReceiver::RunL;iStatus:%d", iStatus.Int() );
   157     OstTrace1( TRACE_BORDER, CUSBPNUSBRECEIVER_RUNL_ENTRY, "CUsbPnUsbReceiver::RunL;iStatus:%d", iStatus.Int() );
   158     A_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() iStatus:%d" ), iStatus.Int() ) );
   158     A_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() iStatus:%d" ), iStatus.Int() ) );
   159 
   159 
   160     User::LeaveIfError( iStatus.Int() );
   160     User::LeaveIfError( iStatus.Int() );
   161     ConstructMessageL();
   161     ConstructMessageL();
   162     if( iMessageComplete )
   162     if( iMessageComplete )
   166         SetByteCount( NULL );
   166         SetByteCount( NULL );
   167         SetMessageLength( NULL );
   167         SetMessageLength( NULL );
   168         Receive( ETrue );
   168         Receive( ETrue );
   169         }
   169         }
   170 
   170 
   171     OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_RUNL_EXIT, "CUsbPnUsbReceiver::RunL - return void" );
   171     OstTrace0( TRACE_BORDER, CUSBPNUSBRECEIVER_RUNL_EXIT, "CUsbPnUsbReceiver::RunL - return void" );
   172     A_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() - return void" ) ) );
   172     A_TRACE( ( _T( "CUsbPnUsbReceiver::RunL() - return void" ) ) );
   173     }
   173     }
   174 
   174 
   175 // -----------------------------------------------------------------------------
   175 // -----------------------------------------------------------------------------
   176 // CUsbPnUsbReceiver::SetMessageComplete
   176 // CUsbPnUsbReceiver::SetMessageComplete
   177 // -----------------------------------------------------------------------------
   177 // -----------------------------------------------------------------------------
   178 void CUsbPnUsbReceiver::SetMessageComplete( const TBool aMsgComplete )
   178 void CUsbPnUsbReceiver::SetMessageComplete( const TBool aMsgComplete )
   179     {
   179     {
   180     OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_SETMESSAGECOMPLETE_ENTRY, "CUsbPnUsbReceiver::SetMessageComplete;aMsgComplete:%d", aMsgComplete );
   180     OstTrace1( TRACE_BORDER, CUSBPNUSBRECEIVER_SETMESSAGECOMPLETE_ENTRY, "CUsbPnUsbReceiver::SetMessageComplete;aMsgComplete:%d", aMsgComplete );
   181     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageComplete() aMsgComplete:%d" ), aMsgComplete ) );
   181     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageComplete() aMsgComplete:%d" ), aMsgComplete ) );
   182     iMessageComplete = aMsgComplete;
   182     iMessageComplete = aMsgComplete;
   183     OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_SETMESSAGECOMPLETE_EXIT, "CUsbPnUsbReceiver::SetMessageComplete - return void" );
   183     OstTrace0( TRACE_BORDER, CUSBPNUSBRECEIVER_SETMESSAGECOMPLETE_EXIT, "CUsbPnUsbReceiver::SetMessageComplete - return void" );
   184     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageComplete() - return void" ) ) );
   184     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageComplete() - return void" ) ) );
   185     }
   185     }
   186 
   186 
   187 // -----------------------------------------------------------------------------
   187 // -----------------------------------------------------------------------------
   188 // CUsbPnUsbReceiver::SetByteCount
   188 // CUsbPnUsbReceiver::SetByteCount
   189 // -----------------------------------------------------------------------------
   189 // -----------------------------------------------------------------------------
   190 void CUsbPnUsbReceiver::SetByteCount( const TUint aByteCount )
   190 void CUsbPnUsbReceiver::SetByteCount( const TUint aByteCount )
   191     {
   191     {
   192     OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_SETBYTECOUNT_ENTRY, "CUsbPnUsbReceiver::SetByteCount;aByteCount:%d", aByteCount );
   192     OstTrace1( TRACE_BORDER, CUSBPNUSBRECEIVER_SETBYTECOUNT_ENTRY, "CUsbPnUsbReceiver::SetByteCount;aByteCount:%d", aByteCount );
   193     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetByteCount() aByteCount:%d" ), aByteCount ) );
   193     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetByteCount() aByteCount:%d" ), aByteCount ) );
   194     iByteCount = aByteCount;
   194     iByteCount = aByteCount;
   195     OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_SETBYTECOUNT_EXIT, "CUsbPnUsbReceiver::SetByteCount - return void" );
   195     OstTrace0( TRACE_BORDER, CUSBPNUSBRECEIVER_SETBYTECOUNT_EXIT, "CUsbPnUsbReceiver::SetByteCount - return void" );
   196     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetByteCount() - return void" ) ) );
   196     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetByteCount() - return void" ) ) );
   197     }
   197     }
   198 
   198 
   199 
   199 
   200 // -----------------------------------------------------------------------------
   200 // -----------------------------------------------------------------------------
   201 // CUsbPnUsbReceiver::SetMessageLength
   201 // CUsbPnUsbReceiver::SetMessageLength
   202 // -----------------------------------------------------------------------------
   202 // -----------------------------------------------------------------------------
   203 void CUsbPnUsbReceiver::SetMessageLength( const TUint aMessageLength )
   203 void CUsbPnUsbReceiver::SetMessageLength( const TUint aMessageLength )
   204     {
   204     {
   205     OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_SetMessageLength_ENTRY, "CUsbPnUsbReceiver::SetMessageLength;aMessageLength:%d", aMessageLength );
   205     OstTrace1( TRACE_BORDER, CUSBPNUSBRECEIVER_SetMessageLength_ENTRY, "CUsbPnUsbReceiver::SetMessageLength;aMessageLength:%d", aMessageLength );
   206     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageLength() aMessageLength:%d" ), aMessageLength ) );
   206     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageLength() aMessageLength:%d" ), aMessageLength ) );
   207     iMessageLength = aMessageLength;
   207     iMessageLength = aMessageLength;
   208     OstTrace0( TRACE_API, CUSBPNUSBRECEIVER_SetMessageLength_EXIT, "CUsbPnUsbReceiver::SetMessageLength - return void" );
   208     OstTrace0( TRACE_BORDER, CUSBPNUSBRECEIVER_SetMessageLength_EXIT, "CUsbPnUsbReceiver::SetMessageLength - return void" );
   209     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageLength() - return void" ) ) );
   209     A_TRACE( ( _T( "CUsbPnUsbReceiver::SetMessageLength() - return void" ) ) );
   210     }
   210     }
   211 
   211 
   212 // -----------------------------------------------------------------------------
   212 // -----------------------------------------------------------------------------
   213 // CUsbPnUsbReceiver::RunError
   213 // CUsbPnUsbReceiver::RunError
   214 // -----------------------------------------------------------------------------
   214 // -----------------------------------------------------------------------------
   215 //
   215 //
   216 TInt CUsbPnUsbReceiver::RunError( TInt aError )
   216 TInt CUsbPnUsbReceiver::RunError( TInt aError )
   217     {
   217     {
   218     OstTrace1( TRACE_API, CUSBPNUSBRECEIVER_RUNERROR_ENTRY, "CUsbPnUsbReceiver::RunError;aError=%d", aError );
   218     OstTrace1( TRACE_BORDER, CUSBPNUSBRECEIVER_RUNERROR_ENTRY, "CUsbPnUsbReceiver::RunError;aError=%d", aError );
   219     A_TRACE( ( _T( "CUsbPnUsbReceiver::RunError(aError:%d)" ), aError ) );
   219     A_TRACE( ( _T( "CUsbPnUsbReceiver::RunError(aError:%d)" ), aError ) );
   220 
   220 
   221     switch( aError )
   221     switch( aError )
   222         {
   222         {
   223         case KErrUsbDriverBase:
   223         case KErrUsbDriverBase:
   322     {
   322     {
   323     OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_ENTRY, "CUsbPnUsbReceiver::ConstructMessageL" );
   323     OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_ENTRY, "CUsbPnUsbReceiver::ConstructMessageL" );
   324     C_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage()" ) ) );
   324     C_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage()" ) ) );
   325 
   325 
   326     TUint packetLength( iPacket->Buffer().Length() );
   326     TUint packetLength( iPacket->Buffer().Length() );
   327     OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL, "CUsbPnUsbReceiver::ConstructMessageL;packetLength=%d", packetLength );
   327     OstTrace1( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL, "CUsbPnUsbReceiver::ConstructMessageL;packetLength=%d", packetLength );
   328     E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - packetLength:%d" ), packetLength ) );
   328     E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - packetLength:%d" ), packetLength ) );
   329 
   329 
   330     // New message
   330     // New message
   331     if( iByteCount == 0 )
   331     if( iByteCount == 0 )
   332         {
   332         {
   333         TUint16 lsb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]);
   333         TUint16 lsb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]);
   334         TUint16 msb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH]);
   334         TUint16 msb(iRecvPtr[ISI_HEADER_OFFSET_LENGTH]);
   335 
   335 
   336         iMessageLength = ( lsb | ( msb<<8 ) );
   336         iMessageLength = ( lsb | ( msb<<8 ) );
   337 
   337 
   338         OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP1, "CUsbPnUsbReceiver::ConstructMessageL;iMessageLength=%d", iMessageLength );
   338         OstTrace1( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP1, "CUsbPnUsbReceiver::ConstructMessageL;iMessageLength=%d", iMessageLength );
   339         E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - iMessageLength:%d" ), iMessageLength ) );
   339         E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - iMessageLength:%d" ), iMessageLength ) );
   340         if( iMessageLength >= 4 )
   340         if( iMessageLength >= 4 )
   341             {
   341             {
   342             iByteCount = packetLength;
   342             iByteCount = packetLength;
   343 
   343 
   344             OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP2, "CUsbPnUsbReceiver::ConstructMessageLNew message;Received:%d", iByteCount );
   344             OstTrace1( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP2, "CUsbPnUsbReceiver::ConstructMessageLNew message;Received:%d", iByteCount );
   345             E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - New message. Received:%d"), iByteCount));
   345             E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - New message. Received:%d"), iByteCount));
   346 
   346 
   347             if( ( PN_HEADER_SIZE + iMessageLength ) > packetLength )
   347             if( ( PN_HEADER_SIZE + iMessageLength ) > packetLength )
   348                 {
   348                 {
   349                 OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP3, "CUsbPnUsbReceiver::ConstructMessageL - partial message. Receive more" );
   349                 OstTrace0( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP3, "CUsbPnUsbReceiver::ConstructMessageL - partial message. Receive more" );
   350                 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - partial message. Receive more")));
   350                 E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - partial message. Receive more")));
   351 
   351 
   352                 iStorage = HBufC8::NewL( iMessageLength + PN_HEADER_SIZE );
   352                 iStorage = HBufC8::NewL( iMessageLength + PN_HEADER_SIZE );
   353                 TPtr8 tmp( iStorage->Des() );
   353                 TPtr8 tmp( iStorage->Des() );
   354                 tmp.Append( iPacket->Buffer() );
   354                 tmp.Append( iPacket->Buffer() );
   358 
   358 
   359     // Appending to previous message
   359     // Appending to previous message
   360     else
   360     else
   361         {
   361         {
   362         iByteCount = iByteCount + packetLength;
   362         iByteCount = iByteCount + packetLength;
   363         OstTrace1( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP4, "CUsbPnUsbReceiver::ConstructMessageL - Append to previous part;iByteCount:%d", iByteCount );
   363         OstTrace1( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP4, "CUsbPnUsbReceiver::ConstructMessageL - Append to previous part;iByteCount:%d", iByteCount );
   364         E_TRACE((_T("CUsbPnUsbReceiver::ConstructMessage - Append to previous part. iByteCount:%d"), iByteCount));
   364         E_TRACE((_T("CUsbPnUsbReceiver::ConstructMessage - Append to previous part. iByteCount:%d"), iByteCount));
   365         TPtr8 tmp( iStorage->Des() );
   365         TPtr8 tmp( iStorage->Des() );
   366         tmp.Append( iPacket->Buffer() );
   366         tmp.Append( iPacket->Buffer() );
   367         }
   367         }
   368 
   368 
   369     // message ready to be sent
   369     // message ready to be sent
   370     if( iByteCount == ( iMessageLength + PN_HEADER_SIZE ) )
   370     if( iByteCount == ( iMessageLength + PN_HEADER_SIZE ) )
   371         {
   371         {
   372         OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP5, "CUsbPnUsbReceiver::ConstructMessageL - message complete" );
   372         OstTrace0( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP5, "CUsbPnUsbReceiver::ConstructMessageL - message complete" );
   373         E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - message complete")));
   373         E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - message complete")));
   374 
   374 
   375         if( iByteCount > KPnPacketSize )
   375         if( iByteCount > KPnPacketSize )
   376             {
   376             {
   377             OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP6, "CUsbPnUsbReceiver::ConstructMessageL - realloc for whole message" );
   377             OstTrace0( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP6, "CUsbPnUsbReceiver::ConstructMessageL - realloc for whole message" );
   378             E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - realloc for whole message")));
   378             E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - realloc for whole message")));
   379             iPacket->ReallocBufferL( iMessageLength + PN_HEADER_SIZE );
   379             iPacket->ReallocBufferL( iMessageLength + PN_HEADER_SIZE );
   380             iRecvPtr.Set( iPacket->Buffer().Des() );
   380             iRecvPtr.Set( iPacket->Buffer().Des() );
   381             iRecvPtr.Append( *iStorage );
   381             iRecvPtr.Append( *iStorage );
   382             delete iStorage;
   382             delete iStorage;
   383             iStorage = NULL;
   383             iStorage = NULL;
   384             }
   384             }
   385 
   385 
   386 #ifdef ISI_LENGTH_LITTLE_ENDIAN
   386 #ifndef ISI_LENGTH_BIG_ENDIAN
   387         // Converts the endianess of message length
   387         // Converts the endianess of message length
   388         TUint8 tmp4(iRecvPtr[ISI_HEADER_OFFSET_LENGTH]);
   388         TUint8 tmp4(iRecvPtr[ISI_HEADER_OFFSET_LENGTH]);
   389         TUint8 tmp5(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]);
   389         TUint8 tmp5(iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1]);
   390         iRecvPtr[ISI_HEADER_OFFSET_LENGTH] = tmp5;
   390         iRecvPtr[ISI_HEADER_OFFSET_LENGTH] = tmp5;
   391         iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1] = tmp4;
   391         iRecvPtr[ISI_HEADER_OFFSET_LENGTH +1] = tmp4;
   394 #ifndef NCP_COMMON_BRIDGE_FAMILY
   394 #ifndef NCP_COMMON_BRIDGE_FAMILY
   395         // Message directly to APE Test Server.
   395         // Message directly to APE Test Server.
   396         if( (iRecvPtr[ISI_HEADER_OFFSET_RESOURCEID] == PN_EPOC_TEST) &&
   396         if( (iRecvPtr[ISI_HEADER_OFFSET_RESOURCEID] == PN_EPOC_TEST) &&
   397             (iRecvPtr[ISI_HEADER_OFFSET_MESSAGEID] == TS_SOS_FILE_WRITE_REQ ) )
   397             (iRecvPtr[ISI_HEADER_OFFSET_MESSAGEID] == TS_SOS_FILE_WRITE_REQ ) )
   398             {
   398             {
   399             OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP7, "CUsbPnUsbReceiver::ConstructMessageL - Message to APE Test Server" );
   399             OstTrace0( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP7, "CUsbPnUsbReceiver::ConstructMessageL - Message to APE Test Server" );
   400             E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - Message to APE Test Server")));
   400             E_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage - Message to APE Test Server")));
   401 
   401 
   402             iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] = PN_DEV_SOS;
   402             iRecvPtr[ISI_HEADER_OFFSET_RECEIVERDEVICE] = PN_DEV_SOS;
   403             iRecvPtr[ISI_HEADER_OFFSET_RECEIVEROBJECT] = EIscNokiaTest;
   403             iRecvPtr[ISI_HEADER_OFFSET_RECEIVEROBJECT] = EIscNokiaTest;
   404             }
   404             }
   410         {
   410         {
   411         // Empty packet buffer and receive next packet to it.
   411         // Empty packet buffer and receive next packet to it.
   412         iPacket->ReleaseL();
   412         iPacket->ReleaseL();
   413         iRecvPtr.Set( iPacket->Buffer().Des() );
   413         iRecvPtr.Set( iPacket->Buffer().Des() );
   414         iLdd.ReadUntilShort( iStatus, EEndpoint2, iRecvPtr );
   414         iLdd.ReadUntilShort( iStatus, EEndpoint2, iRecvPtr );
   415         OstTrace0( TRACE_DETAILED, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP8, "CUsbPnUsbReceiver::ConstructMessageL - Receiving" );
   415         OstTrace0( TRACE_INTERNALS, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_DUP8, "CUsbPnUsbReceiver::ConstructMessageL - Receiving" );
   416         E_TRACE((_T("CUsbPnUsbReceiver::ConstructMessage - Receiving")));
   416         E_TRACE((_T("CUsbPnUsbReceiver::ConstructMessage - Receiving")));
   417         SetActive();
   417         SetActive();
   418         }
   418         }
   419 
   419 
   420     OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_EXIT, "CUsbPnUsbReceiver::ConstructMessageL - return void" );
   420     OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_EXIT, "CUsbPnUsbReceiver::ConstructMessageL - return void" );