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

Dependencies:   MMA8451Q mbed

Revision:
2:84b5e49b4549
Parent:
1:6c18e74f3ff4
Child:
3:ac8b2de52239
--- a/main.cpp	Mon Dec 11 14:24:45 2017 +0000
+++ b/main.cpp	Mon Dec 11 23:22:34 2017 +0000
@@ -71,76 +71,72 @@
 
 char demo[]= {1,2,3,4,5,6};
 char prijemSpravy[15];
+char diode_DATA[]={0x00,0x01};
+int diode_cislo[]={0,0,0,0,0};
+int stav=5;
 
 
 int main()
 {
     
-    for (int j=0;j<4;j++)
-    {
-        while(true)
-        {
-            if(pc.readable()==1)
-            {
-                prijemSpravy[j]=pc.getc; 
-                break;                                 
-            }
-        }    
-    }
+    //dole();
+while(true)
+{
+    pc.attach(&prijmemSpravu);
     
-    int pom= prijemSpravy[3] + 1;
-    
-    for (int j=0;j<pom;j++)
-    {
-        while(true)
-        {
-            if(pc.readable()==1)
-            {
-                prijemSpravy[j+4]=pc.getc;
-                break;                                  
-            }
-        }    
-    }
     
     switch(prijemSpravy[2])
     {
         case 0xb4: /* vytah tla4idlo 4 poschodie   */
+        poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[1]);
+        diode_cislo[4]=1;
+        dole();
             
         break;
         
         case 0xb3: /* vytah tla4idlo 3 poschodie   */
+        poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
         case 0xb2: /* vytah tla4idlo 2 poschodie   */
+        poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[1]);
+        diode_cislo[2]=1;
             
         break;
         
         case 0xb1: /* vytah tla4idlo 1 poschodie   */
+        poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
         case 0xb0: /* vytah tla4idlo pr9zemie   */
+        poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
         case 0xc4: /* chodba tla4idlo 4 poschodie   */
+        poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
         case 0xc3: /* chodba tla4idlo 3 poschodie   */
+        poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
         case 0xc2: /* chodba tla4idlo 2 poschodie   */
+        poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
         case 0xc1: /* chodba tla4idlo 1 poschodie   */
+        poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
         case 0xc0: /* chodba tla4idlo pr9zemie   */
+        poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[1]);
             
         break;
         
@@ -148,23 +144,33 @@
         
         
         case 0xe4: /* info pre odomknutie 4 poschodie   */
-            
+            if(prijemSpravy[4]==0x01&&diode_cislo[4]==1){stop();
+            poslemSpravu(VYTAH_DIODA_4,0xCC,0x01, &diode_DATA[0]);
+            poslemSpravu(POSCHODIE_DIODA_4,0xCC,0x01, &diode_DATA[0]);}
         break;
         
         case 0xe3: /* info pre odomknutie 3 poschodie   */
-            
+            if(prijemSpravy[4]==0x01){stop();
+            poslemSpravu(VYTAH_DIODA_3,0xCC,0x01, &diode_DATA[0]);
+            poslemSpravu(POSCHODIE_DIODA_3,0xCC,0x01, &diode_DATA[0]);}
         break;
         
         case 0xe2: /* info pre odomknutie 2 poschodie   */
-            
+            if(prijemSpravy[4]==0x01&&diode_cislo[2]==1){stop();
+            poslemSpravu(VYTAH_DIODA_2,0xCC,0x01, &diode_DATA[0]);
+            poslemSpravu(POSCHODIE_DIODA_2,0xCC,0x01, &diode_DATA[0]);}
         break;
         
         case 0xe1: /* info pre odomknutie 1 poschodie   */
-            
+            if(prijemSpravy[4]==0x01){stop();
+            poslemSpravu(VYTAH_DIODA_1,0xCC,0x01, &diode_DATA[0]);
+            poslemSpravu(POSCHODIE_DIODA_1,0xCC,0x01, &diode_DATA[0]);}
         break;
         
         case 0xe0: /* info pre odomknutie pr9zemie   */
-            
+            if(prijemSpravy[4]==0x01){stop();
+            poslemSpravu(VYTAH_DIODA_P,0xCC,0x01, &diode_DATA[0]);
+            poslemSpravu(POSCHODIE_DIODA_P,0xCC,0x01, &diode_DATA[0]);}
         break;
         
         
@@ -179,31 +185,10 @@
             
         break;
     }
-
-    //poslemSpravu(TERMINAL,0xCC, 6, demo);
-    /* zamkni();
-    wait(1);
-    odomkni();
-    wait(1);
-    zamkni();
-    wait(1);
-    dole();
+    /*stop();
     wait(1);
-    dole();
-    dole();
-    wait(2);
-    stop();
-    
-    wait(5);
-     odomkni();
-    wait(1);
-    zamkni();
-    hore();
-    wait(2);
-    stop();
-    wait(5);
-    odomkni(); */
-    
+    hore();*/
+}   
 }
 void zamkni()
 {
@@ -235,7 +220,36 @@
     poslemSpravu(MOTOR,0xcc,sizeof(DATA),DATA);
 }
 
-
+void prijmemSpravu()
+{
+    //pc.attach(&prijmemSpravu);
+    for (int j=0;j<4;j++)
+    {
+        while(true)
+        {
+            if(pc.readable()==1)
+            {
+                prijemSpravy[j]=pc.getc(); 
+                break;                                 
+            }
+        }    
+    }
+    
+    int pom= prijemSpravy[3] + 1;
+    
+    for (int j=0;j<pom;j++)
+    {
+        while(true)
+        {
+            if(pc.readable()==1)
+            {
+                prijemSpravy[j+4]=pc.getc();
+                break;                                  
+            }
+        }    
+    }
+   pc.attach(&prijmemSpravu);
+}
 
 void poslemSpravu(char adrRX, char adrTX, int velkost, char DATA[] )
 {
@@ -267,7 +281,7 @@
 
 void kontrola()
 {
-    char kontrola[4];
+    char kontrola[5]={0,0,0,0,0};
 
     for(int i=0;i<5;i++)
         {
@@ -275,7 +289,7 @@
             {
                 if(pc.readable()==1)
                 {
-                    kontola[i]=pc.getc();
+                    kontrola[i]=pc.getc();
                     break;  
                 }
             }
@@ -283,6 +297,6 @@
       
     if(kontrola[0]!=0xA0&&kontrola[1]!=0x00&&kontrola[2]!=0x00&&kontrola[3]!=0x00&&kontrola[4]!=0x00)
         {
-            poslemSpravu();
+           // poslemSpravu();
         }
 }
\ No newline at end of file