Semestrálna práca VÝTAH Roman Ciesarík

Dependencies:   MMA8451Q mbed

Committer:
Ciesarik3
Date:
Sat Jan 06 19:06:35 2018 +0000
Revision:
8:9686195ddf1d
Parent:
7:8786833154ff
Child:
9:51cf1120b4f4
Ovela ovela lep?ie male chyby?ky ale obslu?i v?etky sice nie v porad?  e?te watch dog a frefall;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ciesarik3 0:40602b91b27f 1 #include "mbed.h"
Ciesarik3 1:6c18e74f3ff4 2 #include "headre.h"
Ciesarik3 7:8786833154ff 3
Ciesarik3 0:40602b91b27f 4 #define DISPLAY 0x30 // DATA smer 0x01-> UP 0x02-> DOWN , text (string)
Ciesarik3 0:40602b91b27f 5 #define TERMINAL 0xD0 // Vypise vsetko
Ciesarik3 1:6c18e74f3ff4 6
Ciesarik3 0:40602b91b27f 7 #define VYTAH_BUTTON_P 0xb0 // ┌-----------┐
Ciesarik3 0:40602b91b27f 8 #define VYTAH_BUTTON_1 0xb1 // | DATA 0xFF |
Ciesarik3 0:40602b91b27f 9 #define VYTAH_BUTTON_2 0xb2 // |-----------|
Ciesarik3 0:40602b91b27f 10 #define VYTAH_BUTTON_3 0xb3 // |-----------|
Ciesarik3 0:40602b91b27f 11 #define VYTAH_BUTTON_4 0xb4 // |-----------|
Ciesarik3 1:6c18e74f3ff4 12
Ciesarik3 0:40602b91b27f 13 #define POSCHODIE_BUTTON_P 0xc0 // |-----------|
Ciesarik3 0:40602b91b27f 14 #define POSCHODIE_BUTTON_1 0xc1 // |-----------|
Ciesarik3 0:40602b91b27f 15 #define POSCHODIE_BUTTON_2 0xc2 // |-----------|
Ciesarik3 0:40602b91b27f 16 #define POSCHODIE_BUTTON_3 0xc3 // |-----------|
Ciesarik3 0:40602b91b27f 17 #define POSCHODIE_BUTTON_4 0xc4 // └-----------┘
Ciesarik3 0:40602b91b27f 18
Ciesarik3 8:9686195ddf1d 19 #define VYTAH_DIODA_P 0x20 // ┌--------------------------┐
Ciesarik3 0:40602b91b27f 20 #define VYTAH_DIODA_1 0x21 // | DATA 0x00-> OFF 0x01->ON |
Ciesarik3 0:40602b91b27f 21 #define VYTAH_DIODA_2 0x22 // |--------------------------|
Ciesarik3 0:40602b91b27f 22 #define VYTAH_DIODA_3 0x23 // |--------------------------|
Ciesarik3 0:40602b91b27f 23 #define VYTAH_DIODA_4 0x24 // |--------------------------|
Ciesarik3 0:40602b91b27f 24
Ciesarik3 0:40602b91b27f 25 #define POSCHODIE_DIODA_P 0x10 // |--------------------------|
Ciesarik3 0:40602b91b27f 26 #define POSCHODIE_DIODA_1 0x11 // |--------------------------|
Ciesarik3 0:40602b91b27f 27 #define POSCHODIE_DIODA_2 0x12 // |--------------------------|
Ciesarik3 0:40602b91b27f 28 #define POSCHODIE_DIODA_3 0x13 // |--------------------------|
Ciesarik3 0:40602b91b27f 29 #define POSCHODIE_DIODA_4 0x14 // └--------------------------┘
Ciesarik3 0:40602b91b27f 30
Ciesarik3 0:40602b91b27f 31 #define VYTAH 0xf0 // DATA 0x00-> UNLOCK 0x01-> LOCK
Ciesarik3 0:40602b91b27f 32 #define BRZDA 0xf // DATA 0x00-> DEACTIVATE 0x01-> ACTIVATE
Ciesarik3 0:40602b91b27f 33
Ciesarik3 8:9686195ddf1d 34 #define FLOOR_LIMIT_SWITCH_P 0xe0 // ┌------------------------------------------┐
Ciesarik3 0:40602b91b27f 35 #define FLOOR_LIMIT_SWITCH_1 0xe1 // | DATA 0x00-> LOW 0x01->WIDE 0x02-> NARROW |
Ciesarik3 0:40602b91b27f 36 #define FLOOR_LIMIT_SWITCH_2 0xe2 // |------------------------------------------|
Ciesarik3 0:40602b91b27f 37 #define FLOOR_LIMIT_SWITCH_3 0xe3 // |------------------------------------------|
Ciesarik3 0:40602b91b27f 38 #define FLOOR_LIMIT_SWITCH_4 0xe4 // └------------------------------------------┘
Ciesarik3 0:40602b91b27f 39
Ciesarik3 0:40602b91b27f 40 #define MOTOR 0xf1 // DATA 0x1-> STOP 0x02-> UP/DOWN 32bit <-100,100> 0x3-> MOTOR ENCODER COUNT (double)
Ciesarik3 0:40602b91b27f 41 #define WATCHDOG 0xfe // DATA 0x01-> time out ELSE regular reset ( 1500ms )
Ciesarik3 0:40602b91b27f 42
Ciesarik3 1:6c18e74f3ff4 43 Serial pc(USBTX, USBRX, 57600);
Ciesarik3 0:40602b91b27f 44
Ciesarik3 0:40602b91b27f 45 int i;
Ciesarik3 1:6c18e74f3ff4 46 unsigned int velkost;
Ciesarik3 7:8786833154ff 47 char crc=0x00;
Ciesarik3 1:6c18e74f3ff4 48 char crc8table[256] = {
Ciesarik3 0:40602b91b27f 49 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65,
Ciesarik3 0:40602b91b27f 50 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220,
Ciesarik3 0:40602b91b27f 51 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98,
Ciesarik3 0:40602b91b27f 52 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255,
Ciesarik3 0:40602b91b27f 53 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7,
Ciesarik3 0:40602b91b27f 54 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154,
Ciesarik3 0:40602b91b27f 55 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36,
Ciesarik3 0:40602b91b27f 56 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185,
Ciesarik3 0:40602b91b27f 57 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205,
Ciesarik3 0:40602b91b27f 58 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80,
Ciesarik3 0:40602b91b27f 59 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238,
Ciesarik3 0:40602b91b27f 60 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115,
Ciesarik3 0:40602b91b27f 61 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139,
Ciesarik3 0:40602b91b27f 62 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22,
Ciesarik3 0:40602b91b27f 63 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168,
Ciesarik3 0:40602b91b27f 64 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53
Ciesarik3 7:8786833154ff 65 };
Ciesarik3 1:6c18e74f3ff4 66
Ciesarik3 1:6c18e74f3ff4 67 // crc [0xA0, prijem, odosielatel, vrlkost dat , data (256),crc]
Ciesarik3 1:6c18e74f3ff4 68 //char odosli[5+sizeof(DATA)];
Ciesarik3 8:9686195ddf1d 69 DigitalOut myled(LED1);
Ciesarik3 8:9686195ddf1d 70 DigitalOut myled2(LED2);
Ciesarik3 0:40602b91b27f 71
Ciesarik3 0:40602b91b27f 72
Ciesarik3 1:6c18e74f3ff4 73 char demo[]= {1,2,3,4,5,6};
Ciesarik3 4:f2b6a3558671 74 char prijemSpravy[30];
Ciesarik3 8:9686195ddf1d 75 char diode_DATA[]={0x00,0x01};
Ciesarik3 8:9686195ddf1d 76 int diode_cislo[]={0,0,0,0,0};
Ciesarik3 2:84b5e49b4549 77 int stav=5;
Ciesarik3 8:9686195ddf1d 78 int poradie[]={0,0,0,0,0};
Ciesarik3 8:9686195ddf1d 79
Ciesarik3 5:c1952cbf8111 80
Ciesarik3 1:6c18e74f3ff4 81
Ciesarik3 8:9686195ddf1d 82 char buffer_kto[100];
Ciesarik3 8:9686195ddf1d 83 char buffer_co[100];
Ciesarik3 8:9686195ddf1d 84 int buff_index=0;
Ciesarik3 8:9686195ddf1d 85 int cyklus=0;
Ciesarik3 1:6c18e74f3ff4 86
Ciesarik3 0:40602b91b27f 87 int main()
Ciesarik3 0:40602b91b27f 88 {
Ciesarik3 4:f2b6a3558671 89 pc.attach(&prijmemSpravu);
Ciesarik3 2:84b5e49b4549 90 //dole();
Ciesarik3 8:9686195ddf1d 91 while(true)
Ciesarik3 8:9686195ddf1d 92 {
Ciesarik3 8:9686195ddf1d 93
Ciesarik3 8:9686195ddf1d 94 rozhodni();
Ciesarik3 8:9686195ddf1d 95 /* for(int i=0;i<5;i++)
Ciesarik3 8:9686195ddf1d 96 if(diode_cislo[i]!=0)
Ciesarik3 8:9686195ddf1d 97 {
Ciesarik3 8:9686195ddf1d 98 if(i<stav){dole();break;}
Ciesarik3 8:9686195ddf1d 99 else {hore();break;}
Ciesarik3 8:9686195ddf1d 100 }
Ciesarik3 8:9686195ddf1d 101 */
Ciesarik3 7:8786833154ff 102 /*
Ciesarik3 8:9686195ddf1d 103 if(cyklus<100)
Ciesarik3 8:9686195ddf1d 104 {
Ciesarik3 8:9686195ddf1d 105 rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 106 cyklus++;
Ciesarik3 8:9686195ddf1d 107 }
Ciesarik3 8:9686195ddf1d 108 else
Ciesarik3 8:9686195ddf1d 109 {
Ciesarik3 8:9686195ddf1d 110 cyklus=0;
Ciesarik3 8:9686195ddf1d 111 rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 112 cyklus++;
Ciesarik3 6:83b531eead03 113 }
Ciesarik3 8:9686195ddf1d 114 */
Ciesarik3 8:9686195ddf1d 115
Ciesarik3 8:9686195ddf1d 116 /*stop();
Ciesarik3 8:9686195ddf1d 117 wait(1);
Ciesarik3 8:9686195ddf1d 118 hore();*/
Ciesarik3 8:9686195ddf1d 119 }
Ciesarik3 1:6c18e74f3ff4 120 }
Ciesarik3 5:c1952cbf8111 121
Ciesarik3 8:9686195ddf1d 122 void pohyb(int kam)
Ciesarik3 5:c1952cbf8111 123 {
Ciesarik3 5:c1952cbf8111 124 zamkni();
Ciesarik3 8:9686195ddf1d 125 if (stav <kam) hore();
Ciesarik3 8:9686195ddf1d 126 if (stav >kam) dole();
Ciesarik3 4:f2b6a3558671 127
Ciesarik3 8:9686195ddf1d 128 /*
Ciesarik3 4:f2b6a3558671 129 switch(stav)
Ciesarik3 4:f2b6a3558671 130 {
Ciesarik3 4:f2b6a3558671 131 case 5: dole(); break;
Ciesarik3 8:9686195ddf1d 132 case 4:
Ciesarik3 4:f2b6a3558671 133 if(diode_cislo[4]==1)
Ciesarik3 4:f2b6a3558671 134 break;
Ciesarik3 4:f2b6a3558671 135 case 3: break;
Ciesarik3 4:f2b6a3558671 136 case 2: break;
Ciesarik3 4:f2b6a3558671 137 case 1: break;
Ciesarik3 4:f2b6a3558671 138 case 0: break;
Ciesarik3 4:f2b6a3558671 139 default: break;
Ciesarik3 8:9686195ddf1d 140 }*/
Ciesarik3 3:ac8b2de52239 141 }
Ciesarik3 5:c1952cbf8111 142
Ciesarik3 3:ac8b2de52239 143
Ciesarik3 1:6c18e74f3ff4 144 void zamkni()
Ciesarik3 8:9686195ddf1d 145 {
Ciesarik3 8:9686195ddf1d 146
Ciesarik3 1:6c18e74f3ff4 147 char DATA[]= {0x01};
Ciesarik3 1:6c18e74f3ff4 148 poslemSpravu(VYTAH,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 149 }
Ciesarik3 1:6c18e74f3ff4 150
Ciesarik3 1:6c18e74f3ff4 151 void odomkni()
Ciesarik3 1:6c18e74f3ff4 152 {
Ciesarik3 8:9686195ddf1d 153 wait(1);
Ciesarik3 1:6c18e74f3ff4 154 char DATA[]= {0x00};
Ciesarik3 1:6c18e74f3ff4 155 poslemSpravu(VYTAH,0xcc,sizeof(DATA),DATA);
Ciesarik3 8:9686195ddf1d 156 wait(1);
Ciesarik3 1:6c18e74f3ff4 157 }
Ciesarik3 1:6c18e74f3ff4 158
Ciesarik3 1:6c18e74f3ff4 159 void stop()
Ciesarik3 1:6c18e74f3ff4 160 {
Ciesarik3 1:6c18e74f3ff4 161 char DATA[]= {0x01};
Ciesarik3 1:6c18e74f3ff4 162 poslemSpravu(MOTOR,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 163 }
Ciesarik3 1:6c18e74f3ff4 164
Ciesarik3 1:6c18e74f3ff4 165 void hore()
Ciesarik3 1:6c18e74f3ff4 166 {
Ciesarik3 1:6c18e74f3ff4 167 char DATA[]= {0x02,0x64,0x00,0x00,0x00};
Ciesarik3 8:9686195ddf1d 168 poslemSpravu(MOTOR,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 169 }
Ciesarik3 1:6c18e74f3ff4 170
Ciesarik3 1:6c18e74f3ff4 171 void dole()
Ciesarik3 1:6c18e74f3ff4 172 {
Ciesarik3 1:6c18e74f3ff4 173 char DATA[]= {0x02,0x9c,0xff,0xff,0xff};
Ciesarik3 1:6c18e74f3ff4 174 poslemSpravu(MOTOR,0xcc,sizeof(DATA),DATA);
Ciesarik3 1:6c18e74f3ff4 175 }
Ciesarik3 1:6c18e74f3ff4 176
Ciesarik3 2:84b5e49b4549 177 void prijmemSpravu()
Ciesarik3 2:84b5e49b4549 178 {
Ciesarik3 8:9686195ddf1d 179 //pc.attach(&prijmemSpravu);§
Ciesarik3 8:9686195ddf1d 180 myled=0;
Ciesarik3 6:83b531eead03 181
Ciesarik3 8:9686195ddf1d 182 for (int j=0;j<4;j++)
Ciesarik3 8:9686195ddf1d 183 {
Ciesarik3 8:9686195ddf1d 184 while(true)
Ciesarik3 8:9686195ddf1d 185 {
Ciesarik3 8:9686195ddf1d 186 if(pc.readable()==1)
Ciesarik3 8:9686195ddf1d 187 {
Ciesarik3 8:9686195ddf1d 188 prijemSpravy[j]=pc.getc();
Ciesarik3 8:9686195ddf1d 189 break;
Ciesarik3 6:83b531eead03 190 }
Ciesarik3 8:9686195ddf1d 191 }
Ciesarik3 2:84b5e49b4549 192 }
Ciesarik3 8:9686195ddf1d 193
Ciesarik3 8:9686195ddf1d 194 int pom= prijemSpravy[3] + 1;
Ciesarik3 2:84b5e49b4549 195
Ciesarik3 8:9686195ddf1d 196 for (int j=0;j<pom;j++)
Ciesarik3 8:9686195ddf1d 197 {
Ciesarik3 8:9686195ddf1d 198 while(true)
Ciesarik3 8:9686195ddf1d 199 {
Ciesarik3 8:9686195ddf1d 200 if(pc.readable()==1)
Ciesarik3 8:9686195ddf1d 201 {
Ciesarik3 8:9686195ddf1d 202 prijemSpravy[j+4]=pc.getc();
Ciesarik3 8:9686195ddf1d 203 break;
Ciesarik3 8:9686195ddf1d 204 }
Ciesarik3 8:9686195ddf1d 205 }
Ciesarik3 8:9686195ddf1d 206 }
Ciesarik3 8:9686195ddf1d 207 // if(buff_index<100)
Ciesarik3 8:9686195ddf1d 208 // {
Ciesarik3 8:9686195ddf1d 209 buffer_kto[buff_index]=prijemSpravy[2];
Ciesarik3 8:9686195ddf1d 210 buffer_co[buff_index]=prijemSpravy[4];
Ciesarik3 8:9686195ddf1d 211 // buff_index++;
Ciesarik3 8:9686195ddf1d 212 /*}
Ciesarik3 8:9686195ddf1d 213 else
Ciesarik3 8:9686195ddf1d 214 {
Ciesarik3 8:9686195ddf1d 215 buff_index=0;
Ciesarik3 8:9686195ddf1d 216 buffer_kto[buff_index]=prijemSpravy[2];
Ciesarik3 8:9686195ddf1d 217 buffer_co[buff_index]=prijemSpravy[4];
Ciesarik3 8:9686195ddf1d 218 buff_index++;
Ciesarik3 8:9686195ddf1d 219 }*/
Ciesarik3 8:9686195ddf1d 220 myled=1;
Ciesarik3 8:9686195ddf1d 221 pc.attach(&prijmemSpravu);
Ciesarik3 2:84b5e49b4549 222 }
Ciesarik3 1:6c18e74f3ff4 223
Ciesarik3 3:ac8b2de52239 224 void rozhodni()
Ciesarik3 8:9686195ddf1d 225 {
Ciesarik3 8:9686195ddf1d 226 myled2=0;
Ciesarik3 8:9686195ddf1d 227 char bData=buffer_co[cyklus];
Ciesarik3 8:9686195ddf1d 228 switch(buffer_kto[cyklus])
Ciesarik3 8:9686195ddf1d 229 {
Ciesarik3 3:ac8b2de52239 230 case 0xb4: /* vytah tla4idlo 4 poschodie */
Ciesarik3 8:9686195ddf1d 231 poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 232 diode_cislo[4]=1;
Ciesarik3 8:9686195ddf1d 233
Ciesarik3 8:9686195ddf1d 234 pohyb(4);
Ciesarik3 8:9686195ddf1d 235
Ciesarik3 8:9686195ddf1d 236 break;
Ciesarik3 8:9686195ddf1d 237
Ciesarik3 6:83b531eead03 238 case 0xb3: /* vytah tla4idlo 3 poschodie */
Ciesarik3 8:9686195ddf1d 239 poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 240 diode_cislo[3]=1;
Ciesarik3 8:9686195ddf1d 241 pohyb(3);
Ciesarik3 6:83b531eead03 242
Ciesarik3 8:9686195ddf1d 243 break;
Ciesarik3 8:9686195ddf1d 244
Ciesarik3 8:9686195ddf1d 245 case 0xb2: /* vytah tla4idlo 2 poschodie */
Ciesarik3 8:9686195ddf1d 246 poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 247 diode_cislo[2]=1;
Ciesarik3 8:9686195ddf1d 248 pohyb(2);
Ciesarik3 8:9686195ddf1d 249 break;
Ciesarik3 8:9686195ddf1d 250
Ciesarik3 8:9686195ddf1d 251 case 0xb1: /* vytah tla4idlo 1 poschodie */
Ciesarik3 8:9686195ddf1d 252 poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 253 diode_cislo[1]=1;
Ciesarik3 8:9686195ddf1d 254 pohyb(1);
Ciesarik3 8:9686195ddf1d 255 break;
Ciesarik3 8:9686195ddf1d 256
Ciesarik3 8:9686195ddf1d 257 case 0xb0: /* vytah tla4idlo pr9zemie */
Ciesarik3 8:9686195ddf1d 258 poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 8:9686195ddf1d 259 diode_cislo[0]=1;
Ciesarik3 8:9686195ddf1d 260 pohyb(0);
Ciesarik3 8:9686195ddf1d 261 break;
Ciesarik3 8:9686195ddf1d 262
Ciesarik3 6:83b531eead03 263 case 0xc4: /* chodba tla4idlo 4 poschodie */
Ciesarik3 8:9686195ddf1d 264 poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 265 diode_cislo[4]=1;
Ciesarik3 8:9686195ddf1d 266 pohyb(4);
Ciesarik3 8:9686195ddf1d 267 break;
Ciesarik3 8:9686195ddf1d 268
Ciesarik3 6:83b531eead03 269 case 0xc3: /* chodba tla4idlo 3 poschodie */
Ciesarik3 8:9686195ddf1d 270 poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 271 diode_cislo[3]=1;
Ciesarik3 8:9686195ddf1d 272 pohyb(3);
Ciesarik3 8:9686195ddf1d 273 break;
Ciesarik3 8:9686195ddf1d 274
Ciesarik3 6:83b531eead03 275 case 0xc2: /* chodba tla4idlo 2 poschodie */
Ciesarik3 8:9686195ddf1d 276 poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 277 diode_cislo[2]=1;
Ciesarik3 8:9686195ddf1d 278 pohyb(2);
Ciesarik3 8:9686195ddf1d 279 break;
Ciesarik3 8:9686195ddf1d 280
Ciesarik3 6:83b531eead03 281 case 0xc1: /* chodba tla4idlo 1 poschodie */
Ciesarik3 8:9686195ddf1d 282 poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 283 diode_cislo[1]=1;
Ciesarik3 8:9686195ddf1d 284 pohyb(1);
Ciesarik3 8:9686195ddf1d 285 break;
Ciesarik3 8:9686195ddf1d 286
Ciesarik3 6:83b531eead03 287 case 0xc0: /* chodba tla4idlo pr9zemie */
Ciesarik3 8:9686195ddf1d 288 poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[1]);
Ciesarik3 6:83b531eead03 289 diode_cislo[0]=1;
Ciesarik3 8:9686195ddf1d 290 pohyb(0);
Ciesarik3 8:9686195ddf1d 291 break;
Ciesarik3 8:9686195ddf1d 292
Ciesarik3 8:9686195ddf1d 293
Ciesarik3 8:9686195ddf1d 294
Ciesarik3 8:9686195ddf1d 295
Ciesarik3 8:9686195ddf1d 296 case 0xe4: /* info pre odomknutie 4 poschodie */
Ciesarik3 8:9686195ddf1d 297 if(bData==0x01&&diode_cislo[4]==1){stop();
Ciesarik3 8:9686195ddf1d 298 poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 299 poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 300 diode_cislo[4]=0;
Ciesarik3 8:9686195ddf1d 301 stav=4;}
Ciesarik3 8:9686195ddf1d 302 if(bData==0x02&&stav==4){wait(1);odomkni();//}
Ciesarik3 8:9686195ddf1d 303 /*for (int kk=0;kk<5;kk++)
Ciesarik3 8:9686195ddf1d 304 {}*/
Ciesarik3 8:9686195ddf1d 305 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 306 else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 307 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 308 else if (diode_cislo[3]==1) pohyb(3);}
Ciesarik3 8:9686195ddf1d 309 //else if (diode_cislo[4]==1) pohyb(4);
Ciesarik3 6:83b531eead03 310
Ciesarik3 6:83b531eead03 311
Ciesarik3 8:9686195ddf1d 312 break;
Ciesarik3 8:9686195ddf1d 313
Ciesarik3 8:9686195ddf1d 314 case 0xe3: /* info pre odomknutie 3 poschodie */
Ciesarik3 8:9686195ddf1d 315 if(bData==0x01&&diode_cislo[3]==1){stop();
Ciesarik3 8:9686195ddf1d 316 poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 317 poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 318 diode_cislo[3]=0;
Ciesarik3 8:9686195ddf1d 319 stav=3;}
Ciesarik3 8:9686195ddf1d 320 if(bData==0x02&&stav==3){wait(1);odomkni();
Ciesarik3 6:83b531eead03 321
Ciesarik3 8:9686195ddf1d 322 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 323 else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 324 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 325 //else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 326 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 8:9686195ddf1d 327 break;
Ciesarik3 8:9686195ddf1d 328
Ciesarik3 8:9686195ddf1d 329 case 0xe2: /* info pre odomknutie 2 poschodie */
Ciesarik3 8:9686195ddf1d 330 if(bData==0x01&&diode_cislo[2]==1){stop();
Ciesarik3 8:9686195ddf1d 331 poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 332 poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 333 diode_cislo[2]=0;
Ciesarik3 8:9686195ddf1d 334 stav=2;}
Ciesarik3 8:9686195ddf1d 335 if(bData==0x02&&stav==2){wait(1);odomkni();//}
Ciesarik3 8:9686195ddf1d 336
Ciesarik3 8:9686195ddf1d 337 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 338 else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 339 // else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 340 else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 341 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 6:83b531eead03 342
Ciesarik3 8:9686195ddf1d 343 break;
Ciesarik3 8:9686195ddf1d 344
Ciesarik3 8:9686195ddf1d 345 case 0xe1: /* info pre odomknutie 1 poschodie */
Ciesarik3 8:9686195ddf1d 346 if(bData==0x01&&diode_cislo[1]==1){stop();
Ciesarik3 8:9686195ddf1d 347 poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 348 poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 349 diode_cislo[1]=0;
Ciesarik3 8:9686195ddf1d 350 stav=1;}
Ciesarik3 8:9686195ddf1d 351 if(bData==0x02&&stav==1){wait(1);odomkni();//}
Ciesarik3 8:9686195ddf1d 352
Ciesarik3 8:9686195ddf1d 353 if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 354 // else if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 355 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 356 else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 357 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 6:83b531eead03 358
Ciesarik3 8:9686195ddf1d 359 break;
Ciesarik3 8:9686195ddf1d 360
Ciesarik3 8:9686195ddf1d 361 case 0xe0: /* info pre odomknutie prízemie */
Ciesarik3 8:9686195ddf1d 362 if(bData==0x01&&diode_cislo[0]==1){stop();
Ciesarik3 8:9686195ddf1d 363 poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 364 poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[0]);
Ciesarik3 8:9686195ddf1d 365 diode_cislo[0]=0;
Ciesarik3 8:9686195ddf1d 366 stav=0;}
Ciesarik3 8:9686195ddf1d 367 if(bData==0x02&&stav==0){wait(1);odomkni();//}
Ciesarik3 6:83b531eead03 368
Ciesarik3 8:9686195ddf1d 369 //if (diode_cislo[0]==1) pohyb(0);
Ciesarik3 8:9686195ddf1d 370 if (diode_cislo[1]==1) pohyb(1);
Ciesarik3 8:9686195ddf1d 371 else if (diode_cislo[2]==1) pohyb(2);
Ciesarik3 8:9686195ddf1d 372 else if (diode_cislo[3]==1) pohyb(3);
Ciesarik3 8:9686195ddf1d 373 else if (diode_cislo[4]==1) pohyb(4);}
Ciesarik3 8:9686195ddf1d 374
Ciesarik3 8:9686195ddf1d 375 break;
Ciesarik3 5:c1952cbf8111 376
Ciesarik3 5:c1952cbf8111 377
Ciesarik3 8:9686195ddf1d 378
Ciesarik3 3:ac8b2de52239 379
Ciesarik3 8:9686195ddf1d 380
Ciesarik3 8:9686195ddf1d 381 case 0xf: /* zachranna brzda */
Ciesarik3 6:83b531eead03 382
Ciesarik3 8:9686195ddf1d 383 break;
Ciesarik3 3:ac8b2de52239 384
Ciesarik3 8:9686195ddf1d 385 case 0xfe: /* watchdog */
Ciesarik3 6:83b531eead03 386
Ciesarik3 8:9686195ddf1d 387 break;
Ciesarik3 8:9686195ddf1d 388 default: break;
Ciesarik3 8:9686195ddf1d 389 }
Ciesarik3 8:9686195ddf1d 390 /*if(cyklus<100)
Ciesarik3 8:9686195ddf1d 391 {
Ciesarik3 8:9686195ddf1d 392 //rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 393 cyklus++;
Ciesarik3 8:9686195ddf1d 394 }
Ciesarik3 8:9686195ddf1d 395 else
Ciesarik3 8:9686195ddf1d 396 {
Ciesarik3 8:9686195ddf1d 397 cyklus=0;
Ciesarik3 8:9686195ddf1d 398 //rozhodni(buffer_kto[cyklus], buffer_co[cyklus]);
Ciesarik3 8:9686195ddf1d 399 //cyklus++;
Ciesarik3 6:83b531eead03 400 }
Ciesarik3 8:9686195ddf1d 401 */ //pc.attach(&prijmemSpravu);
Ciesarik3 8:9686195ddf1d 402 myled=1;
Ciesarik3 3:ac8b2de52239 403 }
Ciesarik3 3:ac8b2de52239 404
Ciesarik3 1:6c18e74f3ff4 405 void poslemSpravu(char adrRX, char adrTX, int velkost, char DATA[] )
Ciesarik3 1:6c18e74f3ff4 406 {
Ciesarik3 1:6c18e74f3ff4 407 crc=0x00;
Ciesarik3 1:6c18e74f3ff4 408 char odosli[5+velkost];
Ciesarik3 1:6c18e74f3ff4 409 odosli[0]=0xA0;
Ciesarik3 1:6c18e74f3ff4 410 odosli[1]=adrRX;
Ciesarik3 1:6c18e74f3ff4 411 odosli[2]=adrTX;
Ciesarik3 1:6c18e74f3ff4 412 odosli[3]=velkost;
Ciesarik3 1:6c18e74f3ff4 413
Ciesarik3 1:6c18e74f3ff4 414 crc=crc8table[crc^adrRX];
Ciesarik3 1:6c18e74f3ff4 415 crc=crc8table[crc^adrTX];
Ciesarik3 1:6c18e74f3ff4 416
Ciesarik3 1:6c18e74f3ff4 417 for (i=0; i<velkost; i++) {
Ciesarik3 1:6c18e74f3ff4 418 odosli[4+i]=DATA[i];
Ciesarik3 1:6c18e74f3ff4 419 }
Ciesarik3 1:6c18e74f3ff4 420
Ciesarik3 1:6c18e74f3ff4 421 for (i=0; i<velkost; i++) {
Ciesarik3 1:6c18e74f3ff4 422 crc=crc8table[crc^DATA[i]];
Ciesarik3 1:6c18e74f3ff4 423 }
Ciesarik3 1:6c18e74f3ff4 424
Ciesarik3 1:6c18e74f3ff4 425 odosli[velkost+4]=crc;
Ciesarik3 1:6c18e74f3ff4 426
Ciesarik3 1:6c18e74f3ff4 427 for (i=0; i<velkost+5; i++) {
Ciesarik3 1:6c18e74f3ff4 428 pc.putc(odosli[i]);
Ciesarik3 1:6c18e74f3ff4 429 }
Ciesarik3 1:6c18e74f3ff4 430
Ciesarik3 1:6c18e74f3ff4 431 }
Ciesarik3 1:6c18e74f3ff4 432