Challenge

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

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

Void Init_State_Machine();

  1. void Gear_Down();
  2. void Checking_Before_Takeoff();
  3. void Raising_Gear();
  4. void Gear_Up();
  5. void Checking_Before_Landing();
  6. void Lowering_Gear();

ENUM

State_Type

Switch States

Hydraulic_Mechanism_status

SQUAT AND LIMIT SWITCH

Pilot _Lever Status

State_Type

Open,….0

Rising,…0

Malfunctioning,..1

GR_DWN,..0

Close,..1

Falling,..1

Working..0

CHK_BFR_TKFF,1

Up,..2

RSING_GR,2

DOWN…3

GR_UP,3

CHK_BFR_LND,4

LWRNG_GR..5

#include "States.h"

#include<stdio.h>

void Checking_Before_Landing()

{

current_state = CHK_BFR_LND;

//printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("\nEnter the Pilot's Lever Position and Status of Hydraulic Mechanism:");

fflush(stdout);

scanf("%d %d",&pilot_lever,&hydraulic_mechanism);

if(pilot_lever == DOWN && hydraulic_mechanism == Working)

{

current_state = LWRNG_GR;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Direction Valve Status:%s\n",State_Machine[current_state].direction_valve_status);

}

else if(pilot_lever == DOWN && hydraulic_mechanism == Malfunctioning)

{

current_state = LWRNG_GR;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Direction Valve Status:%s\n",State_Machine[current_state].direction_valve_status);

printf("Gas Pressurized Spring System Status:%s\n",State_Machine[current_state].gas_pressurized_spring_status[hydraulic_mechanism]);

}

if(pilot_lever == (UP || Rising || Falling))

{

Checking_Before_Landing();

}

}

1) GEAR DOWN

#include<stdio.h>

#include "States.h"

void Gear_Down(void)

{

current_state = GR_DWN;

//printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("\nEnter the Pilot's Lever Position and Squat Switch Status:");

fflush(stdout);

scanf("%d %d",&pilot_lever,&squat_switch);

if(pilot_lever == Rising && squat_switch == Open)

{

current_state = CHK_BFR_TKFF;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

}

else

{

Gear_Down();

}

}

2)Checking_Before_Takeoff

#include<stdio.h>

#include "States.h"

void Checking_Before_Takeoff()

{

current_state = CHK_BFR_TKFF;

//printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("\nEnter the Pilot's Lever Position,Squat Switch Status and Hydraulic Mechanism Status:");

fflush(stdout);

scanf("%d %d %d",&pilot_lever,&squat_switch,&hydraulic_mechanism);

printf("\nWait for 2 secs\n");

if(pilot_lever == Falling || squat_switch == Close)

{

Gear_Down();

}

else if(pilot_lever == UP && squat_switch == Open && hydraulic_mechanism == Working)

{

current_state = RSING_GR;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Direction Valve Status:%s\n\n",State_Machine[current_state].direction_valve_status);

}

else if(pilot_lever == UP && squat_switch == Open && hydraulic_mechanism == Malfunctioning)

{

current_state = RSING_GR;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Direction Valve Status:%s\n",State_Machine[current_state].direction_valve_status);

printf("Gas Pressurized Spring System Status:%s\n",State_Machine[current_state].gas_pressurized_spring_status[hydraulic_mechanism]);

}

}

3) Raising _Gear

#include<stdio.h>

#include "States.h"

void Raising_Gear()

{

current_state = RSING_GR;

//printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("\nEnter the Limit Switch Status,Pilots Leaver Status:");

fflush(stdout);

scanf("%d %d",&limit_switch,&pilot_lever);

printf("\nWait for 1 sec\n");

if(pilot_lever == Falling && limit_switch == Open)

{

current_state = CHK_BFR_LND;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Hydraulic Control for Landing Gear Status:%s\n",State_Machine[current_state].hydraulic_pump_control_status);

}

else if(limit_switch == Close && pilot_lever == UP)

{

current_state = GR_UP;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Hydraulic Control for Landing Gear Status:%s\n",State_Machine[current_state].hydraulic_pump_control_status);

}

else

{

Raising_Gear();

}

}

4) Gear UP

#include<stdio.h>

#include "States.h"

void Gear_Up()

{

current_state = GR_UP;

//printf("Current State : %s\n",State_Machine[current_state].current_state_indication);

printf("\nEnter the Pilot's Lever Position:");

fflush(stdout);

scanf("%d",&pilot_lever);

if(pilot_lever == Falling)

{

current_state = CHK_BFR_LND;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Hydraulic Control for Landing Gear Status:%s\n",State_Machine[current_state].hydraulic_pump_control_status);

}

else

{

Gear_Up();

}

}

5) Checking Before Landing :

#include "States.h"

#include<stdio.h>

void Checking_Before_Landing()

{

current_state = CHK_BFR_LND;

//printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("\nEnter the Pilot's Lever Position and Status of Hydraulic Mechanism:");

fflush(stdout);

scanf("%d %d",&pilot_lever,&hydraulic_mechanism);

if(pilot_lever == DOWN && hydraulic_mechanism == Working)

{

current_state = LWRNG_GR;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Direction Valve Status:%s\n",State_Machine[current_state].direction_valve_status);

}

else if(pilot_lever == DOWN && hydraulic_mechanism == Malfunctioning)

{

current_state = LWRNG_GR;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Direction Valve Status:%s\n",State_Machine[current_state].direction_valve_status);

printf("Gas Pressurized Spring System Status:%s\n",State_Machine[current_state].gas_pressurized_spring_status[hydraulic_mechanism]);

}

if(pilot_lever == (UP || Rising || Falling))

{

Checking_Before_Landing();

}

}

6) Lowering Gear

#include<stdio.h>

#include "States.h"

void Lowering_Gear()

{

current_state = LWRNG_GR;

//printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("\nEnter the Limit Switch Status,Pilots Leaver Status::");

fflush(stdout);

scanf("%d %d",&limit_switch,&pilot_lever);

if( limit_switch == Close && pilot_lever == Rising )

{

current_state = CHK_BFR_TKFF;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

}

if(limit_switch == Open && pilot_lever == DOWN)

{

current_state = GR_DWN;

printf("\nCurrent State : %s\n",State_Machine[current_state].current_state_indication);

printf("Light Status:%s\n",State_Machine[current_state].light_status);

printf("Hydraulic Control for Landing Gear Status:%s\n",State_Machine[current_state].hydraulic_pump_control_status);

}

else

{

Lowering_Gear();

}

}

Init_ State Machine

#include<stdio.h>

#include "States.h"

void Init_State_Machine()

{

//System Initialized and its in State_A

current_state = GR_DWN;

printf("\nState Machine is initialized & Program is in Gear_Down State & Light Status : %s\n"

,State_Machine[current_state].light_status);

}

RUN AS:

State Machine is initialized & Program is in Gear_Down State & Light Status : Green

Enter the Pilot's Lever Position and Squat Switch Status:0 0

Current State : Checking Before Take Off

Light Status:Green

Enter the Pilot's Lever Position,Squat Switch Status and Hydraulic Mechanism Status:1

2

3

Wait for 2 secs

Enter the Pilot's Lever Position and Squat Switch Status:4

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.