pl ack in tmtc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by shubham c

Revision:
2:2caf2a9a13aa
Parent:
1:a0055b3280c8
Child:
3:6c81fc8834e2
--- a/adf.h	Mon Dec 14 12:04:01 2015 +0000
+++ b/adf.h	Tue Dec 22 06:09:48 2015 +0000
@@ -1,6 +1,5 @@
 //without reset feature , with state checks.
-DigitalOut led2(LED_RED);
-InterruptIn IRQ(PTA14);
+InterruptIn IRQ(ADF_IRQ);
 Ticker ticker;
 
 bool sent_tmfrom_SDcard;
@@ -10,8 +9,8 @@
 uint8_t signal = 0x00;
 unsigned char bbram_buffer[66]={0x19,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0xF4,0xC2,0x10,0xC0,0x00,0x30,0x31,0x07,0x00,0x01,0x00,0x7F,0x00,0x0B,0x37,0x00,0x00,0x40,0x0C,0x00,0x05,0x00,0x00,0x18,0x12,0x34,0x56,0x10,0x10,0xC4,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00};
 
-int initialise_card();
-int disk_initialize();
+//int initialise_card();
+//int disk_initialize();
 
 #define bbram_write {\
      SPI_mutex.lock();\
@@ -132,18 +131,24 @@
 #define initial_adf_check {\
     spi.write(CMD_PHY_OFF);\
     int tempReturn = 0;\
+    bool flag = false;\
     while( hw_reset_err_cnt < 2 ){\
         assrt_phy_off( tempReturn);\
         if( !tempReturn ){\
             bbram_write;\
             bbram_flag=1;\
+            flag = true;\
             break;\
         }\
         else{\
             hardware_reset(0);\
             hw_reset_err_cnt++;\
+            gPC.puts("Resetting hardware\r\n");\
         }\
     }\
+    if( flag == false ){\
+        gPC.puts("Seems to be SPI problem\r\n");\
+    }\
     assrt_phy_off(tempReturn);\
     if(!bbram_flag){\
         bcn_flag=1;\
@@ -478,7 +483,7 @@
     initiate;\
     send_data;\
     while(loop_on){\
-        led2=!led2;\
+        /*led2=!led2;*/\
         Thread::signal_wait(COM_MNG_TMTC_SIGNAL_ADF_SD);\
         if(ADF_off){\
             SPI_mutex.lock();\
@@ -510,7 +515,14 @@
     gPC.puts("sending from sd card\r\n");
     adf_SND_SDCard;
 }
-    
+
+//Timeout ADF_non_responsive_timeout;
+//bool ADF_non_responsive_flag = false;
+//
+//void ADF_non_responsive_fun(){
+//    ADF_non_responsive_flag = true;
+//    gCOM_MNG_TMTC_THREAD->signal_set(signal);
+//}
 
 void adf_not_SDcard(){
     buffer_state = true;
@@ -523,23 +535,31 @@
     initial_adf_check;
     initiate;
     send_data;
+    
+//    gPC.puts("Inside adf transmission\r\n");
+//    ADF_non_responsive_timeout.attach(&ADF_non_responsive_fun, 10);
 
     while(loop_on){
-        led2=!led2;
         Thread::signal_wait(COM_MNG_TMTC_SIGNAL_ADF_NSD);
-        if(ADF_off){
-            SPI_mutex.lock();
-            ticker.detach();
-//            wait_ms(35); 
-            gCS_ADF=0;
-            spi.write(0xB1);
-            gCS_ADF=1;
-            SPI_mutex.unlock();
-            loop_on = false;
-        }else{   
-            write_data;
-            snd_tm.transmit_data(buffer_112,&last_buffer);
-        }
+//        if( ADF_non_responsive_flag == false ){
+            if(ADF_off){
+                SPI_mutex.lock();
+                ticker.detach();
+    //            wait_ms(35); 
+                gCS_ADF=0;
+                spi.write(0xB1);
+                gCS_ADF=1;
+                SPI_mutex.unlock();
+                loop_on = false;
+            }else{   
+                write_data;
+                snd_tm.transmit_data(buffer_112,&last_buffer);
+            }
+//        }
+//        else{
+//            gPC.puts("ADF non responsive\r\n");
+//            break;
+//        }
     }
 }
  
\ No newline at end of file