Team Fox / Mbed 2 deprecated TR_EXCITATION_TEST

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of BAE_CODE_MARCH_2017 by Team Fox

Revision:
84:afbedc6ed804
Parent:
83:78b6a62cdf6a
Child:
91:e9444ebb3fe3
--- a/BCN.cpp	Sun Dec 11 15:21:34 2016 +0000
+++ b/BCN.cpp	Sun Dec 11 17:40:06 2016 +0000
@@ -200,6 +200,11 @@
                         BCN_TX_MAIN_STATUS = 0;
                         timer_Set_BCN_TX_STATUS_SUSPENDED.stop();
                     }
+                    else if(BCN_SW == 0)
+                    {
+                        BCN_TX_STATUS = BCN_TX_DISABLED;
+                        BCN_TX_MAIN_STATUS = 0;
+                    }
                     else
                     {
                         BCN_TX_STATUS = BCN_TX_FAILURE;
@@ -282,6 +287,7 @@
              clearTxBuf();
              break;                                  //Check for flag update by COM
             } 
+         else if( BCN_SW == 0 ) break;
          for(int j = 7; j >= 0; j--)
         {
             if(BCN_SPND_TX == 1) 
@@ -289,6 +295,7 @@
                  clearTxBuf();
                  break;                                  //Check for flag update by COM
              }  
+            else if( BCN_SW == 0 ) break;
             cs = 0;
             spi.write(0xFF);
             if((SHORT_HK_data[byte_counter] & (uint8_t) pow(2.0,j))!= pow(2.0,j))
@@ -319,8 +326,8 @@
         }     
         
         if(byte_counter == 1)
-            if(BCN_SPND_TX != 1)                                  //Check for flag update by COM
-               {          
+            if(BCN_SPND_TX != 1 && BCN_SW == 1)                                  //Check for flag update by COM
+            {          
                 //Set to Tx mode
                 writereg(RF22_REG_07_OPERATING_MODE1,0x08);       //txon
                 wait(0.1);// takes time to set to tx mode hence the delay of 0.1.  
@@ -338,7 +345,7 @@
         //Check for fifoThresh
         
         if(byte_counter > 0)
-            if(BCN_SPND_TX != 1)                                  //Check for flag update by COM
+            if(BCN_SPND_TX != 1 && BCN_SW ==1)                                  //Check for flag update by COM
             {
                 wait_ms(25);
                 while( timeout_count --)if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x20) == 0x20)break;else if(timeout_count == 1) reset_rfm(1);
@@ -364,12 +371,13 @@
              clearTxBuf();
              break;                                  //Check for flag update by COM
         } 
+        else if( BCN_SW == 0 ) break;
         cs = 0;
         spi.write(0xFF);   
         spi.write(LONG_HK_data[BCN_LONG_MSG_TYPE][byte_counter-15]);
         cs = 1;
         
-        if((byte_counter-15)%32==0 && BCN_SPND_TX != 1)
+        if((byte_counter-15)%32==0 && BCN_SPND_TX == 0 && BCN_SW == 1)
         {   //Check for fifoThresh
             wait_ms(25);
             while(timeout_count--)if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x20) == 0x20)break;else if(timeout_count == 1) reset_rfm(1); 
@@ -381,29 +389,32 @@
         
     }
     wait_ms(70);
-    //Check for fifoThresh
-    while(timeout_count--)
-        if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x40) == 0x00) break;
-        else if(timeout_count == 1)
-            if(BCN_SPND_TX != 1) reset_rfm(1);
     
-    while(timeout_count--)if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x40) == 0x00)break;else if(timeout_count == 1) reset_rfm(1);
+    if( BCN_SW == 1 )
     {
-        pc_bcn.printf("Waiting for fifo to empty\r\n");
+        //Check for fifoThresh
+        while(timeout_count--)
+            if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x40) == 0x00) break;
+            else if(timeout_count == 1)
+                if(BCN_SPND_TX != 1) reset_rfm(1);
+        
+        while(timeout_count--)if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x40) == 0x00)break;else if(timeout_count == 1) reset_rfm(1);
+        {
+            pc_bcn.printf("Waiting for fifo to empty\r\n");
+        }
+        
+        //Check for packetsent interrupt
+        while(timeout_count--)
+            if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x04) == 0x04) break;
+            else if(timeout_count == 1)
+                if(BCN_SPND_TX != 1) reset_rfm(1);
+        
+        while(timeout_count--)if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x04) == 0x04)break;else if(timeout_count == 1) reset_rfm(1);
+        
+        //pc_bcn.printf("Short packet sent, bytes written = %d\r\n",byte_count);
+        
+        writereg(RF22_REG_07_OPERATING_MODE1,0x00);        //standby mode
     }
-    
-    //Check for packetsent interrupt
-    while(timeout_count--)
-        if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x04) == 0x04) break;
-        else if(timeout_count == 1)
-            if(BCN_SPND_TX != 1) reset_rfm(1);
-    
-    while(timeout_count--)if((readreg(RF22_REG_03_INTERRUPT_STATUS1) & 0x04) == 0x04)break;else if(timeout_count == 1) reset_rfm(1);
-    
-    //pc_bcn.printf("Short packet sent, bytes written = %d\r\n",byte_count);
-    
-    writereg(RF22_REG_07_OPERATING_MODE1,0x00);        //standby mode
-    
 }
 
 void reset_rfm(uint8_t fl)