Updated EPS code with flowchart v2.3 (CDMS and HW faults)

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of QM_BAE_review_1_EPS_faults by Mohamed Azad

Revision:
5:bb592f3185cc
Parent:
3:07e15677a75c
Child:
6:036d08b62785
--- a/EPS.cpp	Wed Dec 30 04:57:46 2015 +0000
+++ b/EPS.cpp	Thu Dec 31 17:12:52 2015 +0000
@@ -3,7 +3,7 @@
 /***********************************************global variable declaration***************************************************************/
 extern uint32_t BAE_STATUS;
 extern uint32_t BAE_ENABLE;
-
+extern uint8_t BAE_data[73]; 
 
 //m_I2C.frequency(10000)
 const char RCOMP0= 0x97;
@@ -12,6 +12,7 @@
 BAE_HK_min_max bae_HK_minmax;
 BAE_HK_arch arch_data;
 
+
 //......................................Peripheral declarations.........................................................//
 Serial pc_eps(USBTX,USBRX);
 
@@ -191,7 +192,7 @@
     quant_data.BAE_temp_quant=quantiz(tstart,tstep,actual_data.BAE_temp_actual);
     
     for(Iteration=0;Iteration<3;Iteration++){
-        quant_data.AngularSpeed_quant[Iteration]=quantiz(AngularSpeed_start,AngularSpeed_step,actual_data.AngularSpeed_actual[Iteration]);
+        quant_data.AngularSpeed_quant[Iteration]=actual_data.AngularSpeed_actual[Iteration];
     }
     
     for(Iteration=0;Iteration<3;Iteration++){
@@ -206,12 +207,50 @@
     arch_data.EPS_PCB_temp=quant_data.voltage_quant[14];
     arch_data.Batt_SOC=quant_data.Batt_gauge_quant[1];
     arch_data.power_mode=actual_data.power_mode;
+    arch_data.faultPoll_status=actual_data.faultPoll_status;
+    arch_data.faultIr_status=actual_data.faultIr_status;
     arch_data.Batt_voltage=quant_data.Batt_voltage_quant;    
     
     
 }
 
-int quantiz(float start,float step,float x)
+void FCTN_APPEND_HKDATA()
+{
+    // quantized data
+    for (int i=0;i<16;i++)
+        BAE_data[i] = quant_data.voltage_quant[i];
+    for (int i=16;i<28;i++)
+        BAE_data[i] = quant_data.current_quant[i-16];
+    BAE_data[28] = quant_data.Batt_temp_quant[0];
+    BAE_data[29] = quant_data.Batt_temp_quant[1]; 
+    BAE_data[30] = quant_data.Batt_gauge_quant[1]; 
+    BAE_data[31] = quant_data.Batt_gauge_quant[1]; 
+    BAE_data[32] = quant_data.Batt_gauge_quant[1]; 
+    FCTN_CONVERT_FLOAT(quant_data.Batt_gauge_alerts,&BAE_data[33]);
+    BAE_data[37] = quant_data.BAE_temp_quant;
+    FCTN_CONVERT_FLOAT(quant_data.AngularSpeed_quant[0],&BAE_data[38]); 
+    FCTN_CONVERT_FLOAT(quant_data.AngularSpeed_quant[1],&BAE_data[42]); 
+    FCTN_CONVERT_FLOAT(quant_data.AngularSpeed_quant[2],&BAE_data[46]); 
+    FCTN_CONVERT_FLOAT(quant_data.Bvalue_quant[0],&BAE_data[50]); 
+    FCTN_CONVERT_FLOAT(quant_data.Bvalue_quant[1],&BAE_data[54]); 
+    FCTN_CONVERT_FLOAT(quant_data.Bvalue_quant[2],&BAE_data[58]); 
+    BAE_data[62] = quant_data.Batt_voltage_quant;
+    BAE_data[63] = (uint8_t)actual_data.power_mode;      
+    BAE_data[64] = actual_data.faultPoll_status; 
+    BAE_data[65] = actual_data.faultIr_status;
+    // archived data
+    BAE_data[66] = arch_data.Batt_1_temp;            //verify if uint8_t is right
+    BAE_data[67] = arch_data.Batt_2_temp; 
+    BAE_data[68] = arch_data.EPS_PCB_temp;
+    BAE_data[69] = arch_data.Batt_SOC;           
+    BAE_data[70] = (uint8_t)arch_data.power_mode;
+    BAE_data[71] = arch_data.faultPoll_status; 
+    BAE_data[72] = arch_data.faultIr_status;
+    BAE_data[73] = arch_data.Batt_voltage;
+    
+}
+
+uint8_t quantiz(float start,float step,float x)
 {
     int y=(x-start)/step;
     if(y<=0)y=0;