semestralna praca

Dependencies:   FRDM_MMA8451Q

Revision:
5:8c5c19be2126
Parent:
4:dee1ebc51d2e
Child:
6:8c336acc90f9
--- 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