MARCH 9th

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of workinQM_5thJan_azad by Team Fox

Files at this revision

API Documentation at this revision

Comitter:
samp1234
Date:
Tue Mar 28 08:48:42 2017 +0000
Parent:
100:af43bc82d3eb
Commit message:
Fixed and Tested Minmax

Changed in this revision

BCN.cpp Show annotated file Show diff for this revision Revisions of this file
EPS.cpp Show annotated file Show diff for this revision Revisions of this file
TCTM.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/BCN.cpp	Thu Mar 09 08:08:10 2017 +0000
+++ b/BCN.cpp	Tue Mar 28 08:48:42 2017 +0000
@@ -35,7 +35,7 @@
 uint8_t BCN_TX_SW_STATUS = 1;
 uint8_t BCN_FEN = 0;                //hardcoding for now    //write this value to flash
 uint8_t BCN_SPND_TX = 0;            //hardcoding for now    //check where is this variable toggled??
-uint8_t BCN_TMP = 5;          // For Temperature
+int BCN_TMP = 5;          // For Temperature
 uint8_t ERROR_CHECK = 0;
 uint8_t BCN_FAIL_COUNT = 0;         //Flag for keeping count of no. of times of BCN failure in init or one transmission in 30 secs (failure in spi communication)
                                     //This Flag when exceeds a threshold, uC should reset.
@@ -72,23 +72,24 @@
     SHORT_HK_data[5] = 0x28;
     SHORT_HK_data[6] = 0x8A;
     
-    SHORT_HK_data[7] = (quant_data.voltage_quant[0]/10)<<4; // bat voltage: changed by samp from quant_data.voltage_quant[15] to quant_data.voltage_quant[0]
-    SHORT_HK_data[7] = (SHORT_HK_data[7] & 0xF0) | (quant_data.current_quant[0]/100); //>>4, solar bus current changed from quant_data.current_quant[1] to quant_data.current_quant[0]
+    SHORT_HK_data[7] = (quant_data.voltage_quant[0])<<4; // bat voltage: changed by samp from quant_data.voltage_quant[15] to quant_data.voltage_quant[0]
+    SHORT_HK_data[7] = (SHORT_HK_data[7] & 0xF0) | (quant_data.current_quant[0]); //>>4, solar bus current changed from quant_data.current_quant[1] to quant_data.current_quant[0]
     
     //taking only the most significant bits
     SHORT_HK_data[8] = actual_data.bit_data_acs_mg[0]>>8;
+    
     SHORT_HK_data[8] = (SHORT_HK_data[8] & 0xF0) | (BCN_TMP+50)>>3;
     //SHORT_HK_data[9] = 0xFF;
     SHORT_HK_data[9] = float_to_uint8(-50,100,EPS_BTRY_TMP_AVG);
-    SHORT_HK_data[9] = (SHORT_HK_data[9]&0xF0) | BAE_RESET_COUNTER>>4;
-    
+    SHORT_HK_data[9] = (SHORT_HK_data[9]&0xF0) | BAE_RESET_COUNTER>>4;  //
+     pc_bcn.printf("\n\n\r acs_mg = %d \n",actual_data.bit_data_acs_mg[0]);
     
     //RETURN_UPTIME(BAE_uptime.read(),&days,&hours,&mins);
     RETURN_UPTIME(BAE_uptime.read(),&days,&hours,&mins);
     
     SHORT_HK_data[10] = ~CDMS_OC_FAULT<<7;
     SHORT_HK_data[10] = (SHORT_HK_data[10]) | 0;//receiver_oc_fault//to be diss - Is it (tc[10]>>1)&0x01 ?
-    SHORT_HK_data[10] = (SHORT_HK_data[10]) | (((quant_data.voltage_quant[5]/4)<<2)&0x3C);
+    SHORT_HK_data[10] = (SHORT_HK_data[10]) | (((quant_data.voltage_quant[5])<<2)&0x3C);
     SHORT_HK_data[10] = (SHORT_HK_data[10]) | ((hours>>2)&0x03);// just for testing purpose change it to days 5 bits ((days>>3)&0x03)
     SHORT_HK_data[11] = (hours<<6) | (mins&0x3F);//(days<<5) | (hours&0x1F);
     
@@ -102,10 +103,15 @@
     SHORT_HK_data[13] = (days<<6) | (mins&0x3F);
 
     SHORT_HK_data[14] = crc8_short();   
+    pc_bcn.printf("\n\n\r  hrs = %x\n",days);
+     pc_bcn.printf("\n\n\r  min = %x\n",mins);
+     
     
     #if short_bcn_print
     pc_bcn.printf("\n\rShort BCN data:\n");
     for(int ib = 0;ib<15;ib++) pc_bcn.printf("\n\r%02x",SHORT_HK_data[ib]);
+    pc_bcn.printf("\n\rsolar Ibits= %d\n",quant_data.current_quant[0]/16);
+     pc_bcn.printf("\n\rsolar I= %d\n",quant_data.current_quant[0]);
     pc_bcn.printf("\n\rV_D = %d\n",quant_data.voltage_quant[6]);
     pc_bcn.printf("V_C = %d\n",quant_data.voltage_quant[5]);
     pc_bcn.printf("V_C in bits = %x\n",(quant_data.voltage_quant[5])&0x3C);
@@ -407,8 +413,8 @@
         }
         
     }
-    Read_I_B_IN_BCN();
-    wait_ms(70);
+  //  Read_I_B_IN_BCN();
+  //  wait_ms(70);
     
     if( BCN_SW == 1 )
     {
@@ -466,7 +472,9 @@
             }
             else if(count == 2)
             {
-                reset_rfm(1); pc_bcn.printf("reg = 0x%X\n",reg);break;
+                 reset_rfm(1);
+                 pc_bcn.printf("reg = 0x%X\n",reg);
+                 break;
             }
             else init_spi();
         }
--- a/EPS.cpp	Thu Mar 09 08:08:10 2017 +0000
+++ b/EPS.cpp	Tue Mar 28 08:48:42 2017 +0000
@@ -43,7 +43,7 @@
 extern uint8_t bb_mms[3];
 extern uint8_t singularity_flag_mms;
 extern uint8_t B_SCZ_ANGLE;
-
+extern uint16_t float_to_uint16(float min,float max,float val);
 
 //bcn
 extern uint8_t BCN_SPND_TX;
@@ -64,7 +64,7 @@
 extern uint8_t BAE_STANDBY;
 extern uint16_t BAE_I2C_COUNTER;
 extern void RETURN_UPTIME(float time, uint8_t *day,uint8_t *hour,uint8_t *min);
-
+extern uint8_t BAE_MNG_I2C_STATUS;
 //eps
 extern uint8_t ACS_INIT_STATUS;
 extern uint16_t EPS_MAIN_COUNTER;
@@ -235,7 +235,7 @@
         
         timer_soc.stop();
         
-        actual_data.Batt_voltage_actual = Batt_voltage.read()*3.3; //1 corresponds to 3.3 scaling factor
+        actual_data.Batt_voltage_actual = Batt_voltage.read()*3.3*62/11; //1 corresponds to 3.3 scaling factor
         FCTN_EPS_POWERMODE(actual_data.Batt_gauge_actual[1]);
         eps_pc.printf("Power Level: %d\n\r", actual_data.power_mode);
         EPS_BATTERY_GAUGE_STATUS = 1;               //set EPS_BATTERY_GAUGE_STATUS
@@ -560,16 +560,30 @@
     for(Iteration=0;Iteration<16;Iteration++){
       
          
-         if(Iteration==1)/*consedering 200 mili amp as limit here*/
+         if(Iteration==3)/*consedering 200 mili amp as limit here*/
+           {
+            quant_data.current_quant[Iteration] = 10*actual_data.current_actual[Iteration];
+            //quantiz(cstart,cstep,actual_data.current_actual[Iteration]);
+          //  quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]);
+      //  eps_pc.printf("\n\r quan curr1 data[%d] = %d ",Iteration,quant_data.current_quant[Iteration] );
+         }
+         else if(Iteration==4)/*consedering 200 mili amp as limit here*/
            {
-            quant_data.current_quant[Iteration] = actual_data.current_actual[Iteration];
+            quant_data.current_quant[Iteration] = 10*actual_data.current_actual[Iteration];
+            //quantiz(cstart,cstep,actual_data.current_actual[Iteration]);
+          //  quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]);
+      //  eps_pc.printf("\n\r quan curr1 data[%d] = %d ",Iteration,quant_data.current_quant[Iteration] );
+         }
+         else if(Iteration==6)/*consedering 200 mili amp as limit here*/
+           {
+            quant_data.current_quant[Iteration] = 10*actual_data.current_actual[Iteration];
             //quantiz(cstart,cstep,actual_data.current_actual[Iteration]);
           //  quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]);
       //  eps_pc.printf("\n\r quan curr1 data[%d] = %d ",Iteration,quant_data.current_quant[Iteration] );
          }
          else if(Iteration<9)/*consedering 200 mili amp as limit here*/
            {
-            quant_data.current_quant[Iteration] = 10*actual_data.current_actual[Iteration];
+            quant_data.current_quant[Iteration] = actual_data.current_actual[Iteration];
             //quantiz(cstart,cstep,actual_data.current_actual[Iteration]);
           //  quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]);
     //    eps_pc.printf("\n\r quan curr1 data[%d] = %d ",Iteration,quant_data.current_quant[Iteration] );
@@ -581,7 +595,8 @@
     }       
     for(Iteration=0;Iteration<2;Iteration++){
         
-        quant_data.Batt_temp_quant[Iteration] = float_to_uint8(-50,150,actual_data.Batt_temp_actual[Iteration]);//quantiz(tstart,tstep,actual_data.Batt_temp_actual[Iteration]);
+      //  quant_data.Batt_temp_quant[Iteration] = float_to_uint8(-50,150,actual_data.Batt_temp_actual[Iteration]);//quantiz(tstart,tstep,actual_data.Batt_temp_actual[Iteration]);
+      quant_data.Batt_temp_quant[Iteration] = actual_data.Batt_temp_actual[Iteration] +50;
     }
     
     //to be changed no need to quantized
@@ -678,11 +693,11 @@
                                                              
     //BAE RAM PARAMETER
     LONG_HK_data[1][29] = BAE_INIT_STATUS;
-    LONG_HK_data[1][29] = (LONG_HK_data[1][29]<<1) | 0;//change it================================
+    LONG_HK_data[1][29] = (LONG_HK_data[1][29]<<1) |BAE_MNG_I2C_STATUS;//change it================================
     LONG_HK_data[1][29] = (LONG_HK_data[1][29]<<1) | BCN_INIT_STATUS; 
     LONG_HK_data[1][29] = (LONG_HK_data[1][29]<<1) | BCN_TX_MAIN_STATUS;
     LONG_HK_data[1][29] = (LONG_HK_data[1][29]<<3) | BCN_TX_STATUS;
-    LONG_HK_data[1][29] = (LONG_HK_data[1][29]<<3) | ACS_INIT_STATUS;
+    LONG_HK_data[1][29] = (LONG_HK_data[1][29]<<1) | ACS_INIT_STATUS;
                                                                 
     LONG_HK_data[1][30] = ACS_DATA_ACQ_STATUS;
     LONG_HK_data[1][30] = (LONG_HK_data[1][30]<<1) | ACS_MAIN_STATUS;
@@ -712,14 +727,14 @@
     LONG_HK_data[1][40] = actual_data.power_mode;
     LONG_HK_data[1][41] = HTR_CYCLE_COUNTER;//new to : implement
                                                                 
-    LONG_HK_data[1][42] = BAE_I2C_COUNTER;
-    LONG_HK_data[1][43] = BAE_I2C_COUNTER>>8;
-    LONG_HK_data[1][44] = ACS_MAIN_COUNTER;
-    LONG_HK_data[1][45] = ACS_MAIN_COUNTER>>8;
-    LONG_HK_data[1][46] = BCN_TX_MAIN_COUNTER;
-    LONG_HK_data[1][47] = BCN_TX_MAIN_COUNTER>>8;
-    LONG_HK_data[1][48] = EPS_MAIN_COUNTER;
-    LONG_HK_data[1][49] = EPS_MAIN_COUNTER>>8;
+    LONG_HK_data[1][43] = BAE_I2C_COUNTER;
+    LONG_HK_data[1][42] = BAE_I2C_COUNTER>>8;
+    LONG_HK_data[1][45] = ACS_MAIN_COUNTER;
+    LONG_HK_data[1][44] = ACS_MAIN_COUNTER>>8;
+    LONG_HK_data[1][47] = BCN_TX_MAIN_COUNTER;
+    LONG_HK_data[1][46] = BCN_TX_MAIN_COUNTER>>8;
+    LONG_HK_data[1][49] = EPS_MAIN_COUNTER;
+    LONG_HK_data[1][48] = EPS_MAIN_COUNTER>>8;
     
     uint8_t days,hours,mins;
     RETURN_UPTIME(BAE_uptime.read(),&days,&hours,&mins);
@@ -728,9 +743,28 @@
     LONG_HK_data[1][50] = (LONG_HK_data[1][50]) | (hours>>2);
     LONG_HK_data[1][51] = hours;
     LONG_HK_data[1][51] = (LONG_HK_data[1][51]<<6) | mins;
-    
-    
-    LONG_HK_data[1][52] = actual_data.bit_data_acs_mm[0];
+     uint16_t scaled1;
+   scaled1 = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[0]);
+             LONG_HK_data[1][52] = (scaled1>>8); 
+             LONG_HK_data[1][53] = scaled1;
+            scaled1 = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[1]);
+            LONG_HK_data[1][54] = (scaled1>>8); 
+            LONG_HK_data[1][55] = scaled1;
+            scaled1 = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[2]);
+            LONG_HK_data[1][56] = (scaled1>>8); 
+            LONG_HK_data[1][57] = scaled1;
+            scaled1 = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[0]);
+            LONG_HK_data[1][58] = (scaled1>>8); 
+            LONG_HK_data[1][59] = scaled1;
+            scaled1 = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[1]);
+            LONG_HK_data[1][60] = (scaled1>>8); 
+            LONG_HK_data[1][61] = scaled1;
+            scaled1 = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[2]);
+            LONG_HK_data[1][62] = (scaled1>>8); 
+            LONG_HK_data[1][63] = scaled1;
+   
+   /* 
+    LONG_HK_data[1][52] = float_to_uint16(-1000,1000,actual_data.Bvalue_actual[0]);//actual_data.bit_data_acs_mm[0];
     LONG_HK_data[1][53] = actual_data.bit_data_acs_mm[0]>>8;
     LONG_HK_data[1][54] = actual_data.bit_data_acs_mm[1];
     LONG_HK_data[1][55] = actual_data.bit_data_acs_mm[1]>>8;
@@ -743,23 +777,24 @@
     LONG_HK_data[1][61] = actual_data.bit_data_acs_mg[1]>>8;
     LONG_HK_data[1][62] = actual_data.bit_data_acs_mg[2];
     LONG_HK_data[1][63] = actual_data.bit_data_acs_mg[2]>>8;
-                                                                
-    LONG_HK_data[1][64] = (~BCN_TX_OC_FAULT);
-    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | ACS_TR_XY_ENABLE;
-    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | ACS_TR_Z_ENABLE;
-    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~ACS_TR_XY_OC_FAULT);
-    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~ACS_TR_Z_OC_FAULT);
-    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~ACS_TR_XY_FAULT);
-    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~EPS_CHARGER_FAULT);
-    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | EPS_CHARGER_STATUS;
+    */                                                           
+    LONG_HK_data[1][64] = (~BCN_TX_OC_FAULT&&0x01);
+    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | ACS_TR_XY_ENABLE&&0x01;
+    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | ACS_TR_Z_ENABLE&&0x01;
+    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~ACS_TR_XY_OC_FAULT&&0x01);
+    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~ACS_TR_Z_OC_FAULT)&&0x01;
+    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~ACS_TR_XY_FAULT&&0x01);
+    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | (~EPS_CHARGER_FAULT&&0x01);
+    LONG_HK_data[1][64] = (LONG_HK_data[1][64]<<1) | EPS_CHARGER_STATUS&&0x01;
                                                                 
     LONG_HK_data[1][65] = EPS_BATTERY_GAUGE_ALERT;
-    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~CDMS_OC_FAULT);
-    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~ACS_ATS1_OC_FAULT);
-    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~ACS_ATS2_OC_FAULT);
-    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~ACS_TR_Z_FAULT);
+    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~CDMS_OC_FAULT&&0x01);
+    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~ACS_ATS1_OC_FAULT&&0x01);
+    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~ACS_ATS2_OC_FAULT&&0x01);
+    LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<1) | (~ACS_TR_Z_FAULT&&0x01);
     LONG_HK_data[1][65] = (LONG_HK_data[1][65]<<3);
     //3 spare
+
                                                                 
     LONG_HK_data[1][66] = ACS_TR_X_PWM;
     LONG_HK_data[1][67] = ACS_TR_Y_PWM;
@@ -802,10 +837,12 @@
     eps_pc.printf("Battery SOC in LONG_HK: %d\n\r",LONG_HK_data[1][124]);
     eps_pc.printf("Battery SOC in eps in float: %f\n\r",soc());
     eps_pc.printf("Battery SOC in eps: %d\n\r",(int)soc());
-    LONG_HK_data[1][125] = quant_data.Batt_temp_quant[0];
+    FCTN_BATT_TEMP_SENSOR_MAIN(actual_data.Batt_temp_actual);  // for debugging
+   
+    LONG_HK_data[1][125] = actual_data.Batt_temp_actual[0]+50;//quant_data.Batt_temp_quant[0];
     //LONG_HK_data[1][125] = actual_data.Batt_temp_actual[0]; //just for debugging
     eps_pc.printf("Battery TMP1 in LONG_HK: %d\n\r",LONG_HK_data[1][125]);
-    LONG_HK_data[1][126] = quant_data.Batt_temp_quant[1];
+    LONG_HK_data[1][126] = actual_data.Batt_temp_actual[1]+50; //quant_data.Batt_temp_quant[1];
     eps_pc.printf("Battery TMP2 in LONG_HK: %d\n\r",LONG_HK_data[1][126]);
     LONG_HK_data[1][127] = BCN_TMP+50;
     eps_pc.printf("BCN TMP in LONG_HK: %d\n\r",LONG_HK_data[1][127]);
--- a/TCTM.cpp	Thu Mar 09 08:08:10 2017 +0000
+++ b/TCTM.cpp	Tue Mar 28 08:48:42 2017 +0000
@@ -428,7 +428,7 @@
                                                                 telemetry[31] = (telemetry[31]<<1) | EPS_MAIN_STATUS;
                                                                 telemetry[31] = (telemetry[31]<<1) | EPS_BTRY_TMP_STATUS;
                                                                 telemetry[31] = (telemetry[31]<<3) | EPS_STATUS;
-                                                                 telemetry[31] = (telemetry[31]<<2) | CDMS_SW_STATUS;
+                                                                telemetry[31] = (telemetry[31]<<2) | CDMS_SW_STATUS;
                                                         //        telemetry[30] = (telemetry[30]<<1) | EPS_BTRY_HTR_STATUS;//new to : implement
                                                                 
                                                                 telemetry[32] = EPS_BTRY_HTR;   //new to : implement
@@ -461,7 +461,7 @@
                                                                 printf("\n\r the values bae of days,hour,min %d, %d, %d",days,hours,mins);
                                                                 
                                                                 telemetry[50] = days;
-                                                                RETURN_UPTIME(I2C_last.read(),&days,&hours,&mins);
+                                                               RETURN_UPTIME(I2C_last.read(),&days,&hours,&mins);
                                                                 telemetry[50] = (telemetry[50]<<3) | (hours>>2);
                                                                 telemetry[51] = hours;
                                                                 telemetry[51] = (telemetry[51]<<6) | mins;
@@ -494,21 +494,23 @@
                                                                 scaled = float_to_uint16(-5000,5000,actual_data.AngularSpeed_actual[2]);
                                                                 telemetry[62] = (scaled>>8); 
                                                                 telemetry[63] = scaled;
-                                                
-                                                                telemetry[64] = (~BCN_TX_OC_FAULT);
-                                                                telemetry[64] = (telemetry[64]<<1) | ACS_TR_XY_ENABLE;
-                                                                telemetry[64] = (telemetry[64]<<1) | ACS_TR_Z_ENABLE;
-                                                                telemetry[64] = (telemetry[64]<<1) | (~ACS_TR_XY_OC_FAULT);
-                                                                telemetry[64] = (telemetry[64]<<1) | (~ACS_TR_Z_OC_FAULT);
-                                                                telemetry[64] = (telemetry[64]<<1) | (~ACS_TR_XY_FAULT);
-                                                                telemetry[64] = (telemetry[64]<<1) | (~EPS_CHARGER_FAULT);
-                                                                telemetry[64] = (telemetry[64]<<1) | EPS_CHARGER_STATUS;
-                                                                
+                                                               //  printf("\n\r TM64_B %d",telemetry[64]);
+                                                                telemetry[64]= 0;
+                                                                telemetry[64] = (~BCN_TX_OC_FAULT&&0x01);
+                                                                telemetry[64] = (telemetry[64]<<1) | (ACS_TR_XY_ENABLE&&0x01);
+                                                                telemetry[64] = (telemetry[64]<<1) | ACS_TR_Z_ENABLE&&0x01;
+                                                                telemetry[64] = (telemetry[64]<<1) | (~ACS_TR_XY_OC_FAULT&&0x01);
+                                                                telemetry[64] = (telemetry[64]<<1) | (~ACS_TR_Z_OC_FAULT&&0x01);
+                                                                telemetry[64] = (telemetry[64]<<1) | (~ACS_TR_XY_FAULT&&0x01);
+                                                                telemetry[64] = (telemetry[64]<<1) | (~EPS_CHARGER_FAULT&&0x01);
+                                                                telemetry[64] = (telemetry[64]<<1) | EPS_CHARGER_STATUS&&0x01;
+                                                                    printf("\n\r TM64_A %d",telemetry[64]);
+                                                                    
                                                                 telemetry[65] = EPS_BATTERY_GAUGE_ALERT;
-                                                                telemetry[65] = (telemetry[65]<<1) | (~CDMS_OC_FAULT);
-                                                                telemetry[65] = (telemetry[65]<<1) | (~ACS_ATS1_OC_FAULT);
-                                                                telemetry[65] = (telemetry[65]<<1) | (~ACS_ATS2_OC_FAULT);
-                                                                telemetry[65] = (telemetry[65]<<1) | (~ACS_TR_Z_FAULT);
+                                                                telemetry[65] = (telemetry[65]<<1) | (~CDMS_OC_FAULT&&0x01);
+                                                                telemetry[65] = (telemetry[65]<<1) | (~ACS_ATS1_OC_FAULT&&0x01);
+                                                                telemetry[65] = (telemetry[65]<<1) | (~ACS_ATS2_OC_FAULT&&0x01);
+                                                                telemetry[65] = (telemetry[65]<<1) | (~ACS_TR_Z_FAULT&&0x01);
                                                                 telemetry[65] = (telemetry[65]<<3);
                                                                 //3 spare
                                                                 
@@ -545,9 +547,12 @@
                                                                 
                                                                 telemetry[122] = quant_data.Batt_voltage_quant;// changed (quant_data.Batt_voltage_quant<<3)+(quant_data.Batt_voltage_quant<<1);
                                                                 telemetry[123] = quant_data.BAE_temp_quant;
-                                                                telemetry[124] = (uint8_t)(actual_data.Batt_gauge_actual[1]);
-                                                                telemetry[125] = quant_data.Batt_temp_quant[0];
-                                                                telemetry[126] = quant_data.Batt_temp_quant[1];
+                                                                telemetry[124] = soc(); //(actual_data.Batt_gauge_actual[1]);//(uint8_t)(actual_data.Batt_gauge_actual[1]);
+                                                                 printf("\n\r SOC_A %d",telemetry[124]);
+                                                                FCTN_BATT_TEMP_SENSOR_MAIN(actual_data.Batt_temp_actual); 
+                                                               
+                                                                telemetry[125] = actual_data.Batt_temp_actual[0]+50;//quant_data.Batt_temp_quant[0];
+                                                                telemetry[126] = actual_data.Batt_temp_actual[1]+50;
                                                                 
                                                                 telemetry[127] = BCN_TMP+50;
                                                                 
@@ -569,7 +574,7 @@
                                                                 telemetry[2] = ACK_CODE;
                                                                 telemetry[3] = 0x00;
 
-                                                                for(int i;i<16;i++)
+                                                                for(int i=0;i<16;i++)
                                                                 {
                                                                     telemetry[i+4] = (uint8_t)bae_HK_minmax.voltage_max[i];//(bae_HK_minmax.voltage_max[i]<<3)+(bae_HK_minmax.voltage_max[i]<<2);
                                                                     telemetry[i+20] = bae_HK_minmax.current_max[i];
@@ -597,7 +602,7 @@
                                     
                                                                 /*min data*/
                                     
-                                                                for(int i;i<16;i++)
+                                                                for(int i=0;i<16;i++)
                                                                    { telemetry[i+54] = (uint8_t)bae_HK_minmax.voltage_min[i];//(bae_HK_minmax.voltage_min[i]<<3)+(bae_HK_minmax.voltage_min[i]<<1);
                                                                     //for(int i;i<16;i++)
                                                                     telemetry[i+70] = bae_HK_minmax.current_min[i];
--- a/main.cpp	Thu Mar 09 08:08:10 2017 +0000
+++ b/main.cpp	Tue Mar 28 08:48:42 2017 +0000
@@ -817,9 +817,10 @@
       timer_FCTN_BATT_TEMP_SENSOR_MAIN.start();
       FCTN_BATT_TEMP_SENSOR_MAIN(actual_data.Batt_temp_actual);
       timer_FCTN_BATT_TEMP_SENSOR_MAIN.stop();
-      
+
       pc.printf("Battery temperature %f %f\n\r" ,actual_data.Batt_temp_actual[0], actual_data.Batt_temp_actual[1]);
       EPS_BTRY_TMP_AVG = ( actual_data.Batt_temp_actual[0] + actual_data.Batt_temp_actual[1] )/2.0;
+    
       if(abs(actual_data.Batt_temp_actual[0] - actual_data.Batt_temp_actual[1]) > 10)
       {
           EPS_BTRY_TMP_STATUS = 0;          //clear EPS_BTRY_TMP_STATUS
@@ -937,7 +938,8 @@
     while(1)
     {  
         Thread::signal_wait(0x4);
-        wait_us(300);
+       wait_us(300); // restore it
+     
         //__disable_irq();
                  
         BAE_MNG_I2C_STATUS =1 ;