Repository for CDMS code

Dependencies:   SimpleDMA mbed-rtos mbed eeprom

Fork of COM_MNG_TMTC_SIMPLE by Shreesha S

Revision:
346:204497974293
Parent:
342:77b0d59897f7
Child:
348:8e6b2b4d244e
--- a/ThreadsAndFunctions.h	Thu Jan 05 17:38:21 2017 +0000
+++ b/ThreadsAndFunctions.h	Fri Jan 13 08:00:33 2017 +0000
@@ -3,13 +3,13 @@
 
 #include "COM_MNG_TMTC.h"
 #include "adf.h"
-
 #include "dmaSPIslave.h"
 
 dmaSPISlave *gPAY_SPI;
 
 void payload_isr_fun(){
     gSCIENCE_THREAD->signal_set(SCIENCE_SIGNAL);
+  
 }
 
 void payload_isr_fun_dma(void const *args ){
@@ -28,9 +28,13 @@
     while(true){
         gPC.printf("waiting for Sci sig\n\r");
         gSCIENCE_THREAD->signal_wait(SCIENCE_SIGNAL);
+         
         gPC.printf("checking mutex in Sci\n\r");
         gMutex.lock();
+        
         gPC.printf("locked mutex,entered in Sci thread\n\r"); 
+  
+        DMA_LED1 = 1;
         PL_RCV_SC_DATA_STATUS = 1;
         //gPC.puts("sig_set\r\n");
         //for(int i =0; i<PAYLOAD_BUFFER_LENGTH; i++)
@@ -41,10 +45,10 @@
         //wait(2);/*timeout to be decided*/
         if(dma)
         {
-            TIME_LATEST_I2C_SPEED = FCTN_CDMS_RD_RTC() >> 7;   
+     //       TIME_LATEST_I2C_SPEED = FCTN_CDMS_RD_RTC() >> 7;   
             PL_RCV_SC_DATA_COUNTER++;
             gPAY_SPI->bulkRead_start();
-            DMA_LED1 = !DMA_LED1; // added by samp
+         //     DMA_LED1 = !DMA_LED1; // added by samp
             //gPAY_SPI->bulkRead_pause();
             //gPAY_SPI->bulkRead_resume(&payload_isr_fun);
         }
@@ -52,9 +56,35 @@
         
         srp(gPAYLOAD_BUFFER);//skip one apcket when cdms resets
     
+      uint8_t sd_stat1 = 0;
+        if(BAE_HK_SD_DATA_READY==1)
+                {
+                for(int i=0; i<288; i++)
+                    BAE_HEALTH_FINAL[i] = interleave_BAE_HK[i];
+                sd_stat1 = SD_WRITE(BAE_HEALTH_FINAL,FSC_CURRENT[5]+1,5);
+                if(sd_stat1) {
+                    gPC.puts("BAE_HK sd write fail");
+                    //break;
+                }
+                
+                }
+                BAE_HK_SD_DATA_READY = 0;
+        if(CDMS_HK_SD_DATA_READY==1)
+        {
+        for(int i=0; i<288; i++)
+            CDMS_HEALTH_FINAL[i] = interleave_CDMS_HK[i];
+        //gPC.printf("\n\r reached here");
+        sd_stat1 = SD_WRITE(CDMS_HEALTH_FINAL,FSC_CURRENT[4]+1,4);
+        
+        if(sd_stat1) {
+            gPC.puts("sd write failure $*&^@!~!");
+        }
+        }
+        CDMS_HK_SD_DATA_READY= 0;
         /*else
         gPC.printf("\n\rDMA error");*/
         gPC.printf("\r\nreleasing mutex for Sci\n\r");
+        DMA_LED1 =0;
         gMutex.unlock(); 
     }
 }
@@ -62,7 +92,9 @@
 //HK Thread(Contains HK_main() and PL_main())
 //RTOS timer calllback func
 void hk_isr(void const *args){
+    //gPC.printf("\r\n HK isr \n\r");
     gHK_THREAD->signal_set(HK_SIGNAL);
+    // gPC.printf("\r\n HK 1 \n\r");
 }
 
 
@@ -162,6 +194,7 @@
                 // DISABLE THREADS
                 HK_counter->stop();
                 gPAY_SPI->bulkRead_pause();
+                 PL_GPIO_1_STATUS=0;
                 gFLAGS = gFLAGS | COM_SESSION_FLAG;
                 gSESSION_TIMEOUT.attach(&after_session, COM_SESSION_TIMEOUT);
                 gFLAGS = gFLAGS | COM_RX_FLAG;