64 #ifndef FWSM_SCREATE_H_ 65 #define FWSM_SCREATE_H_ 113 #define FW_SM_INST(SM_DESC, NS, NCPS, NTRANS, NA, NG) \ 114 static SmPState_t SM_DESC##_pState[(NS)]; \ 115 static SmCState_t SM_DESC##_cState[(NCPS)]; \ 116 static SmTrans_t SM_DESC##_trans[(NTRANS)]; \ 117 static FwSmAction_t SM_DESC##_actions[(NA) + 1]; \ 118 static FwSmGuard_t SM_DESC##_guards[(NG) + 1]; \ 119 static FwSmDesc_t SM_DESC##_esm[(NS)]; \ 120 static SmBaseDesc_t SM_DESC##_base = {(SM_DESC##_pState), (SM_DESC##_cState), (SM_DESC##_trans), NS, NCPS, NTRANS}; \ 121 static struct FwSmDesc(SM_DESC) = {&(SM_DESC##_base), \ 122 (SM_DESC##_actions), \ 123 (SM_DESC##_guards), \ 176 #define FW_SM_INST_NOCPS(SM_DESC, NS, NTRANS, NA, NG) \ 177 static SmPState_t SM_DESC##_pState[(NS)]; \ 178 static SmTrans_t SM_DESC##_trans[(NTRANS)]; \ 179 static FwSmAction_t SM_DESC##_actions[(NA) + 1]; \ 180 static FwSmGuard_t SM_DESC##_guards[(NG) + 1]; \ 181 static FwSmDesc_t SM_DESC##_esm[(NS)]; \ 182 static SmBaseDesc_t SM_DESC##_base = {(SM_DESC##_pState), NULL, (SM_DESC##_trans), NS, 0, NTRANS}; \ 183 static struct FwSmDesc(SM_DESC) = {&(SM_DESC##_base), \ 184 (SM_DESC##_actions), \ 185 (SM_DESC##_guards), \ 231 #define FW_SM_INST_DER(SM_DESC, NS, NA, NG) \ 232 static FwSmAction_t SM_DESC##_actions[(NA) + 1]; \ 233 static FwSmGuard_t SM_DESC##_guards[(NG) + 1]; \ 234 static FwSmDesc_t SM_DESC##_esm[(NS)]; \ 235 static struct FwSmDesc(SM_DESC) = \ 237 NULL, (SM_DESC##_actions), (SM_DESC##_guards), (SM_DESC##_esm), (NA) + 1, (NG) + 1, 1, 0, 0, 0, smSuccess, \ void FwSmInitDer(FwSmDesc_t smDesc, FwSmDesc_t smDescBase)
Initialize a state machine descriptor to extend another state machine (the base state machine)...
Declaration of the execution interface for a FW State Machine.
Structure representing a state machine descriptor.
void FwSmInit(FwSmDesc_t smDesc)
Initialize a state machine descriptor to represent an unconfigured state machine with no transitions...
Declaration of the internal data structures of the FW State Machine Module.