Lukas Seyfrid
/
SeyfridLukas
semestralna praca
Diff: main.cpp
- Revision:
- 5:8c5c19be2126
- Parent:
- 4:dee1ebc51d2e
- Child:
- 6:8c336acc90f9
diff -r dee1ebc51d2e -r 8c5c19be2126 main.cpp --- a/main.cpp Mon Dec 11 15:13:35 2017 +0000 +++ b/main.cpp Fri Jan 05 13:11:52 2018 +0000 @@ -8,7 +8,7 @@ -int prijmi; + int getCrc(int addrRx, int addrTx, int dataSize, int aData[]) { @@ -62,22 +62,13 @@ } } -void prerusVysielanie() +void prijmiSpravu() { prijmi = 1; for(int i = 0; i < 4; i++) { adresa[i] = term.getc(); - if(adresa[i] == W_1_BUTTON){smerDole();} - else if(adresa[i]== W_2_BUTTON) - { - - smerHore(); - - if(adresa[i] == 0xE2){stop();} - } - } @@ -86,35 +77,247 @@ }else{ for(int i = 0; i < adresa[3]; i++){ sprava[i]=term.getc(); - } adresa[4]=term.getc(); - if(adresa[4] == getCrc(adresa[1], adresa[2],adresa[3],sprava)){ - + } - } - + + nice(); } +void nice(){ + + + if(p_0 == 1) + { + if (dajPoschodie() == SWITCH_P){ + ledPoff(); + ledPoffC(); + stop(); + odomkniVytah() ; + p_0 = 0; + } + + } + + + if(p_1 == 1) + { + if (dajPoschodie() == SWITCH_1){ + led1off(); + led1offC(); + stop(); + odomkniVytah() ; + p_1 = 0; + } + + } + + if(p_2 == 1) + { + if (dajPoschodie() == SWITCH_2){ + led2off(); + led2offC(); + stop(); + odomkniVytah() ; + p_2 = 0; + } + + } + + if (p_3 == 1){ + + if (dajPoschodie() == SWITCH_3){ + led3off(); + led3offC(); + stop(); + odomkniVytah() ; + p_3 = 0; + } + } + + if(p_4 == 1) + { + if (dajPoschodie() == SWITCH_4){ + led4off(); + led4off(); + stop(); + odomkniVytah() ; + p_4 = 0; + } + + } + + } +void tlacitka() +{ + switch(adresa[2]) + { + case W_P_BUTTON: + { + p_0 = 1; + smerDole(); + ledPon(); + + break; + } + + case W_1_BUTTON: + { + p_1 = 1; + smerHore(); + led1on(); + break; + } + + case W_2_BUTTON: + { + p_2 = 1; + smerDole(); + led2on(); + break; + } + + case W_3_BUTTON: + { + p_3 = 1; + + smerDole(); + led3on(); + + break; + } + + case W_4_BUTTON: + { + p_4 = 1; + smerHore(); + led4on(); + break; + } + + case C_P_BUTTON: + { + p_0 = 1; + smerHore(); + ledPon(); + break; + } + + case C_1_BUTTON: + { + p_1 = 1; + smerHore(); + led1on(); + break; + } + + case C_2_BUTTON: + { + p_2 = 1; + smerHore(); + led2on(); + break; + } + + case C_3_BUTTON: + { + p_3 = 1; + smerHore(); + led3on(); + break; + } + + case C_4_BUTTON: + { + p_4 = 1; + smerHore(); + led4on(); + break; + } + + + + + } + + } + + + + +int dajPoschodie() +{ + int poschodie; + + switch(adresa[2]) + { + case SWITCH_P: + { + poschodie = SWITCH_P; + cisloPochodia_dislpej = 0; + break; + } + + case SWITCH_1: + { + poschodie = SWITCH_1; + cisloPochodia_dislpej = 1; + break; + } + case SWITCH_2: + { + poschodie = SWITCH_2; + cisloPochodia_dislpej = 2; + break; + } + + case SWITCH_3: + { + poschodie = SWITCH_3; + cisloPochodia_dislpej = 3; + break; + } + case SWITCH_4: + { + poschodie = SWITCH_4; + cisloPochodia_dislpej = 4; + break; + } + + + + } + + return poschodie; + + } + int main() { term.baud(57600); - + term.attach(&prijmiSpravu, Serial::RxIrq); //int aDataIn[] = {*prerusVysielanie()}; // int dataSize1 = ARRAY_SIZE(aDataIn); // posliSpravu(0xD0,0xAA,dataSize1,aDataIn); - - prerusVysielanie(); + + while(1){ + //prijmi = 0; + tlacitka(); + } + + + @@ -131,10 +334,7 @@ void smerHore() { - //int aDataIn[] = {0x2, 0x64, 0x00, 0x00, 0x00}; - //int dataSize1 = ARRAY_SIZE(aDataIn); - //posliSpravu(MOTOR,0xAA,dataSize1,aDataIn); - + pohyb++; if(pohyb_flag == 0){ pohyb_flag = 1; @@ -253,4 +453,153 @@ } disp_poschodie = cisloPochodia_dislpej; display_smer = pohyb_flag; - } \ No newline at end of file +} +/*************************************************************/ +void ledPon() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x10,0xAA,dataSize1,aDataIn); + } + + void led1on() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x11,0xAA,dataSize1,aDataIn); + } + + void led2on() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x12,0xAA,dataSize1,aDataIn); + } + + void led3on() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x13,0xAA,dataSize1,aDataIn); + } + + void led4on() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x14,0xAA,dataSize1,aDataIn); + } + + + + void ledPoff() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x10,0xAA,dataSize1,aDataIn); + } + + void led1off() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x11,0xAA,dataSize1,aDataIn); + } + + void led2off() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x12,0xAA,dataSize1,aDataIn); + } + + void led3off() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x13,0xAA,dataSize1,aDataIn); + } + + void led4off() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x14,0xAA,dataSize1,aDataIn); + } + + + /************************************************************************************/ + + + void ledPonC() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x20,0xAA,dataSize1,aDataIn); + } + + void led1onC() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x21,0xAA,dataSize1,aDataIn); + } + + void led2onC() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x22,0xAA,dataSize1,aDataIn); + } + + void led3onC() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x23,0xAA,dataSize1,aDataIn); + } + + void led4onC() +{ + int aDataIn[] = {0x1}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x24,0xAA,dataSize1,aDataIn); + } + + + + void ledPoffC() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x20,0xAA,dataSize1,aDataIn); + } + + void led1offC() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x21,0xAA,dataSize1,aDataIn); + } + + void led2offC() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x22,0xAA,dataSize1,aDataIn); + } + + void led3offC() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x23,0xAA,dataSize1,aDataIn); + } + + void led4offC() +{ + int aDataIn[] = {0x0}; + int dataSize1 = ARRAY_SIZE(aDataIn); + posliSpravu(0x24,0xAA,dataSize1,aDataIn); + } + \ No newline at end of file