Project 2 - Implement the Code for controlling the retraction and extension of Airplane’s landing gear
#include<stdio.h>
typedef enum
{
geardownstate,
takeoffdelaystate,
gearupstate,
raisinggearstate,
landingstate,
lowergearstate,
} systemstate;
typedef enum
{
takeoffdelayevent,
raisinggearevent,
gearupevent,
landingevent,
lowergearevent,
}systemevent;
systemstate lowergeareventhandler(void)
{
return geardownstate;
}
systemstate landinghandler(void)
{
return lowergearstate;
}
systemstate gearuphandler(void)
{
return gearupstate;
}
systemstate raisinggearhandler(void)
{
return raisinggearstate;
}
systemstate checkingbeforetakeoffdelayhandler(void)
{
return geardownstate;
}
int main(int argc , char*argv[])
{
systemstate nextstate = geardownstate;
systemevent newevent;
while(1)
{
switch(nextstate)
{
case geardownstate:
{
if(takeoffdelayevent == newevent)
{
nextstate = lowergeareventhandler();
}
}
break;
case takeoffdelaystate:
{
if(raisinggearevent == newevent)
{
nextstate = raisinggearhandler();
}
}
break;
case raisinggearstate:
{
if( gearupevent ==newevent)
{
nextstate = gearuphandler();
}
}
break;
case gearupstate:
{
if(landingevent == newevent)
{
nextstate = landinghandler();
}
}
break;
case lowergearstate:
{
if(lowergearevent == newevent)
{
nextstate = lowergeareventhandler();
}
}
break;
default:
break;
}
}
}