usbmgmt/usbmgrtest/t_usb_charging/src/usbchargingarmtest.cpp
changeset 54 320d509f1a12
equal deleted inserted replaced
51:eaaed528d5fd 54:320d509f1a12
       
     1 /*
       
     2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include <e32cmn.h>
       
    19 #include <e32debug.h>
       
    20 
       
    21 #include "usbchargingarmtest.h"
       
    22 #include "usbchargingpublishedinfo.h"
       
    23 #include "testmanager.h"
       
    24 #include "usbstatewatcher.h"
       
    25 #include "usbchargingcurrentwatcher.h"
       
    26 #include "OstTraceDefinitions.h"
       
    27 #ifdef OST_TRACE_COMPILER_IN_USE
       
    28 #include "usbchargingarmtestTraces.h"
       
    29 #endif
       
    30 
       
    31 _LIT(KMsFsy, "MSFS.FSY");
       
    32 
       
    33 
       
    34 CUsbChargingArmTest::CUsbChargingArmTest(MTestManager& aManager)
       
    35  :	CTestBase(aManager)
       
    36 	{	
       
    37 	OstTraceFunctionEntry0( DUP1_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_ENTRY );
       
    38 	OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_ENTRY );
       
    39 	OstTraceFunctionExit0( CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_EXIT );	
       
    40 	OstTraceFunctionExit0( DUP1_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_EXIT );
       
    41 	}
       
    42 
       
    43 CTestBase* CUsbChargingArmTest::NewL(MTestManager& aManager)
       
    44 	{
       
    45 	OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_NEWL_ENTRY );
       
    46 	CUsbChargingArmTest* self = new(ELeave) CUsbChargingArmTest(aManager);
       
    47 	CleanupStack::PushL(self);
       
    48 	self->ConstructL();
       
    49 	CleanupStack::Pop(self);
       
    50 	OstTraceFunctionExit0( CUSBCHARGINGARMTEST_NEWL_EXIT );
       
    51 	return self;
       
    52 	}
       
    53 
       
    54 
       
    55 int CUsbChargingArmTest::StartMassStorage()
       
    56 	{
       
    57     OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_STARTMASSSTORAGE_ENTRY );
       
    58     TInt r = KErrNone;
       
    59     OstTrace0( TRACE_NORMAL, CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage AddFileSystem" );
       
    60 	iManager.Write(_L8("Start Mass Storage"));
       
    61 	r = iFs.Connect();
       
    62     if (r != KErrNone)
       
    63         {
       
    64         OstTrace0( TRACE_ERROR, DUP1_CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage Connect to fs failed" );
       
    65         iManager.Write(_L8("Connect to Fs failed"));    
       
    66         OstTraceFunctionExit0( CUSBCHARGINGARMTEST_STARTMASSSTORAGE_EXIT );
       
    67         return r;
       
    68         }
       
    69 	r = iFs.AddFileSystem(KMsFsy);
       
    70 	if (r != KErrNone)
       
    71 		{
       
    72 		OstTrace0( TRACE_ERROR, DUP2_CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage AddFileSystem failed" );
       
    73 		iManager.Write(_L8("AddFileSystem failed"));	
       
    74 		OstTraceFunctionExit0( DUP1_CUSBCHARGINGARMTEST_STARTMASSSTORAGE_EXIT );
       
    75 		return r;
       
    76 		}
       
    77 
       
    78 	OstTrace0( TRACE_NORMAL, DUP3_CUSBCHARGINGARMTEST_STARTMASSSTORAGE, "CUsbChargingArmTest::StartMassStorage AddFileSystem success" );
       
    79 	iManager.Write(_L8("AddFileSystem success"));			
       
    80 	OstTraceFunctionExit0( DUP3_CUSBCHARGINGARMTEST_STARTMASSSTORAGE_EXIT );
       
    81 	return r;
       
    82 	}
       
    83 
       
    84 
       
    85 void CUsbChargingArmTest::ConstructL()
       
    86 	{
       
    87 	OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_CONSTRUCTL_ENTRY );
       
    88 	TInt res;
       
    89 	res = StartMassStorage();
       
    90 	if(res != KErrNone)
       
    91 		{
       
    92 		iManager.Write(_L8("start KMsFsy failed"));
       
    93 		return;
       
    94 		}
       
    95 	else
       
    96 		{
       
    97 		iManager.Write(_L8("start KMsFsy success"));
       
    98 		}
       
    99 
       
   100 	// -- Insert initialization code here
       
   101 	iManager.Write(_L8("About to connect to USBMan"));
       
   102 	res = iUsbMan.Connect();
       
   103 	if(res != KErrNone)
       
   104 		{
       
   105 		iManager.Write(_L8("Connection to USBMan failed"));
       
   106 		return;
       
   107 		}
       
   108 	else
       
   109 		{
       
   110 		iManager.Write(_L8("Cconnected to USBMan success"));
       
   111 		}
       
   112 	iChargingCurrentWatcher = CUsbChargingCurrentWatcher::NewL(*this);
       
   113 
       
   114 #ifndef	COMMANDLINE_PARAM	
       
   115 	iManager.Write(_L8("About to Set Control session"));
       
   116 	res = iUsbMan.SetCtlSessionMode(ETrue);
       
   117 	if(res != KErrNone)
       
   118 		{
       
   119 		iManager.Write(_L8("Set Control session failed"));
       
   120 		return;
       
   121 		}
       
   122 	else
       
   123 		{
       
   124 		iManager.Write(_L8("Set Control session Success"));
       
   125 		}
       
   126 	
       
   127 	iManager.Write(_L8("About to start USBMan"));
       
   128 	TRequestStatus requestStatus;
       
   129 	iUsbMan.TryStart(1, requestStatus);
       
   130 	User::WaitForRequest(requestStatus);
       
   131 	if(requestStatus.Int() == KErrNone)
       
   132 		{
       
   133 		iManager.Write(_L8("USBMan Started Success"));
       
   134 	    iUsbStateWatcher = CUsbStateWatcher::NewL(*this);
       
   135 		}
       
   136 	else
       
   137 		{
       
   138 		iManager.Write(_L8("Failed to start USBMan"));
       
   139 		}
       
   140 #endif	
       
   141 	OstTraceFunctionExit0( CUSBCHARGINGARMTEST_CONSTRUCTL_EXIT );
       
   142 	}
       
   143 
       
   144 CUsbChargingArmTest::~CUsbChargingArmTest()
       
   145 	{
       
   146 	OstTraceFunctionEntry0( DUP2_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_ENTRY );
       
   147 
       
   148 	// -- Insert cleanup code here
       
   149 	delete iChargingCurrentWatcher;
       
   150 	delete iUsbStateWatcher;
       
   151 	iUsbMan.Close();
       
   152 	iFs.Close();
       
   153 	OstTraceFunctionExit0( DUP2_CUSBCHARGINGARMTEST_CUSBCHARGINGARMTEST_EXIT );
       
   154 	}
       
   155 
       
   156 void CUsbChargingArmTest::ProcessKeyL(TKeyCode aKeyCode)
       
   157 	{
       
   158     OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_PROCESSKEYL_ENTRY );
       
   159     TInt res;
       
   160 	iManager.Write(_L8("CUsbChargingArmTest::ProcessKeyL"));
       
   161 
       
   162 	switch ( aKeyCode )
       
   163 		{
       
   164 	case '1':
       
   165 		{
       
   166 	    iManager.Write(_L8("About to Set Control session"));
       
   167 	    res = iUsbMan.SetCtlSessionMode(ETrue);
       
   168 	    if(res != KErrNone)
       
   169 	        {
       
   170 	        iManager.Write(_L8("Set Control session failed"));
       
   171 	        return;
       
   172 	        }
       
   173 	    else
       
   174 	        {
       
   175 	        iManager.Write(_L8("Set Control session Success"));
       
   176 	        }
       
   177 	    
       
   178 		iManager.Write(_L8("About to start USBMan"));
       
   179 		TRequestStatus requestStatus;
       
   180 		iUsbMan.Start(requestStatus);
       
   181 		User::WaitForRequest(requestStatus);
       
   182 		if(requestStatus.Int() == KErrNone)
       
   183 			{
       
   184 			iManager.Write(_L8("USBMan Started OK"));
       
   185 			if(!iChargingCurrentWatcher)
       
   186 			    {
       
   187 			    iChargingCurrentWatcher = CUsbChargingCurrentWatcher::NewL(*this);
       
   188 			    }
       
   189 			if(!iUsbStateWatcher)
       
   190 			    {
       
   191 			    iUsbStateWatcher = CUsbStateWatcher::NewL(*this);
       
   192 			    }			
       
   193 			}
       
   194 		else
       
   195 			{
       
   196 			iManager.Write(_L8("Failed to start USBMan"));
       
   197 			}
       
   198 		}
       
   199 		break;
       
   200 	case '2':
       
   201 		{
       
   202 		iManager.Write(_L8("About to stop USBMan"));
       
   203 		TRequestStatus requestStatus;
       
   204 		iUsbMan.Stop(requestStatus);
       
   205 		User::WaitForRequest(requestStatus);
       
   206 		if(requestStatus.Int() == KErrNone)
       
   207 			{
       
   208 			iManager.Write(_L8("USBMan Stopped OK"));
       
   209 			}
       
   210 		else
       
   211 			{
       
   212 			iManager.Write(_L8("Failed to stop USBMan"));
       
   213 			}
       
   214 		}
       
   215 		break;
       
   216 
       
   217 
       
   218 	default:
       
   219 		iManager.Write(_L8("Unknown selection"));
       
   220 		break;
       
   221 		}
       
   222 	OstTraceFunctionExit0( CUSBCHARGINGARMTEST_PROCESSKEYL_EXIT );
       
   223 	}
       
   224 
       
   225 void CUsbChargingArmTest::DisplayTestSpecificMenu()
       
   226 	{
       
   227 	OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_DISPLAYTESTSPECIFICMENU_ENTRY );
       
   228 	OstTraceFunctionExit0( CUSBCHARGINGARMTEST_DISPLAYTESTSPECIFICMENU_EXIT );
       
   229 	}
       
   230 
       
   231 void CUsbChargingArmTest::ShowUsbChargingValue(TPublishedUsbChargingInfo& aValue)
       
   232     {
       
   233     OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_ENTRY );
       
   234     iManager.Write(_L8("=====Published Current Info====="));
       
   235     ShowChargingType(aValue.iChargingPortType);
       
   236     ShowConnStatus(aValue.iUsbConnStatus);
       
   237     iManager.Write(_L8("MinAvailableVbusCurrent : %d"), aValue.iMinAvailableVbusCurrent);
       
   238     iManager.Write(_L8("MaxVbusCurrent          : %d"), aValue.iMaxVbusCurrent);
       
   239     iManager.Write(_L8("MinVbusVoltage          : %d"), aValue.iMinVbusVoltage);
       
   240     iManager.Write(_L8("===Published Current Info End==="));        
       
   241 
       
   242     OstTrace0( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP1, "CUsbChargingArmTest::ShowUsbChargingValue =====Published Current Info=====" );    
       
   243     OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP2, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iChargingPortType=%d", aValue.iChargingPortType );
       
   244     OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP3, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iUsbConnStatus=%d", aValue.iUsbConnStatus );
       
   245     OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP4, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iMinAvailableVbusCurrent=%u", aValue.iMinAvailableVbusCurrent );
       
   246     OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP5, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iMaxVbusCurrent=%u", aValue.iMaxVbusCurrent );
       
   247     OstTrace1( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP6, "CUsbChargingArmTest::ShowUsbChargingValue;aValue.iMinVbusVoltage=%u", aValue.iMinVbusVoltage );
       
   248     OstTrace0( TRACE_NORMAL, CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_DUP7, "CUsbChargingArmTest::ShowUsbChargingValue ===Published Current Info End===" );    
       
   249      
       
   250     OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWUSBCHARGINGVALUE_EXIT );
       
   251     }
       
   252 
       
   253 void CUsbChargingArmTest::ShowUsbDeviceState(TUsbDeviceState aDeviceState)
       
   254     {
       
   255     OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWUSBDEVICESTATE_ENTRY );
       
   256     TPtrC res(NULL, 0);
       
   257     
       
   258     _LIT(KUndefined, "Undefined");
       
   259     _LIT(KDefault, "Default");
       
   260     _LIT(KAttached, "Attached");
       
   261     _LIT(KPowered, "Powered");
       
   262     _LIT(KConfigured, "Configured");
       
   263     _LIT(KAddress, "Address");
       
   264     _LIT(KSuspended, "Suspended");
       
   265     _LIT(KUnKnown, "UnKnown");  
       
   266       
       
   267     switch(aDeviceState)
       
   268         {
       
   269     case EUsbDeviceStateUndefined:
       
   270         res.Set(KUndefined);
       
   271         break;
       
   272     case EUsbDeviceStateDefault:
       
   273         res.Set(KDefault);
       
   274         break;
       
   275     case EUsbDeviceStateAttached:
       
   276         res.Set(KAttached);
       
   277         break;
       
   278     case EUsbDeviceStatePowered:
       
   279         res.Set(KPowered);
       
   280         break;
       
   281     case EUsbDeviceStateConfigured:
       
   282         res.Set(KConfigured);
       
   283         break;
       
   284     case EUsbDeviceStateAddress:
       
   285         res.Set(KAddress);
       
   286         break;
       
   287     case EUsbDeviceStateSuspended:
       
   288         res.Set(KSuspended);
       
   289         break;
       
   290     default:
       
   291         res.Set(KUnKnown);
       
   292         break;
       
   293         }
       
   294         
       
   295     iManager.Write(_L8("USBDevice State is: %S"), &res);    
       
   296     OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWUSBDEVICESTATE_EXIT );
       
   297     }
       
   298 
       
   299 void CUsbChargingArmTest::ShowChargingType(TUsbChargingPortType aChargingType)
       
   300     {
       
   301     OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWCHARGINGTYPE_ENTRY );
       
   302     TPtrC res(NULL, 0);
       
   303 
       
   304     _LIT(KPortTypeNone, "None");
       
   305     _LIT(KPortTypeUnsupported, "Unsupported");
       
   306     _LIT(KPortTypeChargingPort, "ChargingPort");
       
   307     _LIT(KPortTypeDedicatedChargingPort, "DedicatedChargingPort");
       
   308     _LIT(KPortTypeStandardDownstreamPort, "StandardDownstreamPort");
       
   309     _LIT(KPortTypeChargingDownstreamPort, "ChargingDownstreamPort");
       
   310     _LIT(KPortTypeAcaRidA, "RidAAca");
       
   311     _LIT(KPortTypeAcaRidB, "RidBAca");
       
   312     _LIT(KPortTypeAcaRidC, "RidCAca");
       
   313     _LIT(KUnKnown, "UnKnown");  
       
   314 
       
   315     switch (aChargingType)
       
   316         {
       
   317         case EUsbChargingPortTypeNone:
       
   318             res.Set(KPortTypeNone);
       
   319             break;
       
   320         case EUsbChargingPortTypeUnsupported:
       
   321             res.Set(KPortTypeUnsupported);
       
   322             break;
       
   323         case EUsbChargingPortTypeChargingPort:  
       
   324             res.Set(KPortTypeChargingPort);
       
   325             break;
       
   326         case EUsbChargingPortTypeDedicatedChargingPort:
       
   327             res.Set(KPortTypeDedicatedChargingPort);
       
   328             break;              
       
   329         case EUsbChargingPortTypeChargingDownstreamPort:
       
   330             res.Set(KPortTypeChargingDownstreamPort);
       
   331             break;
       
   332         case EUsbChargingPortTypeStandardDownstreamPort:
       
   333             res.Set(KPortTypeStandardDownstreamPort);
       
   334             break;
       
   335         case EUsbChargingPortTypeAcaRidA:
       
   336             res.Set(KPortTypeAcaRidA);
       
   337             break;
       
   338         case EUsbChargingPortTypeAcaRidB:
       
   339             res.Set(KPortTypeAcaRidB);
       
   340             break;
       
   341         case EUsbChargingPortTypeAcaRidC:
       
   342             res.Set(KPortTypeAcaRidC);
       
   343             break;
       
   344         default:
       
   345             res.Set(KUnKnown);
       
   346             break;
       
   347         }
       
   348     iManager.Write(_L8("ChargingPortType: %S"), &res);    
       
   349     OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWCHARGINGTYPE_EXIT );
       
   350     }
       
   351 
       
   352 void CUsbChargingArmTest::ShowConnStatus(TUsbConnectionStatus aStatus)
       
   353     {
       
   354     OstTraceFunctionEntry0( CUSBCHARGINGARMTEST_SHOWCONNSTATUS_ENTRY );
       
   355     TPtrC res(NULL, 0);
       
   356     
       
   357     _LIT(KNone, "None");
       
   358     _LIT(KConfigured, "Configured");
       
   359     _LIT(KSuspended, "Suspend");
       
   360     _LIT(KUnKnown, "UnKnown");  
       
   361       
       
   362     switch(aStatus)
       
   363         {
       
   364     case EUsbConnectionStatusNone:
       
   365         res.Set(KNone);
       
   366         break;
       
   367     case EUsbConnectionStatusSuspend:
       
   368         res.Set(KSuspended);
       
   369         break;
       
   370     case EUsbConnectionStatusConfigured:
       
   371         res.Set(KConfigured);
       
   372         break;
       
   373     default:
       
   374         res.Set(KUnKnown);
       
   375         break;
       
   376         }
       
   377         
       
   378     iManager.Write(_L8("ConnectionStatus: %S"), &res);    
       
   379     OstTraceFunctionExit0( CUSBCHARGINGARMTEST_SHOWCONNSTATUS_EXIT );
       
   380     }    
       
   381