Challenge

Project 2 - Implement the Code for controlling the retraction and extension of Airplane’s landing gear

/*controlling the retraction and extension of Airplane’s landing gear can be implemented using Finite State Machine (FSM)*/
#include<stdio.h>
#include<conio.h>
typedef enum
{
Gear_Down_State,
Checking_before_Take_off_Delay_3s_State,
Raising_Gear_State,
Gear_Up_State,
Checking_before_landing_State,
Lowering_Gear_State,
} eSystemState;
//Different type events
typedef enum
{
Checking_before_takeoff_delay_3s_Event,
Raising_gear_Event,
Gear_up_Event,
checking_before_landing_Event,
Lowering_gear_Event
} eSystemEvent;
//Prototype of eventhandlers
eSystemState LoweringgearEventHandler(void)
{
return Gear_Down_State;
}
eSystemState CheckingbeforelandingHandler(void)
{
return Lowering_Gear_State;
}
eSystemState GearupHandler(void)
{
return Gear_Up_State;
}
eSystemState RaisinggearHandler(void)
{
return Raising_Gear_State;
}
eSystemState CheckingbeforeTakeoffDelay3sHandler(void)
{
return Gear_Down_State;
}
int main(int argc, char *argv[])
{
eSystemState eNextState =Gear_Down_State ;
eSystemEvent eNewEvent;
while(1)
{
switch(eNextState)
{
case Gear_Down_State:
{
if(Checking_before_takeoff_delay_3s_Event== eNewEvent)
{
eNextState = LoweringgearEventHandler();
}
}
break;
case Checking_before_Take_off_Delay_3s_State:
{
if(Raising_gear_Event == eNewEvent)
{
eNextState = RaisinggearHandler();
}
}
break;
case Raising_Gear_State :
{
if(Gear_up_Event== eNewEvent)
{
eNextState = GearupHandler();
}
}
break;
case Gear_Up_State:
{
if(checking_before_landing_Event == eNewEvent)
{
eNextState = CheckingbeforelandingHandler();
}
}
break;
case Lowering_Gear_State :
{
if(Lowering_gear_Event == eNewEvent)
{
eNextState = LoweringgearEventHandler();
}
}
break;
default:
break;
}
}
}
Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.