@@ -20,20 +20,16 @@ static void initState(state_t* state, char* name, stateTransition_t *(*action)()
2020static void initTransition (stateTransition_t * transition , state_t * target , int (* action )() );
2121
2222
23- extern stateTransition_t * powerOnAction (void );
2423extern stateTransition_t * idleAction (void );
25- extern stateTransition_t * readyForPumpdownAction (void );
2624extern stateTransition_t * pumpdownAction (void );
27- extern stateTransition_t * readyForLaunchAction (void );
2825extern stateTransition_t * propulsionAction (void );
2926extern stateTransition_t * brakingAction (void );
3027extern stateTransition_t * stoppedAction (void );
3128extern stateTransition_t * crawlAction (void );
3229extern stateTransition_t * postRunAction (void );
3330extern stateTransition_t * safeToApproachAction (void );
34- extern stateTransition_t * preFaultAction (void );
3531extern stateTransition_t * runFaultAction (void );
36- extern stateTransition_t * postFaultAction (void );
32+ extern stateTransition_t * nonRunFaultAction (void );
3733
3834
3935
@@ -133,47 +129,27 @@ static int addTransition(char *stateName, stateTransition_t *trans) {
133129 return 0 ;
134130}
135131
136- static int initPowerOff (state_t * powerOff ) {
137- initTransition (powerOff -> transitions [0 ], findState (IDLE_NAME ), genTranAction );
138- initTransition (powerOff -> transitions [1 ], findState (PRE_RUN_FAULT_NAME ), genTranAction );
139- addTransition (POWER_OFF_NAME , powerOff -> transitions [0 ]);
140- addTransition (POWER_OFF_NAME , powerOff -> transitions [1 ]);
141- return 0 ;
142- }
143-
144132static int initIdle (state_t * idle ) {
145133
146- initTransition (idle -> transitions [0 ], findState (READY_FOR_PUMPDOWN_NAME ), genTranAction );
147- initTransition (idle -> transitions [1 ], findState (PRE_RUN_FAULT_NAME ), genTranAction );
134+ initTransition (idle -> transitions [0 ], findState (PUMPDOWN_NAME ), genTranAction );
135+ initTransition (idle -> transitions [1 ], findState (NON_RUN_FAULT_NAME ), genTranAction );
148136 addTransition (IDLE_NAME , idle -> transitions [0 ]);
149137 addTransition (IDLE_NAME , idle -> transitions [1 ]);
150- return 0 ;
151- }
152-
153- static int initReadyForPumpdown (state_t * readyForPumpdown ) {
138+
139+ idle -> fault = idle -> transitions [1 ];
154140
155- initTransition (readyForPumpdown -> transitions [0 ], findState (PUMPDOWN_NAME ), genTranAction );
156- initTransition (readyForPumpdown -> transitions [1 ], findState (PRE_RUN_FAULT_NAME ), genTranAction );
157- addTransition (READY_FOR_PUMPDOWN_NAME , readyForPumpdown -> transitions [0 ]);
158- addTransition (READY_FOR_PUMPDOWN_NAME , readyForPumpdown -> transitions [1 ]);
159141 return 0 ;
160142}
161143
162144static int initPumpdown (state_t * pumpdown ) {
163145
164- initTransition (pumpdown -> transitions [0 ], findState (READY_NAME ), genTranAction );
165- initTransition (pumpdown -> transitions [1 ], findState (PRE_RUN_FAULT_NAME ), genTranAction );
146+ initTransition (pumpdown -> transitions [0 ], findState (PROPULSION_NAME ), genTranAction );
147+ initTransition (pumpdown -> transitions [1 ], findState (RUN_FAULT_NAME ), genTranAction );
166148 addTransition (PUMPDOWN_NAME , pumpdown -> transitions [0 ]);
167- addTransition (PUMPDOWN_NAME , pumpdown -> transitions [1 ]);
168- return 0 ;
169- }
149+ addTransition (PUMPDOWN_NAME ,
150+ pumpdown -> fault = pumpdown -> transitions [1 ]);
170151
171- static int initReadyForLaunch (state_t * ready ) {
172152
173- initTransition (ready -> transitions [0 ], findState (PROPULSION_NAME ), toPropulsion );
174- initTransition (ready -> transitions [1 ], findState (PRE_RUN_FAULT_NAME ), genTranAction );
175- addTransition (READY_NAME , ready -> transitions [0 ]);
176- addTransition (READY_NAME , ready -> transitions [1 ]);
177153 return 0 ;
178154}
179155
@@ -182,7 +158,8 @@ static int initPropulsion(state_t *propulsion) {
182158 initTransition (propulsion -> transitions [0 ], findState (BRAKING_NAME ), toBraking );
183159 initTransition (propulsion -> transitions [1 ], findState (RUN_FAULT_NAME ), genTranAction );
184160 addTransition (PROPULSION_NAME , propulsion -> transitions [0 ]);
185- addTransition (PROPULSION_NAME , propulsion -> transitions [1 ]);
161+ addTransition (PROPULSION_NAME ,
162+ propulsion -> fault = propulsion -> transitions [1 ]);
186163
187164 return 0 ;
188165}
@@ -194,19 +171,19 @@ static int initBraking(state_t *braking) {
194171 initTransition (braking -> transitions [2 ], findState (RUN_FAULT_NAME ), genTranAction );
195172 addTransition (BRAKING_NAME , braking -> transitions [0 ]);
196173 addTransition (BRAKING_NAME , braking -> transitions [1 ]);
197- addTransition (BRAKING_NAME , braking -> transitions [2 ]);
174+ addTransition (BRAKING_NAME ,
175+ braking -> fault = braking -> transitions [2 ]);
198176
199177 return 0 ;
200178}
201179
202180static int initCrawl (state_t * crawl ) {
203181
204- initTransition (crawl -> transitions [0 ], findState (STOPPED_NAME ), genTranAction );
205- initTransition (crawl -> transitions [1 ], findState (BRAKING_NAME ), toBraking );
182+ initTransition (crawl -> transitions [1 ], findState (POST_RUN_NAME ), toBraking );
206183 initTransition (crawl -> transitions [2 ], findState (RUN_FAULT_NAME ), genTranAction );
207184 addTransition (CRAWL_NAME , crawl -> transitions [0 ]);
208- addTransition (CRAWL_NAME , crawl -> transitions [ 1 ]);
209- addTransition ( CRAWL_NAME , crawl -> transitions [2 ]);
185+ addTransition (CRAWL_NAME ,
186+ crawl -> fault = crawl -> transitions [1 ]);
210187
211188 return 0 ;
212189}
@@ -215,26 +192,29 @@ static int initStopped(state_t *stopped) {
215192
216193
217194 initTransition (stopped -> transitions [0 ], findState (POST_RUN_NAME ), genTranAction );
218- initTransition (stopped -> transitions [1 ], findState (RUN_FAULT_NAME ), genTranAction );
219- initTransition (stopped -> transitions [2 ], findState (CRAWL_NAME ), toCrawl );
195+ initTransition (stopped -> transitions [1 ], findState (CRAWL_NAME ), toCrawl );
196+ initTransition (stopped -> transitions [2 ], findState (RUN_FAULT_NAME ), genTranAction );
220197 addTransition (STOPPED_NAME , stopped -> transitions [0 ]);
221198 addTransition (STOPPED_NAME , stopped -> transitions [1 ]);
222- addTransition (STOPPED_NAME , stopped -> transitions [2 ]);
199+ addTransition (STOPPED_NAME ,
200+ stopped -> fault = stopped -> transitions [2 ]);
223201
224202 return 0 ;
225203}
226204
227205static int initPostRun (state_t * postRun ) {
228206 initTransition (postRun -> transitions [0 ], findState (SAFE_TO_APPROACH_NAME ), genTranAction );
229- initTransition (postRun -> transitions [1 ], findState (POST_RUN_FAULT_NAME ), genTranAction );
207+ initTransition (postRun -> transitions [1 ], findState (RUN_FAULT_NAME ), genTranAction );
230208 addTransition (POST_RUN_NAME , postRun -> transitions [0 ]);
231- addTransition (POST_RUN_NAME , postRun -> transitions [1 ]);
209+ addTransition (POST_RUN_NAME ,
210+ postRun -> fault = postRun -> transitions [1 ]);
232211 return 0 ;
233212}
234213
235214static int initSafeToApproach (state_t * safeToApproach ) {
236- initTransition (safeToApproach -> transitions [0 ], findState (POST_RUN_FAULT_NAME ), genTranAction );
237- addTransition (SAFE_TO_APPROACH_NAME , safeToApproach -> transitions [0 ]);
215+ initTransition (safeToApproach -> transitions [0 ], findState (NON_RUN_FAULT_NAME ), genTranAction );
216+ addTransition (SAFE_TO_APPROACH_NAME ,
217+ safeToApproach -> fault = safeToApproach -> transitions [0 ]);
238218 return 0 ;
239219}
240220
@@ -312,32 +292,25 @@ void buildStateMachine(void) {
312292 stateMachine .allStates [i ] = malloc (sizeof (state_t ));
313293 }
314294
315- initState (stateMachine .allStates [0 ], POWER_OFF_NAME , powerOnAction , 2 );
316- initState (stateMachine .allStates [1 ], IDLE_NAME , idleAction , 2 );
317- initState (stateMachine .allStates [2 ], READY_FOR_PUMPDOWN_NAME , readyForPumpdownAction , 2 );
318- initState (stateMachine .allStates [3 ], PUMPDOWN_NAME , pumpdownAction , 2 );
319- initState (stateMachine .allStates [4 ], READY_NAME , readyForLaunchAction , 2 );
320- initState (stateMachine .allStates [5 ], PROPULSION_NAME , propulsionAction , 2 );
321- initState (stateMachine .allStates [6 ], BRAKING_NAME , brakingAction , 3 );
322- initState (stateMachine .allStates [7 ], CRAWL_NAME , crawlAction , 3 );
323- initState (stateMachine .allStates [8 ], STOPPED_NAME , stoppedAction , 3 );
324- initState (stateMachine .allStates [9 ], POST_RUN_NAME , postRunAction , 2 );
325- initState (stateMachine .allStates [10 ], SAFE_TO_APPROACH_NAME , safeToApproachAction , 1 );
326- initState (stateMachine .allStates [11 ], PRE_RUN_FAULT_NAME , preFaultAction , 0 );
327- initState (stateMachine .allStates [12 ], RUN_FAULT_NAME , runFaultAction , 0 );
328- initState (stateMachine .allStates [13 ], POST_RUN_FAULT_NAME , postFaultAction , 0 );
295+ initState (stateMachine .allStates [0 ], IDLE_NAME , idleAction , 2 );
296+ initState (stateMachine .allStates [1 ], PUMPDOWN_NAME , pumpdownAction , 2 );
297+ initState (stateMachine .allStates [2 ], PROPULSION_NAME , propulsionAction , 2 );
298+ initState (stateMachine .allStates [3 ], BRAKING_NAME , brakingAction , 3 );
299+ initState (stateMachine .allStates [4 ], CRAWL_NAME , crawlAction , 3 );
300+ initState (stateMachine .allStates [5 ], STOPPED_NAME , stoppedAction , 3 );
301+ initState (stateMachine .allStates [6 ], POST_RUN_NAME , postRunAction , 2 );
302+ initState (stateMachine .allStates [7 ], SAFE_TO_APPROACH_NAME , safeToApproachAction , 1 );
303+ initState (stateMachine .allStates [8 ], NON_RUN_FAULT_NAME , nonRunFaultAction , 0 );
304+ initState (stateMachine .allStates [9 ], RUN_FAULT_NAME , runFaultAction , 0 );
329305
330- initPowerOff (stateMachine .allStates [0 ]);
331- initIdle ( stateMachine .allStates [1 ]);
332- initReadyForPumpdown (stateMachine .allStates [2 ]);
333- initPumpdown (stateMachine .allStates [3 ]);
334- initReadyForLaunch ( stateMachine .allStates [4 ]);
335- initPropulsion (stateMachine .allStates [5 ]);
336- initBraking (stateMachine .allStates [6 ]);
337- initStopped (stateMachine .allStates [7 ]);
338- initCrawl (stateMachine .allStates [8 ]);
339- initPostRun (stateMachine .allStates [9 ]);
340- initSafeToApproach (stateMachine .allStates [10 ]);
306+ initIdle ( stateMachine .allStates [0 ]);
307+ initPumpdown (stateMachine .allStates [1 ]);
308+ initPropulsion (stateMachine .allStates [2 ]);
309+ initBraking (stateMachine .allStates [3 ]);
310+ initStopped (stateMachine .allStates [4 ]);
311+ initCrawl (stateMachine .allStates [5 ]);
312+ initPostRun (stateMachine .allStates [6 ]);
313+ initSafeToApproach (stateMachine .allStates [7 ]);
341314
342315 stateMachine .currState = stateMachine .allStates [0 ];
343316
0 commit comments