Project 2 - Implement the Code for controlling the retraction and extension of Airplane’s landing gear
#include<stdio.h>
#include<math.h>
typedef enum
{
GEAR_DOWN = 0,WTG_FOR_TKOFF,
RAISING_GEAR,GEAR_UP,
LOWERING_GEAR
}State_Type;
//State_Type=curr_state;
void (*State_table[])={GEAR_DOWN = 0, WTG_FOR_TKOFF, RAISING_GEAR,GEAR_UP, LOWERING_GEAR};
State_Type curr_state;
int gear_lever,UP,DOWN,MADE,Prev_ger_lever,timer,squat_switch,nosegear_is_up,leftgear_is_up,rtgear_is_up,Wtg_for_TKOFF;
int main()
{
//int timer;
Initialize();
while (1)
{
State_table[curr_state]();
DecrementTimer();
}
};
void Initialize()
{
int timer;
curr_state = GEAR_DOWN;
timer = 0.0;
}
void GearDown()
{
int prev_gear_lever;
if ((gear_lever == UP) && (prev_gear_lever == DOWN) &&(squat_switch == UP))
{
timer=2.0;
curr_state=Wtg_for_TKOFF;
};
prev_gear_lever=gear_lever;
}
void RaisingGear()
{
int Curr_state;
if ((nosegear_is_up == MADE) && (leftgear_is_up == MADE) &&(rtgear_is_up == MADE))
{///////////////
Curr_state = GEAR_UP;
}
if (gear_lever == DOWN)
{
curr_state=LOWERING_GEAR;
};
}
void GearUp()
{
if (gear_lever == DOWN)
{
curr_state = LOWERING_GEAR;
};
}
void WtgForTakeoff()
{
int prev_gear_lever;
if(timer <=0.0)
{
curr_state = RAISING_GEAR;
};
//}
if((squat_switch == DOWN)||(gear_lever == DOWN))
{
timer=2.0;
curr_state = GEAR_DOWN;
prev_gear_lever = DOWN;
};
}
void LoweringGear()
{
int nosegear_is_down,Leftgear_is_down,rtgear_is_down;
if(gear_lever == UP)
{
curr_state = RAISING_GEAR;
};
if ((nosegear_is_down == MADE) && (Leftgear_is_down == MADE)&& (rtgear_is_down == MADE))
{
curr_state = GEAR_DOWN;
};
}