kerneltest/e32test/usbho/t_usbdi/src/PBASE-T_USBDI-0493.cpp
changeset 259 57b9594f5772
parent 0 a41df078684a
child 257 3e88ff8f41d5
child 271 dc268b18d709
equal deleted inserted replaced
247:d8d70de2bd36 259:57b9594f5772
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Eclipse Public License v1.0"
     4 // under the terms of the License "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    18 
    18 
    19 #include "PBASE-T_USBDI-0493.h"
    19 #include "PBASE-T_USBDI-0493.h"
    20 #include "testpolicy.h"
    20 #include "testpolicy.h"
    21 #include "modelleddevices.h"
    21 #include "modelleddevices.h"
    22 #include "testliterals.h"
    22 #include "testliterals.h"
       
    23 #include "OstTraceDefinitions.h"
       
    24 #ifdef OST_TRACE_COMPILER_IN_USE
       
    25 #include "PBASE-T_USBDI-0493Traces.h"
       
    26 #endif
    23 
    27 
    24 
    28 
    25  
    29  
    26 
    30 
    27 namespace NUnitTesting_USBDI
    31 namespace NUnitTesting_USBDI
    55 _LIT(KTestCaseId,"PBASE-T_USBDI-0493");
    59 _LIT(KTestCaseId,"PBASE-T_USBDI-0493");
    56 const TFunctorTestCase<CUT_PBASE_T_USBDI_0493,TBool> CUT_PBASE_T_USBDI_0493::iFunctor(KTestCaseId);	
    60 const TFunctorTestCase<CUT_PBASE_T_USBDI_0493,TBool> CUT_PBASE_T_USBDI_0493::iFunctor(KTestCaseId);	
    57 
    61 
    58 CUT_PBASE_T_USBDI_0493* CUT_PBASE_T_USBDI_0493::NewL(TBool aHostRole)
    62 CUT_PBASE_T_USBDI_0493* CUT_PBASE_T_USBDI_0493::NewL(TBool aHostRole)
    59 	{
    63 	{
       
    64 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_0493_NEWL_ENTRY, aHostRole );
    60 	CUT_PBASE_T_USBDI_0493* self = new (ELeave) CUT_PBASE_T_USBDI_0493(aHostRole);
    65 	CUT_PBASE_T_USBDI_0493* self = new (ELeave) CUT_PBASE_T_USBDI_0493(aHostRole);
    61 	CleanupStack::PushL(self);
    66 	CleanupStack::PushL(self);
    62 	self->ConstructL();
    67 	self->ConstructL();
    63 	CleanupStack::Pop(self);
    68 	CleanupStack::Pop(self);
       
    69 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_NEWL_EXIT, ( TUint )( self ) );
    64 	return self;
    70 	return self;
    65 	}
    71 	}
    66 	
    72 	
    67 
    73 
    68 CUT_PBASE_T_USBDI_0493::CUT_PBASE_T_USBDI_0493(TBool aHostRole)
    74 CUT_PBASE_T_USBDI_0493::CUT_PBASE_T_USBDI_0493(TBool aHostRole)
    69 :	CBaseBulkTestCase(KTestCaseId,aHostRole),
    75 :	CBaseBulkTestCase(KTestCaseId,aHostRole),
    70 	iNumTransferBytes(KStartNumTransferBytes),
    76 	iNumTransferBytes(KStartNumTransferBytes),
    71 	iCaseStep(EInProgress)
    77 	iCaseStep(EInProgress)
    72 	{
    78 	{
       
    79 	OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_0493_CUT_PBASE_T_USBDI_0493_ENTRY, this );
       
    80 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_CUT_PBASE_T_USBDI_0493_EXIT, this );
    73 	} 
    81 	} 
    74 
    82 
    75 
    83 
    76 void CUT_PBASE_T_USBDI_0493::ConstructL()
    84 void CUT_PBASE_T_USBDI_0493::ConstructL()
    77 	{
    85 	{
       
    86 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_0493_CONSTRUCTL_ENTRY, this );
    78 	BaseBulkConstructL();
    87 	BaseBulkConstructL();
       
    88 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_CONSTRUCTL_EXIT, this );
    79 	}
    89 	}
    80 
    90 
    81 
    91 
    82 CUT_PBASE_T_USBDI_0493::~CUT_PBASE_T_USBDI_0493()
    92 CUT_PBASE_T_USBDI_0493::~CUT_PBASE_T_USBDI_0493()
    83 	{
    93 	{
    84 	LOG_FUNC
    94 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_0493_CUT_PBASE_T_USBDI_0493_ENTRY_DUP01, this );
       
    95 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_CUT_PBASE_T_USBDI_0493_EXIT_DUP01, this );
    85 	}
    96 	}
    86 
    97 
    87 void CUT_PBASE_T_USBDI_0493::Ep0TransferCompleteL(TInt aCompletionCode)
    98 void CUT_PBASE_T_USBDI_0493::Ep0TransferCompleteL(TInt aCompletionCode)
    88 	{
    99 	{
    89 	LOG_FUNC
   100 	OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_ENTRY, this );
    90 	
   101 	
    91 	RDebug::Printf("Ep0TransferCompleteL with aCompletionCode = %d",aCompletionCode);
   102 	OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL, "Ep0TransferCompleteL with aCompletionCode = %d",aCompletionCode);
    92 	
   103 	
    93 	if(aCompletionCode != KErrNone)
   104 	if(aCompletionCode != KErrNone)
    94 		{
   105 		{
    95 		if(iCaseStep == EFailed)
   106 		if(iCaseStep == EFailed)
    96 			{// todo, cope with errors
   107 			{// todo, cope with errors
    97 			}
   108 			}
    98 		else
   109 		else
    99 			{
   110 			{
   100 			TBuf<256> msg;
   111 			TBuf<256> msg;
   101 			msg.Format(_L("<Error %d> Transfer to control endpoint 0 was not successful"),aCompletionCode);
   112 			msg.Format(_L("<Error %d> Transfer to control endpoint 0 was not successful"),aCompletionCode);
   102 			RDebug::Print(msg);
   113 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_DUP01, msg);
   103 			iCaseStep = EFailed;
   114 			iCaseStep = EFailed;
   104 			TTestCaseFailed request(aCompletionCode,msg);
   115 			TTestCaseFailed request(aCompletionCode,msg);
   105 			iControlEp0->SendRequest(request,this);
   116 			iControlEp0->SendRequest(request,this);
       
   117 			OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_EXIT, this );
   106 			return;
   118 			return;
   107 			}
   119 			}
   108 		}
   120 		}
   109 	
   121 	
   110 	switch(iCaseStep)
   122 	switch(iCaseStep)
   118 		case EFailed:
   130 		case EFailed:
   119 			TestFailed(KErrCompletion);
   131 			TestFailed(KErrCompletion);
   120 			break;
   132 			break;
   121 			
   133 			
   122 		case ETransferOut:
   134 		case ETransferOut:
   123 			RDebug::Printf("Try to send %d bytes of data", iNumTransferBytes);
   135 			OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_DUP02, "Try to send %d bytes of data", iNumTransferBytes);
   124 			RDebug::RawPrint(KLiteralEnglish8().Mid(0*KHostNumWriteBytes, KHostNumWriteBytes));
   136 			{
       
   137 			    const TPtrC8& midKLiteralEnglish = KLiteralEnglish8().Mid(0*KHostNumWriteBytes, KHostNumWriteBytes);
       
   138                 OstTraceData(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_DUP52, "", midKLiteralEnglish.Ptr(), midKLiteralEnglish.Length());
       
   139 			}
   125 			iOutTransfer[0]->TransferOut(KLiteralEnglish8().Mid(0*KHostNumWriteBytes, KHostNumWriteBytes), EFalse);
   140 			iOutTransfer[0]->TransferOut(KLiteralEnglish8().Mid(0*KHostNumWriteBytes, KHostNumWriteBytes), EFalse);
   126 			iOutTransfer[1]->TransferOut(KLiteralEnglish8().Mid(1*KHostNumWriteBytes, KHostNumWriteBytes), EFalse);
   141 			iOutTransfer[1]->TransferOut(KLiteralEnglish8().Mid(1*KHostNumWriteBytes, KHostNumWriteBytes), EFalse);
   127 			iOutTransfer[2]->TransferOut(KLiteralEnglish8().Mid(2*KHostNumWriteBytes, KHostNumWriteBytes), EFalse);
   142 			iOutTransfer[2]->TransferOut(KLiteralEnglish8().Mid(2*KHostNumWriteBytes, KHostNumWriteBytes), EFalse);
   128 			iOutTransfer[3]->TransferOut(KLiteralEnglish8().Mid(3*KHostNumWriteBytes, iNumTransferBytes - 3*KHostNumWriteBytes), ETrue);
   143 			iOutTransfer[3]->TransferOut(KLiteralEnglish8().Mid(3*KHostNumWriteBytes, iNumTransferBytes - 3*KHostNumWriteBytes), ETrue);
   129 			break;
   144 			break;
   130 		
   145 		
   131 		case ETransferIn:
   146 		case ETransferIn:
   132 			RDebug::Printf("Try to receive max %d bytes of data", 3*KHostNumReadBytes + KHostFinalNumReadBytes);
   147 			OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_DUP03, "Try to receive max %d bytes of data", 3*KHostNumReadBytes + KHostFinalNumReadBytes);
   133 			iInTransfer[0]->TransferIn(KHostNumReadBytes);
   148 			iInTransfer[0]->TransferIn(KHostNumReadBytes);
   134 			iInTransfer[1]->TransferIn(KHostNumReadBytes);
   149 			iInTransfer[1]->TransferIn(KHostNumReadBytes);
   135 			iInTransfer[2]->TransferIn(KHostNumReadBytes);
   150 			iInTransfer[2]->TransferIn(KHostNumReadBytes);
   136 			iInTransfer[3]->TransferIn(KHostFinalNumReadBytes);
   151 			iInTransfer[3]->TransferIn(KHostFinalNumReadBytes);
   137 			break;
   152 			break;
   138 	
   153 	
   139 		default:
   154 		default:
   140 			RDebug::Printf("<Error> Unknown test step");
   155 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_DUP04, "<Error> Unknown test step");
   141 			TestFailed(KErrUnknown);
   156 			TestFailed(KErrUnknown);
   142 			break;
   157 			break;
   143 		}
   158 		}
       
   159 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_EP0TRANSFERCOMPLETEL_EXIT_DUP01, this );
   144 	}
   160 	}
   145 	
   161 	
   146 void CUT_PBASE_T_USBDI_0493::TransferCompleteL(TInt aTransferId,TInt aCompletionCode)
   162 void CUT_PBASE_T_USBDI_0493::TransferCompleteL(TInt aTransferId,TInt aCompletionCode)
   147 	{
   163 	{
   148 	LOG_FUNC
   164 	OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_ENTRY, this );
   149 	Cancel();
   165 	Cancel();
   150 	
   166 	
   151 	TInt err(KErrNone);
   167 	TInt err(KErrNone);
   152 	TBuf<256> msg;
   168 	TBuf<256> msg;
   153 	RDebug::Printf("Transfer completed (id=%d), aCompletionCode = %d",aTransferId, aCompletionCode);
   169 	OstTraceExt2(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL, "Transfer completed (id=%d), aCompletionCode = %d",aTransferId, aCompletionCode);
   154 
   170 
   155 	switch(iCaseStep)
   171 	switch(iCaseStep)
   156 		{
   172 		{
   157 		case ETransferOut:
   173 		case ETransferOut:
   158 			if(aCompletionCode != KErrNone)
   174 			if(aCompletionCode != KErrNone)
   167 				case KBulkTransferOutId0:
   183 				case KBulkTransferOutId0:
   168 				case KBulkTransferOutId1:
   184 				case KBulkTransferOutId1:
   169 				case KBulkTransferOutId2:		
   185 				case KBulkTransferOutId2:		
   170 				case KBulkTransferOutId3:
   186 				case KBulkTransferOutId3:
   171 					iTransferComplete |= aTransferId;
   187 					iTransferComplete |= aTransferId;
   172 					RDebug::Printf("Transfer %d completed", aTransferId);
   188 					OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_DUP01, "Transfer %d completed", aTransferId);
   173 					break; //switch(aTransferId)
   189 					break; //switch(aTransferId)
   174 					
   190 					
   175 				default:
   191 				default:
   176 					iTransferComplete = 0; //reset
   192 					iTransferComplete = 0; //reset
   177 					err = KUnexpectedTransferID;
   193 					err = KUnexpectedTransferID;
   180 					break; //switch(aTransferId)
   196 					break; //switch(aTransferId)
   181 				}
   197 				}
   182 
   198 
   183 			if(err==KErrNone && iTransferComplete == (KBulkTransferOutId0 | KBulkTransferOutId1 | KBulkTransferOutId2 | KBulkTransferOutId3))
   199 			if(err==KErrNone && iTransferComplete == (KBulkTransferOutId0 | KBulkTransferOutId1 | KBulkTransferOutId2 | KBulkTransferOutId3))
   184 				{
   200 				{
   185 				RDebug::Printf("Try to receive back sent data. Transfers Completed %d", iTransferComplete);
   201 				OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_DUP02, "Try to receive back sent data. Transfers Completed %d", iTransferComplete);
   186 				iCaseStep = ETransferIn;
   202 				iCaseStep = ETransferIn;
   187 				TWriteSynchronousCachedReadDataRequest request(1,1,1);  //Use first read EP and first write EP (on interface 1)
   203 				TWriteSynchronousCachedReadDataRequest request(1,1,1);  //Use first read EP and first write EP (on interface 1)
   188 				iControlEp0->SendRequest(request,this);	
   204 				iControlEp0->SendRequest(request,this);	
   189 				iTransferComplete = 0; //reset
   205 				iTransferComplete = 0; //reset
   190 				}
   206 				}
   205 				case KBulkTransferInId3:
   221 				case KBulkTransferInId3:
   206 					iTransferComplete |= aTransferId;
   222 					iTransferComplete |= aTransferId;
   207 					break; //switch(aTransferId)
   223 					break; //switch(aTransferId)
   208 					
   224 					
   209 				default:
   225 				default:
   210 					RDebug::Printf("Bad Transfer ID");
   226 					OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_DUP03, "Bad Transfer ID");
   211 					iTransferComplete = 0; //reset
   227 					iTransferComplete = 0; //reset
   212 					err = KUnexpectedTransferID;
   228 					err = KUnexpectedTransferID;
   213 					msg.Format(_L("<Error %d> Unexpected transfer ID, wanted %d or %d or %d or %d, got %d"),
   229 					msg.Format(_L("<Error %d> Unexpected transfer ID, wanted %d or %d or %d or %d, got %d"),
   214 						       err, KBulkTransferInId0, KBulkTransferInId1, KBulkTransferInId2, KBulkTransferInId3, aTransferId);
   230 						       err, KBulkTransferInId0, KBulkTransferInId1, KBulkTransferInId2, KBulkTransferInId3, aTransferId);
   215 					break; //switch(aTransferId)
   231 					break; //switch(aTransferId)
   247 					}
   263 					}
   248 
   264 
   249 				if(err == KErrNone)
   265 				if(err == KErrNone)
   250 					{
   266 					{
   251 					// Comparison is a match
   267 					// Comparison is a match
   252 					RDebug::Printf("Comparison for IN transfer is a match - Number of Transfer Bytes %d", iNumTransferBytes);
   268 					OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_DUP04, "Comparison for IN transfer is a match - Number of Transfer Bytes %d", iNumTransferBytes);
   253 					iTransferComplete = 0; //reset
   269 					iTransferComplete = 0; //reset
   254 					if(++iNumTransferBytes<=KFinishNumTransferBytes)
   270 					if(++iNumTransferBytes<=KFinishNumTransferBytes)
   255 						/*
   271 						/*
   256 						Loop round again having added one to 
   272 						Loop round again having added one to 
   257 						the number of transfer bytes to be used.
   273 						the number of transfer bytes to be used.
   282 			break; //switch(iCaseStep)
   298 			break; //switch(iCaseStep)
   283 		}
   299 		}
   284 	
   300 	
   285 	if(err!=KErrNone)
   301 	if(err!=KErrNone)
   286 		{	
   302 		{	
   287 		RDebug::Print(msg);
   303 		OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_DUP05, msg);
   288 		iCaseStep = EFailed;
   304 		iCaseStep = EFailed;
   289 		TTestCaseFailed request(err,msg);
   305 		TTestCaseFailed request(err,msg);
   290 		iControlEp0->SendRequest(request,this);
   306 		iControlEp0->SendRequest(request,this);
       
   307 		OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_EXIT, this );
   291 		return;
   308 		return;
   292 		}	
   309 		}	
       
   310 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_TRANSFERCOMPLETEL_EXIT_DUP01, this );
   293 	}
   311 	}
   294 	
   312 	
   295 
   313 
   296 void CUT_PBASE_T_USBDI_0493::DeviceInsertedL(TUint aDeviceHandle)
   314 void CUT_PBASE_T_USBDI_0493::DeviceInsertedL(TUint aDeviceHandle)
   297 	{
   315 	{
   298 	LOG_FUNC
   316 	OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL_ENTRY, this );
   299 	Cancel();
   317 	Cancel();
   300 	RDebug::Printf("****** Father William Pattern Length is %d bytes! *********", KLiteralEnglish8Length);
   318 	OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL, "****** Father William Pattern Length is %d bytes! *********", KLiteralEnglish8Length);
   301 	if(BaseBulkDeviceInsertedL(aDeviceHandle) == EDeviceConfigurationError)
   319 	if(BaseBulkDeviceInsertedL(aDeviceHandle) == EDeviceConfigurationError)
   302 		// Prepare for response from control transfer to client
   320 		// Prepare for response from control transfer to client
   303 		{
   321 		{
   304 		iCaseStep = EFailed;
   322 		iCaseStep = EFailed;
   305 		}
   323 		}
   306 	
   324 	
   307 	// Create the bulk transfers	
   325 	// Create the bulk transfers	
   308 	RDebug::Printf("Trying to create the bulk transfers - size 0x%u", KBulkTransferMaxSize);
   326 	OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL_DUP01, "Trying to create the bulk transfers - size 0x%u", KBulkTransferMaxSize);
   309 	iInTransfer[0] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId0);
   327 	iInTransfer[0] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId0);
   310 	iInTransfer[1] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId1);
   328 	iInTransfer[1] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId1);
   311 	iInTransfer[2] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId2);
   329 	iInTransfer[2] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId2);
   312 	iInTransfer[3] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId3);
   330 	iInTransfer[3] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkIn,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferInId3);
   313 	iOutTransfer[0] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId0);
   331 	iOutTransfer[0] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId0);
   314 	iOutTransfer[1] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId1);
   332 	iOutTransfer[1] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId1);
   315 	iOutTransfer[2] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId2);
   333 	iOutTransfer[2] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId2);
   316 	iOutTransfer[3] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId3);
   334 	iOutTransfer[3] = new (ELeave) CBulkTransfer(iTestPipeInterface1BulkOut,iUsbInterface1,KBulkTransferMaxSize,*this,KBulkTransferOutId3);
   317 		
   335 		
   318 	// Initialise the descriptors for transfer		
   336 	// Initialise the descriptors for transfer		
   319 	RDebug::Printf("Initialising the transfer descriptors");
   337 	OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL_DUP02, "Initialising the transfer descriptors");
   320 	TInt err = iUsbInterface1.InitialiseTransferDescriptors();
   338 	TInt err = iUsbInterface1.InitialiseTransferDescriptors();
   321 	if(err != KErrNone)
   339 	if(err != KErrNone)
   322 		{
   340 		{
   323 		TBuf<256> msg;
   341 		TBuf<256> msg;
   324 		msg.Format(_L("<Error %d> Unable to initialise transfer descriptors"),err);
   342 		msg.Format(_L("<Error %d> Unable to initialise transfer descriptors"),err);
   325 		RDebug::Print(msg);
   343 		OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL_DUP03, msg);
   326 		iCaseStep = EFailed;
   344 		iCaseStep = EFailed;
   327 		TTestCaseFailed request(err,msg);
   345 		TTestCaseFailed request(err,msg);
   328 		iControlEp0->SendRequest(request,this);
   346 		iControlEp0->SendRequest(request,this);
       
   347 		OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL_EXIT, this );
   329 		return;
   348 		return;
   330 		}
   349 		}
   331 			
   350 			
   332 	RDebug::Printf("Ask client to read %d bytes of data", KClientNumReadBytes);
   351 	OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL_DUP04, "Ask client to read %d bytes of data", KClientNumReadBytes);
   333 	iCaseStep = ETransferOut;
   352 	iCaseStep = ETransferOut;
   334 	TEndpointReadUntilShortRequest request(1,1,KClientNumReadBytes);// EP1 because 1st reader EP
   353 	TEndpointReadUntilShortRequest request(1,1,KClientNumReadBytes);// EP1 because 1st reader EP
   335 	iControlEp0->SendRequest(request,this);
   354 	iControlEp0->SendRequest(request,this);
       
   355 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_0493_DEVICEINSERTEDL_EXIT_DUP01, this );
   336 	}
   356 	}
   337 	
   357 	
   338 	} //end namespace
   358 	} //end namespace