Challenge

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

#include

#include

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.