Challenge

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

#include<stdio.h>

typedef enum states

{

init_state,

checking_before_takeoff,

raising_gear,

gear_up,

checking_before_landing,

lowering_gear,

gear_down

}state_type;

static volatile int gear=0;

static volatile int out=0;

state_type current_state;

state_type next_state;

void Init_state_handler()

{

current_state=init_state;

gear=0;

out=0;

printf("initial state is:%d\n",out);

//next_state=checking_before_takeoff;

}

void Checking_before_takeoff()

{

current_state=checking_before_takeoff;

out++;

printf("gear is in checking before takeoff state & ");

printf(" value of out is:%d\n",out);

gear++;

printf("gear value is:%d\n",gear);

if(gear==2)

{current_state=raising_gear;}

}

void Raising_gear()

{

current_state=raising_gear;

out++;

printf("Gear is in raising state ");

printf("value of out is:%d\n",out);

gear++;

printf("gear value is:%d\n",gear);

if(gear==3)

{current_state=gear_up;}

}

void Gear_up()

{

current_state=gear_up;

out++;

printf("Gear is in gear up state ");

printf("value of out is:%d\n",out);

gear++;

printf("gear value is:%d\n",gear);

if(gear==4)

{current_state=checking_before_landing;}

}

void Checking_before_landing()

{

current_state=checking_before_landing;

out++;

printf("gear is in checking before landing state ");

printf("value of out is:%d\n",out);

gear++;

printf("gear value is:%d\n",gear);

if(gear==5)

{current_state=lowering_gear;}

}

void Lowering_gear()

{

current_state=lowering_gear;

out++;

printf("gear is in lowering gear state ");

printf("value of out is:%d\n",out);

gear++;

printf("gear value is:%d\n",gear);

if(gear==6)

{next_state=gear_down;}

}

void Gear_down()

{

current_state=gear_down;

out++;

printf("gear is in gear down state ");

printf(" value of out is:%d\n",out);

gear++;

printf("gear value is:%d\n",gear);

if(gear==0)

{current_state=init_state;}

}

static void(*state_table[])(void)={Checking_before_takeoff,Raising_gear,Gear_up,Checking_before_landing,Lowering_gear,Gear_down};

int main()

{

Init_state_handler();

while(1)

{

//state_table[current_state]();

state_table[current_state]();

//break;

}

}

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.