Project 2 - Implement the Code for controlling the retraction and extension of Airplane’s landing gear
#include
#include
#include
// Enumeration for gear states
enum GearState {
GEAR_UP,
GEAR_DOWN,
GEAR_EMERGENCY,
};
// Enumeration for gear lights
enum GearLightColor {
LIGHT_RED,
LIGHT_GREEN,
};
// Structure representing a landing gear
struct LandingGear {
enum GearState state;
enum GearLightColor light_color;
};
// Function to control landing gear extension
void extendGear(struct LandingGear *gear) {
gear->state = GEAR_DOWN;
gear->light_color = LIGHT_GREEN;
printf("Landing gear extended\n");
}
// Function to control landing gear retraction
void retractGear(struct LandingGear *gear) {
gear->state = GEAR_UP;
gear->light_color = LIGHT_RED;
printf("Landing gear retracted\n");
}
// Function to handle take-off procedure
void takeOff(struct LandingGear *nose_gear) {
// Check squat switch for 4 seconds
sleep(4);
if (nose_gear->state == GEAR_UP) {
printf("Take-off successful.\n");
} else {
printf("Take-off aborted due to landing gear issue.\n");
}
}
int main() {
struct LandingGear nose_gear = {GEAR_DOWN, LIGHT_RED};
struct LandingGear left_gear = {GEAR_UP, LIGHT_GREEN};
struct LandingGear right_gear = {GEAR_UP, LIGHT_GREEN};
// Simulate take-off procedure
takeOff(&nose_gear);
// Simulate hydraulic pressure adjustments
printf("Adjusting hydraulic pressure on nose gear...\n");
// Adjust hydraulic pressure by modifying the gear structure
// Simulate gear extension/retraction
retractGear(&nose_gear);
extendGear(&left_gear);
extendGear(&right_gear);
return 0;
}