Repository for CDMS code

Dependencies:   SimpleDMA mbed-rtos mbed eeprom

Fork of COM_MNG_TMTC_SIMPLE by Shreesha S

Revision:
338:d63eb331a67d
Parent:
333:cddef120cae3
Child:
342:77b0d59897f7
--- a/ThreadsAndFunctions.h	Sun Jan 01 09:50:36 2017 +0000
+++ b/ThreadsAndFunctions.h	Mon Jan 02 14:21:44 2017 +0000
@@ -4,6 +4,10 @@
 #include "COM_MNG_TMTC.h"
 #include "adf.h"
 
+#include "dmaSPIslave.h"
+
+dmaSPISlave *gPAY_SPI;
+
 void payload_isr_fun(){
     gSCIENCE_THREAD->signal_set(SCIENCE_SIGNAL);
 }
@@ -13,7 +17,6 @@
 }
 
 void SCIENCE_FUN(void const *args){
-    gPAY_SPI = new dmaSPISlave(PAY_SPI_MOSI, PAY_SPI_MISO, PAY_SPI_CLK, PAY_SPI_CS);
    // gPAY_SPI->frequency(1000000);   //1000000
     gPAY_SPI->format(8,0); 
     gPC.printf("\n\rTest...........................");
@@ -64,6 +67,10 @@
 // UART ISR
 void rx_read(){
     gRX_CURRENT_DATA_NODE->values[gRX_COUNT] = RX1M.getc();
+    //Checking RSSI
+    if(!COM_RSSI_SET)
+    RSSI_VOLTAGE = COMRX_RSSI_VOLTAGE.read() * 3.3;//to be checked
+    COM_RSSI_SET = 1;
     gFLAGS = gFLAGS | UART_INT_FLAG;
     gCOM_MNG_TMTC_THREAD->signal_set(COM_MNG_TMTC_SIGNAL_UART_INT);
 }
@@ -85,9 +92,9 @@
 void after_session(){
     gSESSION_TIMEOUT.detach();
     gFLAGS = gFLAGS | COM_SESSION_TIMEOUT_FLAG;
-    if( gMASTER_STATE != TCL_STATE_EXECUTING ){
+    //if( gMASTER_STATE != TCL_STATE_EXECUTING ){
         gCOM_MNG_TMTC_THREAD->signal_set(COM_MNG_TMTC_SIGNAL_UART_INT);
-    }
+    //}
 }
 
 #define reset_all {\
@@ -153,7 +160,7 @@
                 HK_counter->stop();
                 gPAY_SPI->bulkRead_pause();
                 gFLAGS = gFLAGS | COM_SESSION_FLAG;
-                gSESSION_TIMEOUT.attach(&after_session, SESSION_TIME_LIMIT);
+                gSESSION_TIMEOUT.attach(&after_session, COM_SESSION_TIMEOUT);
                 gFLAGS = gFLAGS | COM_RX_FLAG;
                 gTOTAL_RAW_BYTES = 0;
                 PUT_RAW_BYTE;
@@ -203,6 +210,7 @@
             
             if( gTOTAL_VALID_TC > 0 ){
                 gPC.printf("valid TC rx: %u\r\n", gTOTAL_VALID_TC);
+                //gTOTAL_VALID_TC = 1;
                 if( gTOTAL_VALID_TC < COM_MAX_TC_LIMIT ){
                     // CHECK WEATHER TC LIST HAS MISSING TC OR WEATHER LAST FRAME BIT IS HIGH IN THE LAST PSC-TC
                     //gPC.puts("checking for tc list complete\r\n");
@@ -235,6 +243,7 @@
                                 EXECUTE_OBOSC_ONLY;
                                 EXECUTE_TC;
                                 gPC.puts("COMPLETED EXECUTION\r\n");
+                                gPC.printf("master_state : %d\n",gMASTER_STATE);
                             }
                         }
                         else{
@@ -244,7 +253,8 @@
                             gFLAGS = gFLAGS & (~COM_SESSION_VALIDITY);
                             // ENABLE THREADS
                             HK_counter->start(10000);
-                            gPAY_SPI->bulkRead_resume(&payload_isr_fun);
+                            resume_pl_dma = 1;
+                            //gPAY_SPI->bulkRead_resume(&payload_isr_fun);
                             gSESSION_TIMEOUT.detach();
                             gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
                             // WARNING: clear COM_MNG_TMTC ?
@@ -303,7 +313,7 @@
                 reset_all;
                 // ENABLE THREADS
                 HK_counter->start(10000);
-                gPAY_SPI->bulkRead_resume(&payload_isr_fun);
+                resume_pl_dma = 1;
                 gSESSION_TIMEOUT.detach();
                 gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
             }
@@ -332,7 +342,7 @@
             COM_POWER_OFF_TX;
             /*ENABLE THREADS*/
             HK_counter->start(10000);
-            gPAY_SPI->bulkRead_resume(&payload_isr_fun);
+            resume_pl_dma = 1;
             gSESSION_TIMEOUT.detach();
             gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
             gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
@@ -345,11 +355,19 @@
             reset_all;
             // ENABLE THREADS
             HK_counter->start(10000);
-            gPAY_SPI->bulkRead_resume(&payload_isr_fun);
+            resume_pl_dma = 1;
             gSESSION_TIMEOUT.detach();
             gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
         }
+        if(resume_pl_dma)
+        {
+            
+            
+            resume_pl_dma = 0;
+        }
+        //gPC.puts("dma started");
         gPAY_SPI->bulkRead_resume(&payload_isr_fun);
         gMutex.unlock();
+        
     }
 }
\ No newline at end of file