pl ack in tmtc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by shubham c

Revision:
132:d4a4461214ad
Parent:
130:d5b53088270b
Child:
136:8074893cd24e
--- a/COM_MNG_TMTC.h	Sat Feb 27 07:12:04 2016 +0000
+++ b/COM_MNG_TMTC.h	Mon Feb 29 13:21:40 2016 +0000
@@ -991,55 +991,44 @@
         {
             
             
-            uint8_t PL_TM_SIZE;
+            
             #if DEBUG
             printf("Telecommand is for PL\r\n");
             #endif
-            // printf("Informing PL about TC using I2C\r\n"); //interrupt to be sent to the bae
+
+
+            if(GETservice_subtype(tc_ptr) == 0xD0 || GETservice_subtype(tc_ptr) == 0xD2 || GETservice_subtype(tc_ptr) == 0xD3)
+            {
+                PL_TM_SIZE = TM_LONG_SIZE;
+            }
+            else
+            {
+                PL_TM_SIZE = TM_SHORT_SIZE;
+            }   
+                
             if(GETshort_or_long_tc(tc_ptr) == LONG_TC_CODE)
                 FCTN_I2C_WRITE_PL((char*)tc_ptr->TC_string,TC_LONG_SIZE);
             else 
+            {
                 FCTN_I2C_WRITE_PL((char*)tc_ptr->TC_string,TC_SHORT_SIZE);
-            
+            }
             
             
             while(1)
             {
                 gLEDG = !gLEDG;
                 t_pl.start();
-                if(PYLD_I2C_Int == 1)
+                if(rcv_isr == 1)
                 {
+                    gPC.printf("read_ack = %d",read_ack);
                     t_pl.stop();
-                    gPC.printf("i2c_t = %d",t_pl.read_ms());
-                    if(GETservice_subtype(tc_ptr) == 0xD0 || GETservice_subtype(tc_ptr) == 0xD2 || GETservice_subtype(tc_ptr) == 0xD3) //check which all require short TM
-                    {   
-                        FCTN_I2C_READ_PL((char*)tm_pointer->TM_string,TM_LONG_SIZE);
-                        break;
-                        }
-                    else 
-                    {
-                        FCTN_I2C_READ_PL((char*)tm_pointer->TM_string,TM_SHORT_SIZE);
+                    //gPC.printf("i2c_t = %d",t_pl.read_ms());  
+                        for(int i = 0;i< PL_TM_SIZE;i++)
+                        tm_pointer->TM_string[i] = PL_I2C_DATA[i];
+                        rcv_isr = 0; 
                         break;
-                        }
-                    }
-                
-                
                 }
-            
-            
-                // for(int i;i<2000;i++){if(PYLD_I2C_Int=1)i=2001;}//timeout to be defined
-                 
-                 
-                 //PL should reset the i2c pin
-                 
-            //     received = 1;
-            // }
-            // if(received == 1 )
-            // {
-            //     printf("Telemetry is received from BAE\r\n");
-            //     printf("%s", tm_ptr->TM_string);
-            //     received  = 0;
-            // } // similar to BAE functions
+            }
             tm_pointer->next_TM = NULL;                 return tm_ptr;
             break;
         }