Project 2 - Implement the Code for controlling the retraction and extension of Airplane’s landing gear
#ifndef FSM_H_
#define FSM_H_
#include<stdio.h>
void Initiate_State_Machine();
void GearDown();
void CheckingBeforeTakeOFF();
void RaisingGear();
void GearUP();
void CheckBeforeLanding();
void LoweringGear();
typedef enum State
{
GEAR_DOWN,
CHECKING_BEFORE_TAKEOFF,
RAISING_GEAR,
GEAR_UP,
CHECK_BEFORE_LANDING,
LOWERING_GEAR,
}
State_Type;
typedef enum switch
{
On
Off//Plan is on Grnd
}
Swiitch_status;
typedef enum pilot_lever
{
Raising,
falling
}
pilot_lever;
typedef enum hydraulic_mechanism
{
working,
not working
}
hydraulic_mechanism;
static volatile Switch_Status squat_switch;
static volatile Switch_Status limit_switch;
static volatile Pilot_lever pilot_lever;
static volatile Hydraulic_mechanism hydraulic_mechanism;
State_Type current_state;
typedef struct
{
char* current_state_indication;
char* light;
char* direction_valve_status;
char* Gas_Pressurized_Spring_system_status[2];
char* landing_gear_hydraulic_control;
}
State_Table;
sstatic State_Table;
State_Machine[6]=
{
{"GearDown", "Green", "Down", "Enabled",{NULL, NULL}},
{"CheckingBeforeTakeOFF", "Green", "Down", "Enabled", {NULL, NULL}},
{"RaisingGear", "Red", "Up", "Enabled", {"Disabled", "Enabled"}},
{"GearUp", "Off", "Null", "Disabled", {NULL,NULL}},
{"CheckingBeforeLanding", "Red", "Down", "Enabled", {NULL, NULL}},
{"LoweringGear", "Green", "Down", "Enabled", {"Disabled", "Enabled"}}
};