Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define WAITING_FOR_CAR_TIME 20 // 2 sekundy
- #define MAX_GREEN_TIME 30 // 30 sekund
- enum TRYBY
- {
- Adaptacyjny,
- Manualny,
- Nocny
- };
- enum AKCJA
- {
- P,
- Z1_Z5, Z2_Z6, Z3_Z7, Z4_Z8,
- Z1_Z2, Z3_Z4, Z5_Z6, Z7_Z8,
- P_Z1, P_Z2, P_Z3, P_Z4, P_Z5, P_Z6, P_Z7, P_Z8
- };
- enum STANY
- {
- L_1, L_2, L_3, L_4,
- T_1, T_2, T_3,
- N_1,
- N_21, N_22, N_23, N_24, N_25, N_26,
- N_31, N_32, N_33, N_34, N_35, N_36,
- M_1, M_2, M_3, M_4,
- M_1_WY_wait, M_1_G_wait, M_1_D_wait,
- M_2_WY_wait, M_2_G_wait, M_2_D_wait,
- M_3_WY_wait, M_3_G_wait, M_3_D_wait,
- M_4_WY_wait, M_4_G_wait, M_4_D_wait,
- M_11, M_12, M_13,
- M_11_WY_wait, M_11_WS_wait, M_11_G_wait, M_11_D_wait,
- M_12_WY_wait, M_12_WS_wait, M_12_G_wait, M_12_D_wait,
- M_13_WY_wait, M_13_WS_wait, M_13_G_wait, M_13_D_wait,
- M_21, M_31, M_41,
- M_21_WY_wait, M_21_WS_wait, M_21_G_wait, M_21_D_wait, M_21_L_wait, M_21_P_wait,
- M_31_WY_wait, M_31_WS_wait, M_31_G_wait, M_31_D_wait, M_31_L_wait, M_31_P_wait,
- M_41_WY_wait, M_41_WS_wait, M_41_G_wait, M_41_D_wait, M_41_L_wait, M_41_P_wait,
- Z_1, Z_2
- };
- AKCJA aktualny_stan_swiatel;
- TRYBY aktualny_tryb, nowy_tryb;
- STANY
- stan_licznik_11, stan_licznik_12,
- stan_licznik_21, stan_licznik_22,
- stan_licznik_31, stan_licznik_32,
- stan_licznik_41, stan_licznik_42,
- stan_licznik_51, stan_licznik_52,
- stan_licznik_61, stan_licznik_62,
- stan_licznik_71, stan_licznik_72,
- stan_licznik_81, stan_licznik_82,
- stan_t1, stan_t2, stan_t3, stan_t4, stan_t5, stan_t6, stan_t7, stan_t8,
- stan_Menu;
- int
- licznik_Z1, licznik_Z2, licznik_Z3,licznik_Z4,licznik_Z5, licznik_Z6, licznik_Z7, licznik_Z8, //zliczanie samochodów, które przejechały
- licznik_1, licznik_2, licznik_3,licznik_4,licznik_5, licznik_6, licznik_7, licznik_8, //sprawdznaie czy samocody opóściły skrzyżowanie
- f_t1, f_t2, f_t3, f_t4, f_t5, f_t6, f_t7, f_t8,
- tim_t1, tim_t2, tim_t3, tim_t4, tim_t5, tim_t6, tim_t7, tim_t8,
- czy_odjechal,
- stan_swiatel, // maska bitowa dla sygnalizatorów
- kolejnosc[8] = {1,2,3,4,5,6,7,8},
- kolejnosc_temp[8] = {1,2,3,4,5,6,7,8},
- czasy_manualny[8] = {10,10,10,10,10,10,10,10},
- czasy_adaptacyjny[8] = {10,10,10,10,10,10,10},
- czasy_manualny_temp[8] = {10,10,10,10,10,10,10,10},
- wspolczynniki_adaptacyjny[8] = {5,5,5,5,5,5,5,5},
- wspolczynniki_adaptacyjny_temp[8] = {5,5,5,5,5,5,5,5},
- indeks_aktualnie_edytowanej_sekwencji;
- ;
- char K_LEWO, K_PRAWO, K_GORA, K_DOL, K_WSTECZ, K_WYBIERZ;
- char
- czy_zmienic_stan_swiatel,
- czy_zmienic_tryb,
- czy_trwa_zminianie_trybu,
- czy_zaktualizowac_wyswietlacz,
- czy_wyswietlac_kursor;
- void ustaw_wejscia()
- {
- K_LEWO = aK8;
- K_PRAWO = aK7;
- K_DOL = aK6;
- K_GORA = aK5;
- K_WSTECZ = aK2;
- K_WYBIERZ = aK1;
- }
- void ustaw_wyjscia()
- {
- L8 = K_LEWO;
- L7 = K_PRAWO;
- L6 = K_DOL;
- L5 = K_GORA;
- L3 = czy_trwa_zminianie_trybu; //TODO: Czy na pewno tak?
- L2 = K_WSTECZ;
- L1 = K_WYBIERZ;
- }
- void zliczaj_i_sprwdzaj_czy_odjechal()
- {
- // Dla Z1
- switch(stan_licznik_11)
- {
- case L_1: if(X1&&Z1) stan_licznik_11 = L_2; break;
- case L_2: if(!X1) {stan_licznik_11 = L_1; ++licznik_1; ++licznik_Z1;} break;
- }
- switch(stan_licznik_12)
- {
- case L_3: if(X11) {stan_licznik_12 = L_4; --licznik_1;} break;
- case L_4: if(!X11) stan_licznik_12 = L_3; break;
- }
- // Dla Z2
- switch(stan_licznik_21)
- {
- case L_1: if(X2&&Z2) stan_licznik_21 = L_2; break;
- case L_2: if(!X2) {stan_licznik_21 = L_1; ++licznik_2; ++licznik_Z2;} break;
- }
- switch(stan_licznik_22)
- {
- case L_3: if(X10) {stan_licznik_22 = L_4; --licznik_2;} break;
- case L_4: if(!X10) stan_licznik_22 = L_3; break;
- }
- // Dla Z3
- switch(stan_licznik_31)
- {
- case L_1: if(X3&&Z3) stan_licznik_31 = L_2; break;
- case L_2: if(!X3) {stan_licznik_31 = L_1; ++licznik_3; ++licznik_Z3;} break;
- }
- switch(stan_licznik_32)
- {
- case L_3: if(X12) {stan_licznik_32 = L_4; --licznik_3;} break;
- case L_4: if(!X12) stan_licznik_32 = L_3; break;
- }
- // Dla Z4
- switch(stan_licznik_41)
- {
- case L_1: if(X4&&Z4) stan_licznik_41 = L_2; break;
- case L_2: if(!X4) {stan_licznik_41 = L_1; ++licznik_4; ++licznik_Z4;} break;
- }
- switch(stan_licznik_42)
- {
- case L_3: if(X11) {stan_licznik_42 = L_4; --licznik_4;} break;
- case L_4: if(!X11) stan_licznik_42 = L_3; break;
- }
- // Dla Z5
- switch(stan_licznik_51)
- {
- case L_1: if(X5&&Z5) stan_licznik_51 = L_2; break;
- case L_2: if(!X5) {stan_licznik_51 = L_1; ++licznik_5; ++licznik_Z5;} break;
- }
- switch(stan_licznik_52)
- {
- case L_3: if(X9) {stan_licznik_52 = L_4; --licznik_5;} break;
- case L_4: if(!X9) stan_licznik_52 = L_3; break;
- }
- // Dla Z6
- switch(stan_licznik_61)
- {
- case L_1: if(X6&&Z6) stan_licznik_61 = L_2; break;
- case L_2: if(!X6) {stan_licznik_61 = L_1; ++licznik_6; ++licznik_Z6;} break;
- }
- switch(stan_licznik_62)
- {
- case L_3: if(X12) {stan_licznik_62 = L_4; --licznik_6;} break;
- case L_4: if(!X12) stan_licznik_62 = L_3;
- }
- // Dla Z7
- switch(stan_licznik_71)
- {
- case L_1: if(X7&&Z7) stan_licznik_71 = L_2; break;
- case L_2: if(!X7) {stan_licznik_71 = L_1; ++licznik_7; ++licznik_Z7;}
- }
- switch(stan_licznik_72)
- {
- case L_3: if(X10) {stan_licznik_72 = L_4; --licznik_7;} break;
- case L_4: if(!X10) stan_licznik_72 = L_3; break;
- }
- // Dla Z8
- switch(stan_licznik_81)
- {
- case L_1: if(X8&&Z8) stan_licznik_81 = L_2; break;
- case L_2: if(!X8) {stan_licznik_81 = L_1; ++licznik_8; ++licznik_Z8;} break;
- }
- switch(stan_licznik_82)
- {
- case L_3: if(X9) {stan_licznik_82 = L_4; --licznik_8;} break;
- case L_4: if(!X9) stan_licznik_82 = L_3; break;
- }
- }
- void sprawdzaj_zajetosc_pasa()
- {
- //Dla Z1
- if(stan_swiatel & 128)
- {
- switch(stan_t1)
- {
- case T_1: if(!X1) {stan_t1 = T_2; f_t1=0; tim_t1=0;} break;
- case T_2: if(X1) stan_t1 = T_1;
- else if(tim_t1 > WAITING_FOR_CAR_TIME) stan_t1 = T_3; break;
- case T_3: break;
- }
- ++tim_t1;
- }
- //Dla Z2
- if(stan_swiatel & 64)
- {
- switch(stan_t2)
- {
- case T_1: if(!X1) {stan_t2 = T_2; f_t2=0; tim_t2=0;} break;
- case T_2: if(X1) stan_t2 = T_1;
- else if(tim_t2 > WAITING_FOR_CAR_TIME) stan_t2 = T_3; break;
- case T_3: break;
- }
- ++tim_t2;
- }
- //Dla Z3
- if(stan_swiatel & 32)
- {
- switch(stan_t3)
- {
- case T_1: if(!X1) {stan_t3 = T_2; f_t3=0; tim_t3=0;} break;
- case T_2: if(X1) stan_t3 = T_1;
- else if(tim_t3 > WAITING_FOR_CAR_TIME) stan_t3 = T_3; break;
- case T_3: break;
- }
- ++tim_t3;
- }
- //Dla Z4
- if(stan_swiatel & 16)
- {
- switch(stan_t4)
- {
- case T_1: if(!X1) {stan_t4 = T_2; f_t4=0; tim_t4=0;} break;
- case T_2: if(X1) stan_t4 = T_1;
- else if(tim_t4 > WAITING_FOR_CAR_TIME) stan_t4 = T_3; break;
- case T_3: break;
- }
- ++tim_t4;
- }
- //Dla Z5
- if(stan_swiatel & 8)
- {
- switch(stan_t5)
- {
- case T_1: if(!X1) {stan_t5 = T_2; f_t5=0; tim_t5=0;} break;
- case T_2: if(X1) stan_t5 = T_1;
- else if(tim_t5 > WAITING_FOR_CAR_TIME) stan_t5 = T_3; break;
- case T_3: break;
- }
- ++tim_t5;
- }
- //Dla Z6
- if(stan_swiatel & 4)
- {
- switch(stan_t6)
- {
- case T_1: if(!X1) {stan_t6 = T_2; f_t6=0; tim_t6=0;} break;
- case T_2: if(X1) stan_t6 = T_1;
- else if(tim_t6 > WAITING_FOR_CAR_TIME) stan_t6 = T_3; break;
- case T_3: break;
- }
- ++tim_t6;
- }
- //Dla Z7
- if(stan_swiatel & 2)
- {
- switch(stan_t7)
- {
- case T_1: if(!X1) {stan_t7 = T_2; f_t7=0; tim_t7=0;} break;
- case T_2: if(X1) stan_t7 = T_1;
- else if(tim_t7 > WAITING_FOR_CAR_TIME) stan_t7 = T_3; break;
- case T_3: break;
- }
- ++tim_t7;
- }
- //Dla Z8
- if(stan_swiatel & 1)
- {
- switch(stan_t8)
- {
- case T_1: if(!X1) {stan_t8 = T_2; f_t8=0; tim_t8=0;} break;
- case T_2: if(X1) stan_t8 = T_1;
- else if(tim_t8 > WAITING_FOR_CAR_TIME) stan_t8 = T_3; break;
- case T_3: break;
- }
- ++tim_t8;
- }
- }
- void stan_swiatel_ustaw_zmienna()
- {
- stan_swiatel = 0;
- if(aktualny_stan_swiatel != P)
- {
- if(aktualny_stan_swiatel < Z1_Z5)
- {
- switch(aktualny_stan_swiatel)
- {
- case P_Z1: stan_swiatel += 128; break;
- case P_Z2: stan_swiatel += 64; break;
- case P_Z3: stan_swiatel += 32; break;
- case P_Z4: stan_swiatel += 16; break;
- case P_Z5: stan_swiatel += 8; break;
- case P_Z6: stan_swiatel += 4; break;
- case P_Z7: stan_swiatel += 2; break;
- case P_Z8: stan_swiatel += 1; break;
- }
- }
- else
- {
- switch(aktualny_stan_swiatel)
- {
- case Z1_Z5: stan_swiatel += 128 + 8; break;
- case Z2_Z6: stan_swiatel += 64 + 4; break;
- case Z3_Z7: stan_swiatel += 32 + 2; break;
- case Z4_Z8: stan_swiatel += 16 + 1; break;
- case Z1_Z2: stan_swiatel += 128 + 64; break;
- case Z3_Z4: stan_swiatel += 32 + 16; break;
- case Z5_Z6: stan_swiatel += 8 + 4; break;
- case Z7_Z8: stan_swiatel += 2 + 1; break;
- }
- }
- }
- }
- void ustaw_swiatla()
- {
- Z1 = (stan_swiatel & 128) ? 1 : 0;
- Z2 = (stan_swiatel & 64) ? 1 : 0;
- Z3 = (stan_swiatel & 32) ? 1 : 0;
- Z4 = (stan_swiatel & 16) ? 1 : 0;
- Z5 = (stan_swiatel & 8) ? 1 : 0;
- Z6 = (stan_swiatel & 4) ? 1 : 0;
- Z7 = (stan_swiatel & 2) ? 1 : 0;
- Z8 = (stan_swiatel & 1) ? 1 : 0;
- }
- void ustaw_stan_swiatel()
- {
- //TODO: Tu algorytm wyboru kolejnego stanu na podstawie tablic.
- }
- void zmien_tryb()
- {
- //TODO: Tu kod zmieniający tryb i ustawiający wartości początkowe zmiennych dla dango trybu.
- }
- void ustaw_wyswietlacz()
- {
- switch(stan_Menu)
- {
- case M_1:
- {
- sprintf(buf,"Wybor trybu <-");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"Edycja czasow ");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_2:
- {
- sprintf(buf,"Edycja czasow <-");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"Edycja kolejki ");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_3:
- {
- sprintf(buf,"Edycja kolejki<-");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"Edycja wspol. ");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_4:
- {
- sprintf(buf,"Edycja kolejki ");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"Edycja wspol. <-");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_11:
- {
- sprintf(buf,"Adaptacyjny <-");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"Manualny ");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_12:
- {
- sprintf(buf,"Manualny <-");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"Nocny ");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_13:
- {
- sprintf(buf,"Manualny ");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"Nocny <-");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_21:
- {
- sprintf(buf,"T%d = %ds ", indeks_aktualnie_edytowanej_sekwencji+1, czasy_manualny_temp[indeks_aktualnie_edytowanej_sekwencji]);
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf," ");
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_31:
- {
- sprintf(buf,"1 2 3 4 5 6 7 8 ");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"%d %d %d %d %d %d %d %d ", kolejnosc_temp[0], kolejnosc_temp[1], kolejnosc_temp[2], kolejnosc_temp[3], kolejnosc_temp[4], kolejnosc_temp[5], kolejnosc_temp[6], kolejnosc_temp[7]);
- if(czy_wyswietlac_kursor) buf[indeks_aktualnie_edytowanej_sekwencji * 2 + 1] = '_';
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- case M_41:
- {
- sprintf(buf,"1 2 3 4 5 6 7 8 ");
- LCD_xy(1,1); LCD_puts(buf);
- sprintf(buf,"%d %d %d %d %d %d %d %d ", wspolczynniki_adaptacyjny_temp[0], wspolczynniki_adaptacyjny_temp[1], wspolczynniki_adaptacyjny_temp[2], wspolczynniki_adaptacyjny_temp[3], wspolczynniki_adaptacyjny_temp[4], wspolczynniki_adaptacyjny_temp[5], wspolczynniki_adaptacyjny_temp[6], wspolczynniki_adaptacyjny_temp[7]);
- if(czy_wyswietlac_kursor) buf[indeks_aktualnie_edytowanej_sekwencji * 2 + 1] = '_';
- LCD_xy(1,2); LCD_puts(buf);
- break;
- }
- }
- }
- void ustaw_czasy_manualny_temp()
- {
- for(int i = 0; i < 8; ++i) czasy_manualny_temp[i] = czasy_manualny[i];
- indeks_aktualnie_edytowanej_sekwencji = 0;
- }
- void ustaw_czasy_manualny()
- {
- for(int i = 0; i < 8; ++i) czasy_manualny[i] = czasy_manualny_temp[i];
- }
- void ustaw_wspolczynniki_adaptacyjny_temp()
- {
- for(int i = 0; i < 8; ++i) wspolczynniki_adaptacyjny_temp[i] = wspolczynniki_adaptacyjny[i];
- indeks_aktualnie_edytowanej_sekwencji = 0;
- }
- void ustaw_wspolczynniki_adaptacyjny()
- {
- for(int i = 0; i < 8; ++i) wspolczynniki_adaptacyjny[i] = wspolczynniki_adaptacyjny_temp[i];
- }
- void ustaw_czasy_adaptacyjny()
- {
- //TODO: Tu kod ustawiający nowe czasy dla trybu adaptacyjnego.
- }
- void ustaw_kolejnosc_temp()
- {
- for(int i = 0; i < 8; ++i) kolejnosc_temp[i] = kolejnosc[i];
- indeks_aktualnie_edytowanej_sekwencji = 0;
- }
- void ustaw_kolejnosc()
- {
- for(int i = 0; i < 8; ++i) kolejnosc[i] = kolejnosc_temp[i];
- }
- void obsluguj_menu()
- {
- switch(stan_Menu)
- {
- case M_1:
- {
- if(K_WYBIERZ) stan_Menu = M_1_WY_wait;
- else if(K_GORA) stan_Menu = M_1_G_wait;
- else if(K_DOL) stan_Menu = M_1_D_wait;
- break;
- }
- case M_1_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_11; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_1_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_4; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_1_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_2; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_2:
- {
- if(K_WYBIERZ) stan_Menu = M_2_WY_wait;
- else if(K_GORA) stan_Menu = M_2_G_wait;
- else if(K_DOL) stan_Menu = M_2_D_wait;
- break;
- }
- case M_2_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_21; ustaw_czasy_manualny_temp(); czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_2_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_1; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_2_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_3; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_3:
- {
- if(K_WYBIERZ) stan_Menu = M_3_WY_wait;
- else if(K_GORA) stan_Menu = M_3_G_wait;
- else if(K_DOL) stan_Menu = M_3_D_wait;
- break;
- }
- case M_3_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_31; ustaw_kolejnosc_temp(); czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_3_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_2; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_3_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_4; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_4:
- {
- if(K_WYBIERZ) stan_Menu = M_4_WY_wait;
- else if(K_GORA) stan_Menu = M_4_G_wait;
- else if(K_DOL) stan_Menu = M_4_D_wait;
- break;
- }
- case M_4_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_41; ustaw_wspolczynniki_adaptacyjny_temp(); czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_4_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_3; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_4_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_1; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_11:
- {
- if(K_WYBIERZ) stan_Menu = M_11_WY_wait;
- else if(K_WSTECZ) stan_Menu = M_11_WS_wait;
- else if(K_GORA) stan_Menu = M_11_G_wait;
- else if(K_DOL) stan_Menu = M_11_D_wait;
- break;
- }
- case M_11_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_1; czy_zmienic_tryb = 1; nowy_tryb = Adaptacyjny; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_11_WS_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_1; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_11_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_13; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_11_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_12; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_12:
- {
- if(K_WYBIERZ) stan_Menu = M_12_WY_wait;
- else if(K_WSTECZ) stan_Menu = M_12_WS_wait;
- else if(K_GORA) stan_Menu = M_12_G_wait;
- else if(K_DOL) stan_Menu = M_12_D_wait;
- break;
- }
- case M_12_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_1; czy_zmienic_tryb = 1; nowy_tryb = Manualny; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_12_WS_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_1; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_12_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_11; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_12_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_13; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_13:
- {
- if(K_WYBIERZ) stan_Menu = M_13_WY_wait;
- else if(K_WSTECZ) stan_Menu = M_13_WS_wait;
- else if(K_GORA) stan_Menu = M_13_G_wait;
- else if(K_DOL) stan_Menu = M_13_D_wait;
- break;
- }
- case M_13_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_1; czy_zmienic_tryb = 1; nowy_tryb = Nocny; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_13_WS_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_1; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_13_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_12; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_13_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_11; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_21:
- {
- if(K_WYBIERZ) stan_Menu = M_21_WY_wait;
- else if(K_WSTECZ) stan_Menu = M_21_WS_wait;
- else if(K_GORA && czasy_manualny_temp[indeks_aktualnie_edytowanej_sekwencji] < MAX_GREEN_TIME) stan_Menu = M_21_G_wait;
- else if(K_DOL && czasy_manualny_temp[indeks_aktualnie_edytowanej_sekwencji] > 0) stan_Menu = M_21_D_wait;
- else if(K_LEWO) stan_Menu = M_21_L_wait;
- else if(K_PRAWO) stan_Menu = M_21_P_wait;
- break;
- }
- case M_21_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_2; ustaw_czasy_manualny(); czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_21_WS_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_2; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_21_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_21; ++czasy_manualny_temp[indeks_aktualnie_edytowanej_sekwencji]; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_21_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_21; --czasy_manualny_temp[indeks_aktualnie_edytowanej_sekwencji]; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_21_L_wait:
- {
- if(!K_LEWO && indeks_aktualnie_edytowanej_sekwencji == 0) {stan_Menu = M_21; indeks_aktualnie_edytowanej_sekwencji = 7; czy_zaktualizowac_wyswietlacz = 1;}
- else if(!K_LEWO && indeks_aktualnie_edytowanej_sekwencji > 0) { stan_Menu = M_21; --indeks_aktualnie_edytowanej_sekwencji; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_21_P_wait:
- {
- if(!K_PRAWO && indeks_aktualnie_edytowanej_sekwencji == 7) {stan_Menu = M_21; indeks_aktualnie_edytowanej_sekwencji = 0; czy_zaktualizowac_wyswietlacz = 1;}
- else if(!K_PRAWO && indeks_aktualnie_edytowanej_sekwencji < 7) {stan_Menu = M_21; ++indeks_aktualnie_edytowanej_sekwencji; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_31:
- {
- if(K_WYBIERZ) {stan_Menu = M_31_WY_wait; ustaw_kolejnosc();}
- else if(K_WSTECZ) stan_Menu = M_31_WS_wait;
- else if(K_GORA && kolejnosc_temp[indeks_aktualnie_edytowanej_sekwencji] < 8) stan_Menu = M_31_G_wait;
- else if(K_DOL && kolejnosc_temp[indeks_aktualnie_edytowanej_sekwencji] > 0) stan_Menu = M_31_D_wait;
- else if(K_LEWO) stan_Menu = M_31_L_wait;
- else if(K_PRAWO) stan_Menu = M_31_P_wait;
- break;
- }
- case M_31_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_3; ustaw_kolejnosc(); czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_31_WS_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_3; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_31_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_31; ++kolejnosc_temp[indeks_aktualnie_edytowanej_sekwencji]; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_31_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_31; --kolejnosc_temp[indeks_aktualnie_edytowanej_sekwencji]; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_31_L_wait:
- {
- if(!K_LEWO && indeks_aktualnie_edytowanej_sekwencji == 0) {stan_Menu = M_31; indeks_aktualnie_edytowanej_sekwencji = 7; czy_zaktualizowac_wyswietlacz = 1;}
- else if(!K_LEWO && indeks_aktualnie_edytowanej_sekwencji > 0) { stan_Menu = M_31; --indeks_aktualnie_edytowanej_sekwencji; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_31_P_wait:
- {
- if(!K_PRAWO && indeks_aktualnie_edytowanej_sekwencji == 7) {stan_Menu = M_31; indeks_aktualnie_edytowanej_sekwencji = 0; czy_zaktualizowac_wyswietlacz = 1;}
- else if(!K_PRAWO && indeks_aktualnie_edytowanej_sekwencji < 7) {stan_Menu = M_31; ++indeks_aktualnie_edytowanej_sekwencji; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_41:
- {
- if(K_WYBIERZ) stan_Menu = M_41_WY_wait;
- else if(K_WSTECZ) stan_Menu = M_41_WS_wait;
- else if(K_GORA && wspolczynniki_adaptacyjny_temp[indeks_aktualnie_edytowanej_sekwencji] < 5) stan_Menu = M_41_G_wait;
- else if(K_DOL && wspolczynniki_adaptacyjny_temp[indeks_aktualnie_edytowanej_sekwencji] > 1) stan_Menu = M_41_D_wait;
- else if(K_LEWO) stan_Menu = M_41_L_wait;
- else if(K_PRAWO) stan_Menu = M_41_P_wait;
- break;
- }
- case M_41_WY_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_4; ustaw_wspolczynniki_adaptacyjny(); czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_41_WS_wait:
- {
- if(!K_WYBIERZ){stan_Menu = M_4; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_41_G_wait:
- {
- if(!K_GORA) {stan_Menu = M_41; ++wspolczynniki_adaptacyjny_temp[indeks_aktualnie_edytowanej_sekwencji]; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_41_D_wait:
- {
- if(!K_DOL) {stan_Menu = M_41; --wspolczynniki_adaptacyjny_temp[indeks_aktualnie_edytowanej_sekwencji]; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_41_L_wait:
- {
- if(!K_LEWO && indeks_aktualnie_edytowanej_sekwencji == 0) {stan_Menu = M_41; indeks_aktualnie_edytowanej_sekwencji = 7; czy_zaktualizowac_wyswietlacz = 1;}
- else if(!K_LEWO && indeks_aktualnie_edytowanej_sekwencji > 0) { stan_Menu = M_41; --indeks_aktualnie_edytowanej_sekwencji; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- case M_41_P_wait:
- {
- if(!K_PRAWO && indeks_aktualnie_edytowanej_sekwencji == 7) {stan_Menu = M_41; indeks_aktualnie_edytowanej_sekwencji = 0; czy_zaktualizowac_wyswietlacz = 1;}
- else if(!K_PRAWO && indeks_aktualnie_edytowanej_sekwencji < 7) {stan_Menu = M_41; ++indeks_aktualnie_edytowanej_sekwencji; czy_zaktualizowac_wyswietlacz = 1;}
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement