Challenge

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

#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;

typedef enum

{

Checking_before_takeoff_delay_3s_Event,

Raising_gear_Event,

Gear_up_Event,

checking_before_landing_Event,

Lowering_gear_Event,

}eSystemEvent;

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.