Find the next state given the current state and the state machine event.
35 case PTU_SM_STATE_CONFIGURATION:
36 if( signal == PTU_SM_SIGNAL_CONFIGURATION_COMPLETE) next_state = PTU_SM_STATE_POWER_SAVE;
37 else if(signal == PTU_SM_SIGNAL_LOCAL_FAULT) next_state = PTU_SM_STATE_LOCAL_FAULT;
40 case PTU_SM_STATE_POWER_SAVE:
41 if( signal == PTU_SM_SIGNAL_LOCAL_FAULT) next_state = PTU_SM_STATE_LOCAL_FAULT;
42 else if(signal == PTU_SM_SIGNAL_SYSTEM_ERROR) next_state = PTU_SM_STATE_LATCH_FAULT;
43 else if(signal == PTU_SM_SIGNAL_ROGUE_OBJECT_DETECTED) next_state = PTU_SM_STATE_LATCH_FAULT;
44 else if(signal == PTU_SM_SIGNAL_PRU_ADV_RCVD) next_state = PTU_SM_STATE_LOW_POWER;
47 case PTU_SM_STATE_LOW_POWER:
48 if( signal == PTU_SM_SIGNAL_LOCAL_FAULT) next_state = PTU_SM_STATE_LOCAL_FAULT;
49 else if(signal == PTU_SM_SIGNAL_SYSTEM_ERROR) next_state = PTU_SM_STATE_LATCH_FAULT;
50 else if(signal == PTU_SM_SIGNAL_ROGUE_OBJECT_DETECTED) next_state = PTU_SM_STATE_LATCH_FAULT;
51 else if(signal == PTU_SM_SIGNAL_REGISTRATION_TIMEOUT ||
52 signal == PTU_SM_SIGNAL_ALL_DEVICES_DISCONNECTED) next_state = PTU_SM_STATE_POWER_SAVE;
53 else if(signal == PTU_SM_SIGNAL_CHARGE_START) next_state = PTU_SM_STATE_POWER_TRANSFER;
56 case PTU_SM_STATE_POWER_TRANSFER:
57 if( signal == PTU_SM_SIGNAL_LOCAL_FAULT) next_state = PTU_SM_STATE_LOCAL_FAULT;
58 else if(signal == PTU_SM_SIGNAL_SYSTEM_ERROR) next_state = PTU_SM_STATE_LATCH_FAULT;
59 else if(signal == PTU_SM_SIGNAL_ROGUE_OBJECT_DETECTED) next_state = PTU_SM_STATE_LATCH_FAULT;
60 else if(signal == PTU_SM_SIGNAL_ALL_DEVICES_DISCONNECTED ||
61 signal == PTU_SM_SIGNAL_PRU_ALL_CHARGE_COMPLETE) next_state = PTU_SM_STATE_POWER_SAVE;
64 case PTU_SM_STATE_LATCH_FAULT:
65 if( signal == PTU_SM_SIGNAL_LOCAL_FAULT) next_state = PTU_SM_STATE_LOCAL_FAULT;
66 else if(signal == PTU_SM_SIGNAL_LATCHING_FAULT_CLEARED_BY_USER)
67 next_state = PTU_SM_STATE_CONFIGURATION;
70 case PTU_SM_STATE_LOCAL_FAULT:
71 if( signal == PTU_SM_SIGNAL_LOCAL_FAULT_CLEARED)
73 if(p_state->
prev_state == PTU_SM_STATE_LATCH_FAULT)
74 next_state = PTU_SM_STATE_LATCH_FAULT;
76 next_state = PTU_SM_STATE_CONFIGURATION;
ptu_sm_state_t prev_state
ptu_sm_state_t current_state
ptu_sm_state_t
PTU states.