Simple version of COM_MNG_TMTC_CODE for IITMSAT.

Dependencies:   mbed-rtos mbed FreescaleIAP SimpleDMA

Revision:
142:83f48d1a1bc5
Parent:
140:be4eea8275c3
Child:
143:d81df402a016
--- a/OBSRS.h	Sat Mar 12 14:57:36 2016 +0000
+++ b/OBSRS.h	Tue Mar 29 14:22:55 2016 +0000
@@ -11,7 +11,7 @@
 #define T_frames_in_segment 40
 
 using namespace std;
-Base_tc *current_obsrs_tc = NULL;
+Base_tc *current_obsrs_tc = NULL;   
 Base_tm *callsign = NULL;
 bool send_EoS_and_stop = false;
 bool adf_limit = false;
@@ -68,7 +68,7 @@
 uint8_t buffer_512[512]; 
 //unsigned char Ack_andcallsign[318]={0x0A,0x3F,0x46,0xB4,0x00,0x38,0x90,0x7B,0x40,0x01,0x56,0x45,0xE0,0x3C,0xA0,0x7A,0x90,0x3D,0xE6,0x3E,0x70,0x21,0x42,0x43,0x3C,0x0C,0x20,0x00,0x4C,0x83,0x12,0x67,0xF0,0x8F,0x36,0x60,0x3C,0x86,0x24,0x06,0x80,0x20,0x54,0x22,0x9C,0x07,0x2A,0x00,0x8C,0x0F,0x7A,0x25,0x50,0x88,0x50,0x5F,0x8C,0xAB,0x0A,0x7A,0xCC,0x10,0xC4,0x25,0x10,0xB3,0xCE,0x5F,0x40,0xA1,0x8A,0x05,0xD0,0x90,0x14,0x7E,0x00,0x09,0xCA,0x7F,0xA0,0x1B,0xDE,0x00,0x70,0x12,0x14,0x7D,0x50,0x2A,0xC0,0x7D,0x20,0x14,0x30,0x04,0x4C,0x3C,0xF0,0x02,0xEC,0x28,0x60,0x45,0xA0,0x04,0x04,0x47,0x1C,0x22,0x70,0x02,0xE0,0x26,0xF4,0x41,0xFC,0x04,0x84,0x04,0x9C,0x0A,0xB0,0x41,0x40,0x25,0x0C,0xBF,0x9C,0x2F,0x3C,0xF8,0x5C,0x0A,0x18,0x4A,0xC0,0x21,0x00,0xB2,0x80,0x58,0x9C,0x8A,0x00,0x79,0xBC,0x7D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x3F,0x46,0xB4,0x00,0x10,0x28,0x3E,0x3C,0x46,0x94,0x7D,0xB8,0x21,0x20,0x42,0x04,0x77,0xB4,0xB7,0x84,0x53,0x94,0x03,0xA0,0x20,0x08,0xF4,0x00,0x47,0x34,0xF7,0x60,0x63,0x3C,0x01,0xC0,0x24,0x08,0xF3,0xA0,0x11,0xA0,0xF3,0x60,0x68,0x48,0x08,0xB8,0x7D,0xE8,0x0D,0xF8,0x14,0xE0,0x83,0xC0,0x48,0x00,0x8E,0xB8,0x91,0xC8,0x05,0x40,0xD8,0xC8,0x8B,0xF8,0xC9,0x00,0x0D,0x38,0x04,0x68,0x86,0x80,0x9A,0x11,0x7B,0xB8,0x9F,0x79,0xF8,0x38,0x05,0x38,0x99,0x80,0xD2,0x01,0x69,0x80,0x24,0x71,0x14,0x80,0xF6,0x30,0xFE,0x80,0x72,0x41,0xE9,0x00,0x01,0x19,0x17,0x80,0xE6,0x81,0xEA,0x40,0x67,0xD8,0xFD,0xC0,0x81,0x48,0x1E,0xF0,0x34,0x81,0x13,0x30,0x09,0x19,0x8D,0xC8,0xBD,0x88,0x84,0xF8,0x9C,0x90,0x1C,0x00,0x00,0x41,0x8C,0x78,0x39,0xA9,0x12,0x30,0x19,0xF8,0x87,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 uint32_t list_of_FSC[43]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x40,0x41,0x42,0x43};
-//uint8_t write_buffer[512] = {0x38,0x90,0x7B,0x40,0x01,0x56,0x45,0xE0,0x3C,0xA0,0x7A,0x90,0x3D,0xE6,0x3E,0x70,0x21,0x42,0x43,0x3C,0x0C,0x20,0x00,0x4C,0x83,0x12,0x67,0xF0,0x8F,0x36,0x60,0x3C,0x86,0x24,0x06,0x80,0x20,0x54,0x22,0x9C,0x07,0x2A,0x00,0x8C,0x0F,0x7A,0x25,0x50,0x88,0x50,0x5F,0x8C,0xAB,0x0A,0x7A,0xCC,0x10,0xC4,0x25,0x10,0xB3,0xCE,0x5F,0x40,0xA1,0x8A,0x05,0xD0,0x90,0x14,0x7E,0x00,0x09,0xCA,0x7F,0xA0,0x1B,0xDE,0x00,0x70,0x12,0x14,0x7D,0x50,0x2A,0xC0,0x7D,0x20,0x14,0x30,0x04,0x4C,0x3C,0xF0,0x02,0xEC,0x28,0x60,0x45,0xA0,0x04,0x04,0x47,0x1C,0x22,0x70,0x02,0xE0,0x26,0xF4,0x41,0xFC,0x04,0x84,0x04,0x9C,0x0A,0xB0,0x41,0x40,0x25,0x0C,0xBF,0x9C,0x2F,0x3C,0xF8,0x5C,0x0A,0x18,0x4A,0xC0,0x21,0x00,0xB2,0x80,0x58,0x9C,0x8A,0x00,0x79,0xBC,0x7D,0x00,0x10,0x28,0x3E,0x3C,0x46,0x94,0x7D,0xB8,0x21,0x20,0x42,0x04,0x77,0xB4,0xB7,0x84,0x53,0x94,0x03,0xA0,0x20,0x08,0xF4,0x00,0x47,0x34,0xF7,0x60,0x63,0x3C,0x01,0xC0,0x24,0x08,0xF3,0xA0,0x11,0xA0,0xF3,0x60,0x68,0x48,0x08,0xB8,0x7D,0xE8,0x0D,0xF8,0x14,0xE0,0x83,0xC0,0x48,0x00,0x8E,0xB8,0x91,0xC8,0x05,0x40,0xD8,0xC8,0x8B,0xF8,0xC9,0x00,0x0D,0x38,0x04,0x68,0x86,0x80,0x9A,0x11,0x7B,0xB8,0x9F,0x79,0xF8,0x38,0x05,0x38,0x99,0x80,0xD2,0x01,0x69,0x80,0x24,0x71,0x14,0x80,0xF6,0x30,0xFE,0x80,0x72,0x41,0xE9,0x00,0x01,0x19,0x17,0x80,0xE6,0x81,0xEA,0x40,0x67,0xD8,0xFD,0xC0,0x81,0x48,0x1E,0xF0,0x34,0x81,0x13,0x30,0x09,0x19,0x8D,0xC8,0xBD,0x88,0x84,0xF8,0x9C,0x90,0x1C,0x00,0x00,0x41,0x8C,0x78,0x39,0xA9,0x12,0x30,0x19,0xF8,0x87,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
+uint8_t write_buffer[512] = {0x38,0x90,0x7B,0x40,0x01,0x56,0x45,0xE0,0x3C,0xA0,0x7A,0x90,0x3D,0xE6,0x3E,0x70,0x21,0x42,0x43,0x3C,0x0C,0x20,0x00,0x4C,0x83,0x12,0x67,0xF0,0x8F,0x36,0x60,0x3C,0x86,0x24,0x06,0x80,0x20,0x54,0x22,0x9C,0x07,0x2A,0x00,0x8C,0x0F,0x7A,0x25,0x50,0x88,0x50,0x5F,0x8C,0xAB,0x0A,0x7A,0xCC,0x10,0xC4,0x25,0x10,0xB3,0xCE,0x5F,0x40,0xA1,0x8A,0x05,0xD0,0x90,0x14,0x7E,0x00,0x09,0xCA,0x7F,0xA0,0x1B,0xDE,0x00,0x70,0x12,0x14,0x7D,0x50,0x2A,0xC0,0x7D,0x20,0x14,0x30,0x04,0x4C,0x3C,0xF0,0x02,0xEC,0x28,0x60,0x45,0xA0,0x04,0x04,0x47,0x1C,0x22,0x70,0x02,0xE0,0x26,0xF4,0x41,0xFC,0x04,0x84,0x04,0x9C,0x0A,0xB0,0x41,0x40,0x25,0x0C,0xBF,0x9C,0x2F,0x3C,0xF8,0x5C,0x0A,0x18,0x4A,0xC0,0x21,0x00,0xB2,0x80,0x58,0x9C,0x8A,0x00,0x79,0xBC,0x7D,0x00,0x10,0x28,0x3E,0x3C,0x46,0x94,0x7D,0xB8,0x21,0x20,0x42,0x04,0x77,0xB4,0xB7,0x84,0x53,0x94,0x03,0xA0,0x20,0x08,0xF4,0x00,0x47,0x34,0xF7,0x60,0x63,0x3C,0x01,0xC0,0x24,0x08,0xF3,0xA0,0x11,0xA0,0xF3,0x60,0x68,0x48,0x08,0xB8,0x7D,0xE8,0x0D,0xF8,0x14,0xE0,0x83,0xC0,0x48,0x00,0x8E,0xB8,0x91,0xC8,0x05,0x40,0xD8,0xC8,0x8B,0xF8,0xC9,0x00,0x0D,0x38,0x04,0x68,0x86,0x80,0x9A,0x11,0x7B,0xB8,0x9F,0x79,0xF8,0x38,0x05,0x38,0x99,0x80,0xD2,0x01,0x69,0x80,0x24,0x71,0x14,0x80,0xF6,0x30,0xFE,0x80,0x72,0x41,0xE9,0x00,0x01,0x19,0x17,0x80,0xE6,0x81,0xEA,0x40,0x67,0xD8,0xFD,0xC0,0x81,0x48,0x1E,0xF0,0x34,0x81,0x13,0x30,0x09,0x19,0x8D,0xC8,0xBD,0x88,0x84,0xF8,0x9C,0x90,0x1C,0x00,0x00,0x41,0x8C,0x78,0x39,0xA9,0x12,0x30,0x19,0xF8,0x87,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 //const unsigned char EXOR_SEQ[] = {0x55,0xF1,0x51,0x3D,0xA7,0x42,0xAE,0x2E,0x2E,0x28,0x76,0x80,0x62,0x41,0xC4,0x75,0x4D,0x87,0xDB,0xE1,0x02,0x61,0x60,0x96,0x9C,0xCB,0x8A,0xBD,0x37,0xE4,0x72,0x5D,0xF2,0x19,0x62,0x06,0x9A,0xF9,0x38,0xB0,0x49,0x75,0xD0,0x17,0x1B,0xCC,0x0B,0xEB,0x1B,0x50,0xA2,0x2A,0x8E,0xFA,0x4D,0x6F,0x1B,0xF8,0x0F,0x97,0x39,0x25,0x60,0x55,0x9A,0xDF,0x1D,0x10,0x7F,0xBD,0x3E,0xBF,0xE5,0x68,0x02,0xD1,0x99,0x0D,0xDF,0x84,0x2E,0x15,0xE3,0x08,0xD7,0x44,0x10,0x41,0xCE,0x93,0xF6,0x59,0x71,0xD2,0xF7,0x1C,0x4A,0x44,0x2D,0xA9,0x44,0x98,0x3A,0x00,0x71,0xCC,0x2A,0x35,0xC1,0x81,0xCF,0x44,0xF7,0x6A,0x0E,0xE4,0xF2,0xFC,0xD6,0x0B,0xA8,0x95,0x7B,0x86,0xB5,0xF8,0x33,0xE9,0xBF,0x6A,0x0E,0xE6,0x53,0x82};
 //const unsigned char FCCH80[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
 //const unsigned char SCH40[] = {0x0a,0x3f,0x46,0xb4,0x00};
@@ -87,7 +87,7 @@
     }\
     uint16_t crc = crc16_gen(ackl234new->TM_string, TM_SHORT_SIZE-2);\
     ackl234new->TM_string[11] = (crc & 0xFF00) >> 8;\
-    ackl234new->TM_string[12] = crc & 0x00FF;    \
+    ackl234new->TM_string[12] = crc & 0x00FF;\
 }
 
 void restart_adf(){
@@ -161,6 +161,7 @@
             buffer_112[counter_buffer_112] = SCH40[counter_SCH40++];\
             if (counter_SCH40 == 5)\
             {   \
+                gPC.printf("Asch40 sent\r\n");\
                 counter_SCH40 = 0;\
                 enable_SCH = false;\
                 enable_DS = true;\
@@ -171,6 +172,7 @@
             buffer_112[counter_buffer_112] = interleave_data[half_buffer][counter_interleavedata++];\
             if (counter_interleavedata == 144)\
             {   \
+                gPC.printf("Ads sent\r\n");\
                 enable_DS = false;\
                 enable_FCCH = true;\
             }\
@@ -180,6 +182,7 @@
             buffer_112[counter_buffer_112] = FCCH80[counter_FCCH80++];\
             if (counter_FCCH80 == 10)\
             {\
+                gPC.printf("Afcch80 sent\r\n");\
                 enable_FCCH = false;\
                 if(half_buffer == 0){\
                     enable_SCH = true;\
@@ -233,7 +236,7 @@
     else if(send_EoS_and_stop){\
         buffer_112[counter_buffer_112] = EoS[counter_EoS++];\
         if(counter_EoS == 120){\
-            /*cout<<"segments_sent = "<<segments_sent<<ENDL;*/\
+            gPC.printf("A eos sent\r\n");\
             /*cout<<"EoS sent"<<ENDL;*/\
             counter_EoS = 0;\
             enable_ackandcallsign = false;\
@@ -269,13 +272,15 @@
                     enable_call_sign = true;\
                     new_OBSRS_TC = false;\                   
                     get_call_sign(callsign);\
-                    snd_tm.head_pointer(callsign);\
+                    snd_tm.head_pointer_sdcard(callsign);\
                     int temp = snd_tm.make_shor_tm();\
                     delete callsign;\
                     gPC.printf("new tc\r\n");\
                }\
                else{\
+                   if(!enable_ackandcallsign){\
                    enable_read_block = true;\
+                   }\
                 }\
         }\
 }
@@ -287,7 +292,7 @@
             if (counter_SCH40 == 5)\
             {   \
                 counter_SCH40 = 0;\
-                gPC.printf("sch40 sent\r\n");\
+                gPC.printf("csch40 sent\r\n");\
                 enable_SCH = false;\
                 enable_DS = true;\
             }\
@@ -295,13 +300,13 @@
         else if (enable_DS)\
         {\
             buffer_112[counter_buffer_112] = interleave_data[half_buffer][counter_interleavedata++];\
-            gPC.printf("sending ds\r\n");\
+            /*gPC.printf("csending ds %d \r\n",counter_interleavedata);*/\
             if (counter_interleavedata == 144)\
             {   \
                 enable_DS = false;\
                 enable_FCCH = true;\
-                counter_interleavedata = 0;\
-                gPC.printf("ds sent sent\r\n");\
+                /*counter_interleavedata = 0;not required here*/\
+                gPC.printf("cds sent sent \r\n");\
             }\
         }\
         else if (enable_FCCH)\
@@ -312,14 +317,16 @@
                 enable_FCCH = false;\
                 if(half_buffer == 0){\
                     enable_SCH = true;\
+                    counter_interleavedata = 0;\
                     half_buffer = 1;\
                     counter_FCCH80 = 0;\
-                    gPC.printf("fcch sent\r\n");\
+                    gPC.printf("cfcch sent\r\n");\
                 }\
             }\
         }\
         if((counter_interleavedata == 144) && (half_buffer ==1)){\
             counter_interleavedata = 0;\
+            gPC.printf("cfcch sent\r\n");\
             half_buffer =0;\
             enable_call_sign = false;\   
             new_session =false;\
@@ -353,6 +360,7 @@
 
 
 void send_tm_from_SD_card_fun(){
+    gPC.printf("\n\rsend tm sd called\r\n");
     for(counter_buffer_112=0;counter_buffer_112<112;counter_buffer_112++){
         if(enable_new_segment){                     // starting new segment
             send_S_frame;
@@ -369,7 +377,7 @@
                         buffer_112[counter_buffer_112] = SCH40[counter_SCH40++];
                         if (counter_SCH40 == 5)
                         {   
-//                            cout<<"sch sent"<<ENDL;
+                            gPC.printf("tsch40 sent\r\n");\
                             counter_SCH40 = 0;
                             enable_SCH = false;
                             enable_DS = true;
@@ -380,7 +388,7 @@
                         buffer_112[counter_buffer_112] = buffer_512[counter_buffer_512++];
                         if ((counter_buffer_512 == 288) || (counter_buffer_512 == 144))
                         {   
-//                            cout<<"ds sent"<<ENDL;
+                            gPC.printf("tds sent\r\n");
 //                            counter_buffer_512 = 0;
                             enable_DS = false;
                             enable_FCCH = true;
@@ -391,7 +399,7 @@
                         buffer_112[counter_buffer_112] = FCCH80[counter_FCCH80++];
                         if (counter_FCCH80 == 10)
                         {
-//                            cout<<"fcch sent"<<ENDL;
+                            gPC.printf("tfcch80 sent\r\n");
                             enable_FCCH = false;
                             if(counter_buffer_512 == 144){
                                 enable_SCH = true;
@@ -409,6 +417,7 @@
 //                        cout<<"T_frames_sent "<<T_frames_sent<<ENDL;
                         if(last_block){
 //                            cout<<"last block"<<endl<<"\r";
+                            gPC.printf("last block\r\n");
                             enable_read_block = false;
                             enable_T_frame = false;
                             enable_ackandcallsign = true;
@@ -488,18 +497,23 @@
         }
         else if(enable_ackandcallsign){
             if(create_Ack_andcallsign){
+                gPC.printf("cr ack\r\n");
                 enable_SCH = true;
                 create_Ack_andcallsign = false;
                 Base_tm *ack_and_callsign = NULL;
                 Base_tm *ack_head = NULL;
                 get_call_sign(ack_and_callsign);
+                gPC.printf("test 1\r\n");
                 ack_head = ack_and_callsign;
                 get_ack_l1(ack_and_callsign->next_TM);
+                gPC.printf("test 2\r\n");
                 while(ack_and_callsign->next_TM != NULL){
                     ack_and_callsign = ack_and_callsign->next_TM;
                 }
+                gPC.printf("test 3\r\n");
                 get_ack_l234(ack_and_callsign->next_TM); 
-                snd_tm.head_pointer(ack_head);
+                snd_tm.head_pointer_sdcard(ack_head);
+                gPC.printf("test 4\r\n");
                 T_frame_in_Ackandcallsign = 2*snd_tm.make_shor_tm();
                 Base_tm *ack_l234 = ack_and_callsign->next_TM;
                 uint8_t temp2 = TC_STATE_SUCCESSFULLY_EXECUTED; // see all the possible cases
@@ -522,13 +536,16 @@
                         gLAST_TM_SHORT_OR_LONG = LONG_TM_CODE;
                     }
                 }
-                ack_and_callsign = ack_head;
+                gPC.printf("test 5\r\n");
+                ack_and_callsign = ack_head->next_TM;
                 delete ack_head;
+                gPC.printf("test 6\r\n");
                 while(ack_and_callsign != NULL){
                     Base_tm *temp = ack_and_callsign->next_TM;
                     delete ack_and_callsign;
                     ack_and_callsign = temp;
                 }
+                gPC.printf("ex cr ack\r\n");
             }    
             send_Ack_andcallsign;
         }
@@ -556,9 +573,10 @@
 //                        for(int i=0;i<512;i++){
 //                        printf("0x%02X,",write_buffer[i]);
 //                        }
-                   //int write_success = SD_WRITE(write_buffer,FSC + block_counter,SID);
+                   int write_success = SD_WRITE(write_buffer,FSC + block_counter,SID);
 //                   wait_ms(8);
                    read_success = SD_READ(buffer_512, FSC + block_counter,SID);
+                   gPC.printf("read block %d \n\r",read_success);
                }
                else{
                    read_success = SD_READ(buffer_512, list_of_FSC[block_counter],SID);
@@ -607,6 +625,7 @@
     current_obsrs_tc = tcp;
     flags_init;
     sent_tmfrom_SDcard = true;
+    diff_prev = 0;
     if( GETshort_or_long_tc(tcp) == SHORT_TC_CODE ){
         short_TC = true;
         gPC.printf("it is short TC\r\n");