18 |
18 |
19 /** @file |
19 /** @file |
20 @internalComponent |
20 @internalComponent |
21 */ |
21 */ |
22 |
22 |
|
23 #include "chargingstates.h" |
23 #include <usb/usblogger.h> |
24 #include <usb/usblogger.h> |
24 #include "chargingstates.h" |
|
25 #include "reenumerator.h" |
25 #include "reenumerator.h" |
26 #include "OstTraceDefinitions.h" |
26 |
27 #ifdef OST_TRACE_COMPILER_IN_USE |
27 #ifdef __FLOG_ACTIVE |
28 #include "chargingstatesTraces.h" |
28 _LIT8(KLogComponent, "USBCHARGEStates"); |
29 #endif |
29 #endif |
30 |
|
31 |
|
32 |
30 |
33 // Charging plugin base state |
31 // Charging plugin base state |
34 |
32 |
35 // Empty virtual function implement to give a base of each state class. |
33 // Empty virtual function implement to give a base of each state class. |
36 // A concrete state class can overlap them according to actual demand. |
34 // A concrete state class can overlap them according to actual demand. |
37 void TUsbBatteryChargingPluginStateBase::UsbServiceStateChange(TInt aLastError, |
35 void TUsbBatteryChargingPluginStateBase::UsbServiceStateChange(TInt aLastError, |
38 TUsbServiceState aOldState, TUsbServiceState aNewState) |
36 TUsbServiceState aOldState, TUsbServiceState aNewState) |
39 { |
37 { |
40 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBSERVICESTATECHANGE_ENTRY ); |
38 LOG_FUNC |
41 |
39 |
42 (void)aLastError; |
40 (void)aLastError; |
43 (void)aOldState; |
41 (void)aOldState; |
44 (void)aNewState; |
42 (void)aNewState; |
45 |
43 |
46 // Not use |
44 // Not use |
47 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBSERVICESTATECHANGE_EXIT ); |
|
48 } |
45 } |
49 |
46 |
50 void TUsbBatteryChargingPluginStateBase::UsbDeviceStateChange(TInt aLastError, |
47 void TUsbBatteryChargingPluginStateBase::UsbDeviceStateChange(TInt aLastError, |
51 TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
48 TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
52 { |
49 { |
53 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_ENTRY ); |
50 LOG_FUNC |
54 |
51 |
55 (void)aLastError; |
52 (void)aLastError; |
56 (void)aOldState; |
53 (void)aOldState; |
57 (void)aNewState; |
54 (void)aNewState; |
58 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_USBDEVICESTATECHANGE_EXIT ); |
|
59 } |
55 } |
60 |
56 |
61 void TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL( |
57 void TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL( |
62 const TUid& aRepository, TUint aId, TInt aVal) |
58 const TUid& aRepository, TUint aId, TInt aVal) |
63 { |
59 { |
64 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_ENTRY ); |
60 LOG_FUNC |
65 |
61 |
66 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL, |
62 LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL aRepository = 0x%08x, aId = %d, aVal = %d"), aRepository, aId, aVal); |
67 "TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL;aRepository = 0x%08x;aId=%d;aVal=%d", |
63 LOGTEXT3(_L8("Plugin State = %d, Device State = %d"), iParent.iPluginState, iParent.iDeviceState); |
68 aRepository.iUid, aId, (TInt32)aVal ); |
|
69 OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_DUP1, |
|
70 "TUsbBatteryChargingPluginStateBase::HandleRepositoryValueChangedL;Plugin State = %d, Device State = %d", |
|
71 iParent.iPluginState, iParent.iDeviceState ); |
|
72 |
64 |
73 if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) && |
65 if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) && |
74 (aId == KUsbBatteryChargingKeyEnabledUserSetting)) |
66 (aId == KUsbBatteryChargingKeyEnabledUserSetting)) |
75 { |
67 { |
76 iParent.iUserSetting = (TUsbBatteryChargingUserSetting)aVal; |
68 iParent.iUserSetting = (TUsbBatteryChargingUserSetting)aVal; |
91 } |
83 } |
92 |
84 |
93 iParent.SetState(EPluginStateUserDisabled); |
85 iParent.SetState(EPluginStateUserDisabled); |
94 } |
86 } |
95 } |
87 } |
96 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_HANDLEREPOSITORYVALUECHANGEDL_EXIT ); |
|
97 } |
88 } |
98 |
89 |
99 void TUsbBatteryChargingPluginStateBase::DeviceStateTimeout() |
90 void TUsbBatteryChargingPluginStateBase::DeviceStateTimeout() |
100 { |
91 { |
101 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_ENTRY ); |
92 LOG_FUNC |
102 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT, "TUsbBatteryChargingPluginStateBase::DeviceStateTimeout;Time: %u Plugin State = %d, Device State = %d", User::NTickCount(), (TInt32)iParent.iPluginState, (TInt32)iParent.iDeviceState ); |
93 LOGTEXT4(_L8("Time: %d Plugin State = %d, Device State = %d"), User::NTickCount(), iParent.iPluginState, iParent.iDeviceState); |
103 |
94 |
104 iParent.iDeviceReEnumerator->Cancel(); // cancel re-enumeration AO |
95 iParent.iDeviceReEnumerator->Cancel(); // cancel re-enumeration AO |
105 |
96 |
106 if(iParent.iUserSetting) // User allow charging already and not in negotiating process... |
97 if(iParent.iUserSetting) // User allow charging already and not in negotiating process... |
107 { |
98 { |
108 // Should not happen !!! Otherwise, something wrong!!! |
99 // Should not happen !!! Otherwise, something wrong!!! |
109 iParent.SetState(EPluginStateIdle); |
100 iParent.SetState(EPluginStateIdle); |
110 } |
101 } |
111 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_DEVICESTATETIMEOUT_EXIT ); |
|
112 } |
102 } |
113 |
103 |
114 // For host OTG enabled charging plug-in |
104 // For host OTG enabled charging plug-in |
115 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV |
105 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV |
116 void TUsbBatteryChargingPluginStateBase::MpsoIdPinStateChanged(TInt aValue) |
106 void TUsbBatteryChargingPluginStateBase::MpsoIdPinStateChanged(TInt aValue) |
117 { |
107 { |
118 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_ENTRY ); |
108 LOG_FUNC |
119 |
109 |
120 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED, "TUsbBatteryChargingPluginStateBase::MpsoIdPinStateChanged;IdPinState changed => %d", aValue ); |
110 LOGTEXT2(_L8("IdPinState changed => %d"), aValue); |
121 |
111 |
122 // Disable charging here when IdPin is present |
112 // Disable charging here when IdPin is present |
123 // When IdPin disappears (i.e. the phone becomes B-Device), all necessary step are performed |
113 // When IdPin disappears (i.e. the phone becomes B-Device), all necessary step are performed |
124 // in UsbDeviceStateChange() method |
114 // in UsbDeviceStateChange() method |
125 |
115 |
150 iParent.StopCharging(); |
139 iParent.StopCharging(); |
151 } |
140 } |
152 iParent.SetState(EPluginStateIdle); |
141 iParent.SetState(EPluginStateIdle); |
153 break; |
142 break; |
154 } |
143 } |
155 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOIDPINSTATECHANGED_EXIT_DUP1 ); |
|
156 } |
144 } |
157 |
145 |
158 void TUsbBatteryChargingPluginStateBase::MpsoOtgStateChangedL(TUsbOtgState aNewState) |
146 void TUsbBatteryChargingPluginStateBase::MpsoOtgStateChangedL(TUsbOtgState aNewState) |
159 { |
147 { |
160 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOOTGSTATECHANGEDL_ENTRY ); |
148 LOG_FUNC |
161 |
149 |
162 iParent.iOtgState = aNewState; |
150 iParent.iOtgState = aNewState; |
163 |
151 |
164 // Not use currently |
152 // Not use currently |
165 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOOTGSTATECHANGEDL_EXIT ); |
|
166 } |
153 } |
167 #endif |
154 #endif |
168 |
155 |
169 void TUsbBatteryChargingPluginStateBase::MpsoVBusStateChanged(TInt aNewState) |
156 void TUsbBatteryChargingPluginStateBase::MpsoVBusStateChanged(TInt aNewState) |
170 { |
157 { |
171 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_ENTRY ); |
158 LOG_FUNC |
172 |
159 |
173 if (aNewState == iParent.iVBusState) |
160 if (aNewState == iParent.iVBusState) |
174 { |
161 { |
175 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED, "TUsbBatteryChargingPluginStateBase::MpsoVBusStateChanged;Receive VBus State Change notification without any state change: aNewState = %d", aNewState ); |
162 LOGTEXT2(_L8("Receive VBus State Change notification without any state change: aNewState = %d"), aNewState); |
176 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_EXIT ); |
|
177 return;//should not happen?? |
163 return;//should not happen?? |
178 } |
164 } |
179 |
165 |
180 OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_DUP1, "TUsbBatteryChargingPluginStateBase::MpsoVBusStateChanged;VBusState changed from %d to %d", iParent.iVBusState, aNewState ); |
166 LOGTEXT3(_L8("VBusState changed from %d to %d"), iParent.iVBusState, aNewState); |
181 |
167 |
182 iParent.iVBusState = aNewState; |
168 iParent.iVBusState = aNewState; |
183 if (aNewState == 0) // VBus drop down - we have disconnected from host |
169 if (aNewState == 0) // VBus drop down - we have disconnected from host |
184 { |
170 { |
185 if (iParent.iPluginState == EPluginStateCharging) |
171 if (iParent.iPluginState == EPluginStateCharging) |
188 } |
174 } |
189 iParent.SetState(EPluginStateIdle); |
175 iParent.SetState(EPluginStateIdle); |
190 } |
176 } |
191 |
177 |
192 // The handling of VBus on will be down in DeviceStateChanged implicitly |
178 // The handling of VBus on will be down in DeviceStateChanged implicitly |
193 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_MPSOVBUSSTATECHANGED_EXIT_DUP1 ); |
|
194 } |
179 } |
195 |
180 |
196 |
181 |
197 TUsbBatteryChargingPluginStateBase::TUsbBatteryChargingPluginStateBase ( |
182 TUsbBatteryChargingPluginStateBase::TUsbBatteryChargingPluginStateBase ( |
198 CUsbBatteryChargingPlugin& aParentStateMachine ): |
183 CUsbBatteryChargingPlugin& aParentStateMachine ): |
199 iParent(aParentStateMachine) |
184 iParent(aParentStateMachine) |
200 { |
185 { |
201 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_CONS_ENTRY ); |
186 LOG_FUNC |
202 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEBASE_TUSBBATTERYCHARGINGPLUGINSTATEBASE_CONS_EXIT ); |
|
203 } |
187 } |
204 |
188 |
205 |
189 |
206 // Charging plugin idle state |
190 // Charging plugin idle state |
207 |
191 |
208 TUsbBatteryChargingPluginStateIdle::TUsbBatteryChargingPluginStateIdle ( |
192 TUsbBatteryChargingPluginStateIdle::TUsbBatteryChargingPluginStateIdle ( |
209 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
193 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
210 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
194 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
211 { |
195 { |
212 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_CONS_ENTRY ); |
196 LOG_FUNC |
213 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_CONS_EXIT ); |
|
214 }; |
197 }; |
215 |
198 |
216 void TUsbBatteryChargingPluginStateIdle::UsbDeviceStateChange( |
199 void TUsbBatteryChargingPluginStateIdle::UsbDeviceStateChange( |
217 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
200 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
218 { |
201 { |
219 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE_ENTRY ); |
202 LOG_FUNC |
220 |
203 |
221 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateIdle::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState ); |
204 LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateIdle::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState); |
222 (void)aLastError; |
205 (void)aLastError; |
223 (void)aOldState; |
206 (void)aOldState; |
224 iParent.iDeviceState = aNewState; |
207 iParent.iDeviceState = aNewState; |
225 iParent.LogStateText(aNewState); |
208 iParent.LogStateText(aNewState); |
226 |
209 |
240 iParent.SetState(EPluginStateUserDisabled); |
223 iParent.SetState(EPluginStateUserDisabled); |
241 } |
224 } |
242 } |
225 } |
243 break; |
226 break; |
244 } |
227 } |
245 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLE_USBDEVICESTATECHANGE_EXIT ); |
|
246 } |
228 } |
247 |
229 |
248 |
230 |
249 // Charging plugin current negotiating state |
231 // Charging plugin current negotiating state |
250 |
232 |
251 TUsbBatteryChargingPluginStateCurrentNegotiating::TUsbBatteryChargingPluginStateCurrentNegotiating ( |
233 TUsbBatteryChargingPluginStateCurrentNegotiating::TUsbBatteryChargingPluginStateCurrentNegotiating ( |
252 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
234 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
253 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
235 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
254 { |
236 { |
255 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_CONS_ENTRY ); |
237 LOG_FUNC |
256 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_CONS_EXIT ); |
|
257 }; |
238 }; |
258 |
239 |
259 void TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange( |
240 void TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange( |
260 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
241 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
261 { |
242 { |
262 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_ENTRY ); |
243 LOG_FUNC |
263 |
244 |
264 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState ); |
245 LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState); |
265 (void)aLastError; |
246 (void)aLastError; |
266 (void)aOldState; |
247 (void)aOldState; |
267 iParent.iDeviceState = aNewState; |
248 iParent.iDeviceState = aNewState; |
268 iParent.LogStateText(aNewState); |
249 iParent.LogStateText(aNewState); |
269 |
250 |
272 case EUsbDeviceStateConfigured: |
253 case EUsbDeviceStateConfigured: |
273 if (iParent.IsUsbChargingPossible()) |
254 if (iParent.IsUsbChargingPossible()) |
274 { |
255 { |
275 iParent.iDeviceStateTimer->Cancel(); |
256 iParent.iDeviceStateTimer->Cancel(); |
276 |
257 |
277 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP1, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;iParent.iAvailableMilliAmps=%d", iParent.iAvailableMilliAmps ); |
258 LOGTEXT2(_L8("iParent.iAvailableMilliAmps = %d"),iParent.iAvailableMilliAmps); |
278 iParent.iAvailableMilliAmps = iParent.iRequestedCurrentValue; |
259 iParent.iAvailableMilliAmps = iParent.iRequestedCurrentValue; |
279 |
260 |
280 if(0 != iParent.iRequestedCurrentValue) |
261 if(0 != iParent.iRequestedCurrentValue) |
281 { |
262 { |
282 // A non-zero value was accepted by host, charging |
263 // A non-zero value was accepted by host, charging |
283 // can be performed now. |
264 // can be performed now. |
284 iParent.StartCharging(iParent.iAvailableMilliAmps); |
265 iParent.StartCharging(iParent.iAvailableMilliAmps); |
285 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP2, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;PluginState => EPluginStateCharging(%d)", iParent.iPluginState ); |
266 LOGTEXT2(_L8("PluginState => EPluginStateCharging(%d)"),iParent.iPluginState); |
286 iParent.SetNegotiatedCurrent(iParent.iAvailableMilliAmps); |
267 iParent.SetNegotiatedCurrent(iParent.iAvailableMilliAmps); |
287 } |
268 } |
288 else |
269 else |
289 { |
270 { |
290 // Host can only accept 0 charging current |
271 // Host can only accept 0 charging current |
291 // No way to do charging |
272 // No way to do charging |
292 iParent.SetState(EPluginStateNoValidCurrent); |
273 iParent.SetState(EPluginStateNoValidCurrent); |
293 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_DUP3, "TUsbBatteryChargingPluginStateCurrentNegotiating::UsbDeviceStateChange;No more current value to try, iPluginState turned to %d", iParent.iPluginState ); |
274 LOGTEXT2(_L8("No more current value to try, iPluginState turned to %d"), iParent.iPluginState); |
294 } |
275 } |
295 } |
276 } |
296 |
277 |
297 break; |
278 break; |
298 |
279 |
302 |
283 |
303 |
284 |
304 default: |
285 default: |
305 break; |
286 break; |
306 } |
287 } |
307 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_USBDEVICESTATECHANGE_EXIT ); |
|
308 } |
288 } |
309 |
289 |
310 void TUsbBatteryChargingPluginStateCurrentNegotiating::DeviceStateTimeout() |
290 void TUsbBatteryChargingPluginStateCurrentNegotiating::DeviceStateTimeout() |
311 { |
291 { |
312 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT_ENTRY ); |
292 LOG_FUNC |
313 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT, "TUsbBatteryChargingPluginStateCurrentNegotiating::DeviceStateTimeout;Time: %d Plugin State = %d, Device State = %d", User::NTickCount(), (TInt32)iParent.iPluginState, (TInt32)iParent.iDeviceState ); |
293 LOGTEXT4(_L8("Time: %d Plugin State = %d, Device State = %d"), User::NTickCount(), iParent.iPluginState, iParent.iDeviceState); |
314 |
294 |
315 iParent.iDeviceReEnumerator->Cancel(); // cancel re-enumeration AO |
295 iParent.iDeviceReEnumerator->Cancel(); // cancel re-enumeration AO |
316 |
296 |
317 if(iParent.iRequestedCurrentValue != 0) |
297 if(iParent.iRequestedCurrentValue != 0) |
318 { |
298 { |
323 { |
303 { |
324 // The Host doesn't accept 0ma power request? |
304 // The Host doesn't accept 0ma power request? |
325 // Assume it will never happens. |
305 // Assume it will never happens. |
326 iParent.SetState(EPluginStateNoValidCurrent); |
306 iParent.SetState(EPluginStateNoValidCurrent); |
327 } |
307 } |
328 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECURRENTNEGOTIATING_DEVICESTATETIMEOUT_EXIT ); |
|
329 } |
308 } |
330 |
309 |
331 |
310 |
332 // Charging plugin charing state |
311 // Charging plugin charing state |
333 |
312 |
334 |
313 |
335 TUsbBatteryChargingPluginStateCharging::TUsbBatteryChargingPluginStateCharging ( |
314 TUsbBatteryChargingPluginStateCharging::TUsbBatteryChargingPluginStateCharging ( |
336 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
315 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
337 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
316 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
338 { |
317 { |
339 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_ENTRY ); |
318 LOG_FUNC |
340 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_CONS_EXIT ); |
|
341 } |
319 } |
342 |
320 |
343 void TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange( |
321 void TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange( |
344 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
322 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
345 { |
323 { |
346 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_ENTRY ); |
324 LOG_FUNC |
347 |
325 |
348 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState ); |
326 LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateCharging::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState); |
349 (void)aLastError; |
327 (void)aLastError; |
350 (void)aOldState; |
328 (void)aOldState; |
351 iParent.iDeviceState = aNewState; |
329 iParent.iDeviceState = aNewState; |
352 iParent.LogStateText(aNewState); |
330 iParent.LogStateText(aNewState); |
353 |
331 |
369 break; |
347 break; |
370 |
348 |
371 default: |
349 default: |
372 break; |
350 break; |
373 } |
351 } |
374 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATECHARGING_USBDEVICESTATECHANGE_EXIT ); |
|
375 } |
352 } |
376 |
353 |
377 // Charging plugin negotiated fail state |
354 // Charging plugin negotiated fail state |
378 |
355 |
379 |
356 |
380 TUsbBatteryChargingPluginStateNoValidCurrent::TUsbBatteryChargingPluginStateNoValidCurrent ( |
357 TUsbBatteryChargingPluginStateNoValidCurrent::TUsbBatteryChargingPluginStateNoValidCurrent ( |
381 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
358 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
382 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
359 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
383 { |
360 { |
384 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_CONS_ENTRY ); |
361 LOG_FUNC |
385 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_TUSBBATTERYCHARGINGPLUGINSTATENOVALIDCURRENT_CONS_EXIT ); |
|
386 }; |
362 }; |
387 |
363 |
388 |
364 |
389 // Charging plugin idle negotiated state |
365 // Charging plugin idle negotiated state |
390 |
366 |
391 TUsbBatteryChargingPluginStateIdleNegotiated::TUsbBatteryChargingPluginStateIdleNegotiated ( |
367 TUsbBatteryChargingPluginStateIdleNegotiated::TUsbBatteryChargingPluginStateIdleNegotiated ( |
392 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
368 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
393 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
369 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
394 { |
370 { |
395 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_CONS_ENTRY ); |
371 LOG_FUNC |
396 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_CONS_EXIT ); |
|
397 }; |
372 }; |
398 |
373 |
399 void TUsbBatteryChargingPluginStateIdleNegotiated::UsbDeviceStateChange( |
374 void TUsbBatteryChargingPluginStateIdleNegotiated::UsbDeviceStateChange( |
400 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
375 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
401 { |
376 { |
402 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE_ENTRY ); |
377 LOG_FUNC |
403 |
378 |
404 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateIdleNegotiated::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState ); |
379 LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateIdleNegotiated::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState); |
405 (void)aLastError; |
380 (void)aLastError; |
406 (void)aOldState; |
381 (void)aOldState; |
407 iParent.iDeviceState = aNewState; |
382 iParent.iDeviceState = aNewState; |
408 iParent.LogStateText(aNewState); |
383 iParent.LogStateText(aNewState); |
409 |
384 |
420 break; |
395 break; |
421 |
396 |
422 default: |
397 default: |
423 break; |
398 break; |
424 } |
399 } |
425 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEIDLENEGOTIATED_USBDEVICESTATECHANGE_EXIT ); |
|
426 } |
400 } |
427 |
401 |
428 // Charging plugin user disabled state |
402 // Charging plugin user disabled state |
429 |
403 |
430 TUsbBatteryChargingPluginStateUserDisabled::TUsbBatteryChargingPluginStateUserDisabled ( |
404 TUsbBatteryChargingPluginStateUserDisabled::TUsbBatteryChargingPluginStateUserDisabled ( |
431 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
405 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
432 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
406 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
433 { |
407 { |
434 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_ENTRY ); |
408 LOG_FUNC |
435 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_CONS_EXIT ); |
|
436 }; |
409 }; |
437 |
410 |
438 |
411 |
439 void TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange( |
412 void TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange( |
440 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
413 TInt aLastError, TUsbDeviceState aOldState, TUsbDeviceState aNewState) |
441 { |
414 { |
442 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_ENTRY ); |
415 LOG_FUNC |
443 |
416 |
444 OstTraceExt3( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE, "TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange;aLastError=%d;aOldState=%d;aNewState=%d", aLastError, aOldState, aNewState ); |
417 LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateUserDisabled::UsbDeviceStateChange LastError = %d, aOldState = %d, aNewState = %d"), aLastError, aOldState, aNewState); |
445 (void)aLastError; |
418 (void)aLastError; |
446 (void)aOldState; |
419 (void)aOldState; |
447 iParent.iDeviceState = aNewState; |
420 iParent.iDeviceState = aNewState; |
448 iParent.LogStateText(aNewState); |
421 iParent.LogStateText(aNewState); |
449 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_USBDEVICESTATECHANGE_EXIT ); |
|
450 } |
422 } |
451 |
423 |
452 void TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL( |
424 void TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL( |
453 const TUid& aRepository, TUint aId, TInt aVal) |
425 const TUid& aRepository, TUint aId, TInt aVal) |
454 { |
426 { |
455 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_ENTRY ); |
427 LOG_FUNC |
456 |
428 |
457 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;aRepository = 0x%08x", aRepository.iUid ); |
429 LOGTEXT4(_L8(">>TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL aRepository = 0x%08x, aId = %d, aVal = %d"), aRepository, aId, aVal); |
458 OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP1, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;aId=%d;aVal=%d", aId, aVal ); |
430 LOGTEXT3(_L8("Plugin State = %d, Device State = %d"), iParent.iPluginState, iParent.iDeviceState); |
459 OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP2, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;iParent.iPluginState=%d;iParent.iDeviceState=%d", iParent.iPluginState, iParent.iDeviceState ); |
|
460 |
431 |
461 if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) && |
432 if ((aRepository == KUsbBatteryChargingCentralRepositoryUid) && |
462 (aId == KUsbBatteryChargingKeyEnabledUserSetting)) |
433 (aId == KUsbBatteryChargingKeyEnabledUserSetting)) |
463 { |
434 { |
464 iParent.iUserSetting = (TUsbBatteryChargingUserSetting)aVal; |
435 iParent.iUserSetting = (TUsbBatteryChargingUserSetting)aVal; |
470 if ((iParent.iPluginState == EPluginStateIdleNegotiated) |
441 if ((iParent.iPluginState == EPluginStateIdleNegotiated) |
471 && (iParent.iDeviceState == EUsbDeviceStateConfigured)) |
442 && (iParent.iDeviceState == EUsbDeviceStateConfigured)) |
472 { |
443 { |
473 iParent.StartCharging(iParent.iAvailableMilliAmps); // Go to charing state implicitly |
444 iParent.StartCharging(iParent.iAvailableMilliAmps); // Go to charing state implicitly |
474 } |
445 } |
475 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_DUP3, "TUsbBatteryChargingPluginStateUserDisabled::HandleRepositoryValueChangedL;PluginState => %d", iParent.iPluginState ); |
446 LOGTEXT2(_L8("PluginState => %d"), iParent.iPluginState); |
476 } |
447 } |
477 } |
448 } |
478 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_HANDLEREPOSITORYVALUECHANGEDL_EXIT ); |
|
479 } |
449 } |
480 |
450 |
481 // For host OTG enabled charging plug-in |
451 // For host OTG enabled charging plug-in |
482 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV |
452 #ifdef SYMBIAN_ENABLE_USB_OTG_HOST_PRIV |
483 void TUsbBatteryChargingPluginStateUserDisabled::MpsoIdPinStateChanged(TInt aValue) |
453 void TUsbBatteryChargingPluginStateUserDisabled::MpsoIdPinStateChanged(TInt aValue) |
484 { |
454 { |
485 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_ENTRY ); |
455 LOG_FUNC |
486 |
456 |
487 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED, "TUsbBatteryChargingPluginStateUserDisabled::MpsoIdPinStateChanged;IdPinState changed => %d", aValue ); |
457 LOGTEXT2(_L8("IdPinState changed => %d"), aValue); |
488 |
458 |
489 // Disable charging here when IdPin is present |
459 // Disable charging here when IdPin is present |
490 // When IdPin disappears (i.e. the phone becomes B-Device), all necessary step are performed |
460 // When IdPin disappears (i.e. the phone becomes B-Device), all necessary step are performed |
491 // in UsbDeviceStateChange() method |
461 // in UsbDeviceStateChange() method |
492 |
462 |
496 { |
466 { |
497 case EUsbBatteryChargingIdPinARole: |
467 case EUsbBatteryChargingIdPinARole: |
498 TRAP_IGNORE(iParent.SetInitialConfigurationL()); |
468 TRAP_IGNORE(iParent.SetInitialConfigurationL()); |
499 iParent.PushRecoverState(EPluginStateBEndedCableNotPresent); |
469 iParent.PushRecoverState(EPluginStateBEndedCableNotPresent); |
500 |
470 |
501 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT ); |
|
502 return; |
471 return; |
503 |
472 |
504 case EUsbBatteryChargingIdPinBRole: |
473 case EUsbBatteryChargingIdPinBRole: |
505 iParent.PushRecoverState(EPluginStateIdle); |
474 iParent.PushRecoverState(EPluginStateIdle); |
506 break; |
475 break; |
507 |
476 |
508 default: |
477 default: |
509 iParent.SetState(EPluginStateIdle); |
478 iParent.SetState(EPluginStateIdle); |
510 break; |
479 break; |
511 } |
480 } |
512 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOIDPINSTATECHANGED_EXIT_DUP1 ); |
|
513 } |
481 } |
514 |
482 |
515 #endif |
483 #endif |
516 |
484 |
517 void TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged(TInt aNewState) |
485 void TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged(TInt aNewState) |
518 { |
486 { |
519 OstTraceFunctionEntry0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_ENTRY ); |
487 LOG_FUNC |
520 |
488 |
521 if (aNewState == iParent.iVBusState) |
489 if (aNewState == iParent.iVBusState) |
522 { |
490 { |
523 OstTrace1( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED, "TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged;Receive VBus State Change notification without any state change: aNewState = %d", aNewState ); |
491 LOGTEXT2(_L8("Receive VBus State Change notification without any state change: aNewState = %d"), aNewState); |
524 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT ); |
|
525 return; |
492 return; |
526 } |
493 } |
527 |
494 |
528 OstTraceExt2( TRACE_NORMAL, REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_DUP1, "TUsbBatteryChargingPluginStateUserDisabled::MpsoVBusStateChanged;VBusState changed from %d to %d", iParent.iVBusState, aNewState ); |
495 LOGTEXT3(_L8("VBusState changed from %d to %d"), iParent.iVBusState, aNewState); |
529 |
496 |
530 iParent.iVBusState = aNewState; |
497 iParent.iVBusState = aNewState; |
531 if (aNewState == 0) // VBus drop down - we have disconnected from host |
498 if (aNewState == 0) // VBus drop down - we have disconnected from host |
532 { |
499 { |
533 iParent.iRequestedCurrentValue = 0; |
500 iParent.iRequestedCurrentValue = 0; |
536 |
503 |
537 iParent.iPluginStateToRecovery = EPluginStateIdle; |
504 iParent.iPluginStateToRecovery = EPluginStateIdle; |
538 } |
505 } |
539 |
506 |
540 // The handling of VBus on will be down in DeviceStateChanged implicitly |
507 // The handling of VBus on will be down in DeviceStateChanged implicitly |
541 OstTraceFunctionExit0( REF_TUSBBATTERYCHARGINGPLUGINSTATEUSERDISABLED_MPSOVBUSSTATECHANGED_EXIT_DUP1 ); |
|
542 } |
508 } |
543 |
509 |
544 |
510 |
545 // Charging plugin A-role state |
511 // Charging plugin A-role state |
546 |
512 |
547 TUsbBatteryChargingPluginStateBEndedCableNotPresent::TUsbBatteryChargingPluginStateBEndedCableNotPresent ( |
513 TUsbBatteryChargingPluginStateBEndedCableNotPresent::TUsbBatteryChargingPluginStateBEndedCableNotPresent ( |
548 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
514 CUsbBatteryChargingPlugin& aParentStateMachine ) : |
549 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
515 TUsbBatteryChargingPluginStateBase(aParentStateMachine) |
550 { |
516 { |
551 OstTraceFunctionEntry0( RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_ENTRY ); |
517 LOG_FUNC |
552 OstTraceFunctionExit0( RES_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_TUSBBATTERYCHARGINGPLUGINSTATEBENDEDCABLENOTPRESENT_CONS_EXIT ); |
|
553 }; |
518 }; |
554 |
519 |
555 |
520 |
556 |
521 |