Challenge

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

*******************************************************************************/
#include <stdio.h>
#include<string.h>
typedef enum
{

gear_down,
checking_before_takeoff_delay_3_sec,
raising_gear,
gear_up,
checking_before_landing,
lowering_gear
}landing_gear_states;
typedef enum
{

lever_up,
lever_down,
lever_rising_edge,
lever_falling_edge
}pilot_lever_states;
typedef struct
{

char current_gear_state[50];
char possible_inputs[100];
char landing_gear_states[4][35];
char limit_switch[4][35];
char squat_switch[4][35];
char landing_gear_lights[4][35];
char direction_valve[4][35];
int delay[4];
landing_gear_states gear_state[4];

}status;
status gear_states[6]={ {{"gear_down"},{"lever_raising_edge"},{"0","0","GEARS RAISING UP"},{"0","0","OPENED"},{"0","0","OPENED"},{"0","0","GREEN"},{"0","0","UP"},{0,0,3},{0,0,checking_before_takeoff_delay_3_sec}},
{{"checking_before_takeoff_delay_3_sec"},{"lever_rising_edge or lever_falling_edge"},{"0","0","GEAR ARE GOING UP","GEARS ARE GOING DOWN"},{"0","0","OPENED","CLOSED"},{"0","0","OPENED","CLOSED"},{"0","0","RED","RED"},{"0","0","UP","DOWN"},{0,0,0,0},{0,1,raising_gear,gear_down}},
{{"raising_gear"},{"lever_falling_edge or lever_up"},{"GEARS ARE UP","0","0","GEARS ARE GOING DOWN"},{"CLOSED","0","0","OPENED"},{"CLOSED","0","0","OPENED"},{"OFF","0","0","RED"},{"DISABLED","0","0","DOWN"},{0,0,0,0},{gear_up,1,2,checking_before_landing}},
{{"gear_up"},{"lever_falling_edge"},{"0","0","0","GEARS ARE GOING DOWN"},{"0","0","0","CLOSED"},{"0","0","0","OPENED"},{"0","0","0","RED"},{"0","0","0","DOWN"},{0,0,0,0},{0,0,0,checking_before_landing}},
{{"checking_before_landing"},{"lever_down"},{"0","GEARS ARE GOING DOWN"},{"0","OPENED"},{"0","OPENED"},{"0","GREEN"},{"0","DOWN"},{0,0},{0,lowering_gear}},
{{"lowering_gear"},{"lever_down or lever_rising_edge"},{"0","GEAR ARE DOWN","GEARS GOING UP"},{"0","OPENED","OPENED"},{"0","CLOSED","OPENED"},{"0","GREEN","RED"},{"0","DOWN","UP"},{0,0,0},{0,gear_down,checking_before_takeoff_delay_3_sec}}};
landing_gear_states state;
int lever_states;
int main()
{
printf("enter 0 for lever_up\nenter 1 for lever_down\nenter 2 for lever_rising_edge\nenter 3 for lever_falling_edge\n");
state = gear_down; // Initializing state to gear-down state
for(int i=0;i<10;i++)
{
printf("current gear state:%s\n",gear_states[state].current_gear_state);
printf("possible inputs for current gear state is:%s\n",gear_states[state].possible_inputs);
printf("enter lever state:");
scanf("%d",&lever_states);
printf("LANDING %s\n",gear_states[state].landing_gear_states[lever_states]);
printf("status of direction valve is:%s\n",gear_states[state].direction_valve[lever_states]);
printf("limit switch status:%s\n",gear_states[state].limit_switch[lever_states]);
printf("squat switch status:%s\n",gear_states[state].squat_switch[lever_states]);
printf("landintg gear lights are:%s\n",gear_states[state].landing_gear_lights[lever_states]);
printf("delay is:%d\n",gear_states[state].delay[lever_states]);
state=gear_states[state].gear_state[lever_states];
}
return 0;
}

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.