|
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 |