2024-01-30 15:50:34 +08:00
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#include "childFSM.h"
|
|
|
|
#include "parentFSM.h"
|
|
|
|
#include "FSM_public.h"
|
|
|
|
|
|
|
|
ChildFSM *cFSM;
|
|
|
|
ParentFSM *pFSM;
|
|
|
|
|
2024-06-26 20:21:14 +08:00
|
|
|
enum ParentFSMSignals i[20] = {0, Signal_toA, Signal_toB,0,0,0,0,0, Signal_toC, Signal_toA, Signal_toB, Signal_toA};
|
|
|
|
enum ChildFSMSignals j[20] = {0,0,Signal_toD,0,0,Signal_toE, Signal_toD, Signal_toE,0,0,0,0};
|
|
|
|
|
2024-01-30 15:50:34 +08:00
|
|
|
int main(){
|
|
|
|
|
|
|
|
cFSM = createChildFSM();
|
|
|
|
pFSM = createParentFSM();
|
|
|
|
|
2024-06-26 20:21:14 +08:00
|
|
|
registerChildFSM(pFSM, cFSM, 2);
|
2024-06-28 19:13:27 +08:00
|
|
|
((ParentFSMData *)GetData(cFSM))->external.x = 1;
|
2024-01-30 15:50:34 +08:00
|
|
|
|
2024-06-26 20:21:14 +08:00
|
|
|
for (int k = 0; k < 15; k++)
|
2024-01-30 15:50:34 +08:00
|
|
|
{
|
2024-06-26 20:21:14 +08:00
|
|
|
printf("第%d次: ",k+1);
|
|
|
|
SetSignal(pFSM, i[k]);
|
|
|
|
SetSignal(cFSM, j[k]);
|
2024-01-30 23:00:38 +08:00
|
|
|
|
2024-06-28 19:13:27 +08:00
|
|
|
if(k > 5){
|
|
|
|
((ParentFSMData *)GetData(cFSM))->external.x = 0;
|
|
|
|
}
|
|
|
|
|
2024-06-26 20:21:14 +08:00
|
|
|
Step(pFSM);
|
2024-01-30 15:50:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
printf("\n");
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|