connectivitylayer/usbphonetlink/usbpnserver_exe/src/cusbpnusbreceiver.cpp
changeset 7 fa67e03b87df
parent 5 8ccc39f9d787
child 8 6295dc2169f3
equal deleted inserted replaced
6:942573423a60 7:fa67e03b87df
    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);
   116     Cancel();
   106     Cancel();
   117     if( iIsaSender )
   107     if( iIsaSender )
   118         {
   108         {
   119         delete iIsaSender;
   109         delete iIsaSender;
   120         }
   110         }
   121 
   111     iIsaSender = NULL;
   122     iPacket = 0;
   112     iPacket = NULL;
   123 
   113 
   124     if( iStorage )
   114     if( iStorage )
   125         {
   115         {
   126         delete iStorage;
   116         delete iStorage;
   127         }
   117         }
   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         {
   415         SetActive();
   409         SetActive();
   416         }
   410         }
   417 
   411 
   418     OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_EXIT, "CUsbPnUsbReceiver::ConstructMessageL - return void" );
   412     OstTrace0( TRACE_NORMAL, CUSBPNUSBRECEIVER_CONSTRUCTMESSAGEL_EXIT, "CUsbPnUsbReceiver::ConstructMessageL - return void" );
   419     C_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage() - return void" ) ) );
   413     C_TRACE( ( _T( "CUsbPnUsbReceiver::ConstructMessage() - return void" ) ) );
   420     }
   414 }    
   421 
   415 
   422 // ========================== OTHER EXPORTED FUNCTIONS =========================
   416 // ========================== OTHER EXPORTED FUNCTIONS =========================
   423 
   417 
   424 //  End of File
   418 //  End of File
   425 
   419