Team Fox / Mbed 2 deprecated RAJANGAM_REVIEW_BAE_CODE

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of QM_BAE_review_1 by Team Fox

Revision:
68:a5d2b8dc6b9e
Parent:
65:d1b12729fcdc
Child:
69:c0dd13285d80
--- a/EPS.cpp	Thu Nov 24 09:45:08 2016 +0000
+++ b/EPS.cpp	Sun Dec 04 07:58:20 2016 +0000
@@ -467,8 +467,12 @@
     {
             actual_data.voltage_actual[Iteration]=VoltageInput.read();
             //wait_ms(100); //remove
+            eps_pc.printf("\n\rthe raw voltage values VOL[%d] = %f",Iteration,actual_data.voltage_actual[Iteration]);
+            wait_ms(2);
             actual_data.current_actual[Iteration]=CurrentInput.read();
-           
+            wait_ms(2);
+            eps_pc.printf("\n\rthe raw current values CURR[%d] = %f",Iteration,actual_data.current_actual[Iteration]);
+                      
             SelectLinea0=!(SelectLinea0);
             if(Iteration%2==1)
                 SelectLinea1=!(SelectLinea1);
@@ -484,42 +488,45 @@
 ////            printf("\n\r  %d %d %d %d", s0,s1,s2,s3);
 
     wait_ms(1);
+    /*$ wait of 3 milli sec $*/
     }
       for(Iteration=0; Iteration<16; Iteration++)
     {
         if(Iteration==1) //EPS 3.0 in EPS 2.1 it was 14th element
-        actual_data.voltage_actual[Iteration]= (-90.7*3.3*actual_data.voltage_actual[Iteration])+190.1543;
+        actual_data.voltage_actual[Iteration]= (-90.7*(3.3*actual_data.voltage_actual[Iteration]))+190.1543;
         else
-            actual_data.voltage_actual[Iteration]= actual_data.voltage_actual[Iteration]*3.3*62/11;
-            
-        printf("Voltage[%d]  %f\r\n",Iteration,actual_data.voltage_actual[Iteration]);
+         actual_data.voltage_actual[Iteration] = (actual_data.voltage_actual[Iteration]*3.3*62)/11.0;
+              
+        eps_pc.printf("VVVoltage[%d] %f\r\n",Iteration,actual_data.voltage_actual[Iteration]);
     }
         
-    for(Iteration=0;Iteration<12;Iteration++){
+    for(Iteration=0;Iteration<16;Iteration++){
         if(Iteration<8)// thermistors before in version 2.1 now from12th element but 8-11 are null values only
         {
-            actual_data.current_actual[Iteration]= actual_data.current_actual[Iteration]*3.3/(50*rsens);
+            actual_data.current_actual[Iteration]= 1000*(actual_data.current_actual[Iteration]*3.3)/(50*rsens); 
+            // if it gives the better resolution //actual_data.current_actual[Iteration]= 100*(actual_data.current_actual[Iteration]*3.3)/(50*rsens); 
+        
         }
-        
         else if(Iteration==8)
         {
-            actual_data.current_actual[Iteration]= (-90.7*3.3*actual_data.current_actual[Iteration])+190.1543;//Temperature
+            actual_data.current_actual[Iteration] = (actual_data.current_actual[Iteration]*3.3*62)/11.0;//Load BUS voltage
         }
-        
         else if(Iteration==9)
         {
-            actual_data.current_actual[Iteration]= actual_data.current_actual[Iteration])*3.3*62/11;//Load BUS voltage
+            actual_data.current_actual[Iteration]= (-90.7*(3.3*actual_data.current_actual[Iteration]))+190.1543;//Temperature
         }
+        /*1oth and 11th data are NC*/
         else if(Iteration<12)
         {
             actual_data.current_actual[Iteration]= 0;
         }
-        else
-            actual_data.current_actual[Iteration]=actual_data.current_actual[Iteration]*3.3;
+        else{ /*earlier loop missing*/
+            actual_data.current_actual[Iteration] = (actual_data.current_actual[Iteration]*3.3);
             int resistance;       
              
-            resistance=24000*actual_data.current_actual[Iteration]/(3.3-actual_data.current_actual[Iteration]);
-            if(actual_data.current_actual[Iteration]>1.47) 
+            resistance = (24300*actual_data.current_actual[Iteration])/(3.3-actual_data.current_actual[Iteration]);
+            
+            if(actual_data.current_actual[Iteration]<1.38) 
             {
                 actual_data.current_actual[Iteration]=3694/log(24.032242*resistance);
             }
@@ -528,31 +535,44 @@
                 actual_data.current_actual[Iteration]=3365.4/log(7.60573*resistance);
             }
             
+            actual_data.current_actual[Iteration] = actual_data.current_actual[Iteration] - 273.15; /*converting from C to kelvin*/ 
+            
+            }
             printf("Current[%d]  %f\r\n",Iteration,actual_data.current_actual[Iteration]);
     }
+    
     //actual_data.BAE_temp_actual=(-90.7*3.3*actual_data.BAE_temp_actual)+190.1543;
     actual_data.BAE_temp_actual=(-90.7*3.3*BAE_temp_sensor.read())+190.1543;
     
-    actual_data.Batt_voltage_actual=Batt_voltage.read()*3.3*5.63;
+    actual_data.Batt_voltage_actual = (Batt_voltage.read()*3.3*5.63) * 10;
 
     //quantizing data //changing the algo 
     for(Iteration=0; Iteration<16; Iteration++){
 
         if(Iteration==1)
-            quant_data.voltage_quant[Iteration] = float_to_uint8(0.0,25,actual_data.voltage_actual[Iteration]);//quantiz(tstart,tstep,actual_data.voltage_actual[Iteration]);
+            quant_data.voltage_quant[Iteration] = float_to_uint8(-50,150,actual_data.voltage_actual[Iteration]);//quantiz(tstart,tstep,actual_data.voltage_actual[Iteration]); /*for keeping the record of the temp'*/
         else
-            quant_data.voltage_quant[Iteration] = float_to_uint8(0.0,25,actual_data.voltage_actual[Iteration]);//quantiz(vstart,vstep,actual_data.voltage_actual[Iteration]);
+            quant_data.voltage_quant[Iteration] = 10*actual_data.voltage_actual[Iteration];
+        //quant_data.voltage_quant[Iteration] = float_to_uint8(0.0,25,actual_data.voltage_actual[Iteration]);//quantiz(vstart,vstep,actual_data.voltage_actual[Iteration]);
+        eps_pc.printf("\n\r quan vol data[%d],\t %d",Iteration,quant_data.voltage_quant[Iteration]);
         
     }
-    for(Iteration=0;Iteration<12;Iteration++){
-        if(Iteration<8)
-            quant_data.current_quant[Iteration] = float_to_uint8(0.0,3000,actual_data.current_actual[Iteration]);//quantiz(cstart,cstep,actual_data.current_actual[Iteration]);
-        else
-            quant_data.current_quant[Iteration] = float_to_uint8(0.0,3000,actual_data.current_actual[Iteration]);//quantiz(tstart_thermistor,tstep_thermistor,actual_data.current_actual[Iteration]);
-     }       
+    for(Iteration=0;Iteration<16;Iteration++){
+        if(Iteration<8)/*consedering 200 mili amp as limit here*/
+            quant_data.current_quant[Iteration] = float_to_uint8(0.0,2640,actual_data.current_actual[Iteration]);//quantiz(cstart,cstep,actual_data.current_actual[Iteration]);
+        else if(Iteration==8)
+            quant_data.current_quant[Iteration] = 10*actual_data.current_actual[Iteration];
+            /*quant_data.current_quant[Iteration] = float_to_uint8(0.0,25,actual_data.current_actual[Iteration]);//quantiz(tstart_thermistor,tstep_thermistor,actual_data.current_actual[Iteration]); /*the bus voltage inside*/
+        else if(Iteration==9)
+            quant_data.current_quant[Iteration] = float_to_uint8(-50,150,actual_data.current_actual[Iteration]); /*the temp of board*/
+        else if(Iteration>9)/*changed from 25 to 300 what value do we expectt?*/
+            quant_data.current_quant[Iteration] = float_to_uint8(-50,100,actual_data.current_actual[Iteration]);    
+    
+           eps_pc.printf("\n\r quan curr data[%d],\t %d",Iteration,quant_data.current_quant[Iteration]);
+    }       
     for(Iteration=0;Iteration<2;Iteration++){
         
-        quant_data.Batt_temp_quant[Iteration] = float_to_uint8(-50,100,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]);
     }
     
     //to be changed no need to quantized
@@ -562,7 +582,7 @@
     /*no need*/// ->> quant_data.Batt_gauge_quant[2]=quantiz(crate_start,crate_step,actual_data.Batt_gauge_actual[2]);
     /*no need*/// ->> quant_data.Batt_gauge_alerts=actual_data.Batt_gauge_actual[3];
     
-    quant_data.BAE_temp_quant= float_to_uint8(-50,100,actual_data.BAE_temp_actual);
+    quant_data.BAE_temp_quant= float_to_uint8(-50,150,actual_data.BAE_temp_actual);
     
 ////    for(Iteration=0;Iteration<3;Iteration++){
 ////        quant_data.AngularSpeed_quant[Iteration]=actual_data.AngularSpeed_actual[Iteration];
@@ -574,17 +594,24 @@
 ////        printf("\n\r b value %f",quant_data.Bvalue_quant[Iteration]);
 ////    }
     
-    quant_data.Batt_voltage_quant= float_to_uint8(0,25.0,actual_data.Batt_voltage_actual);
+    //changed
+    quant_data.Batt_voltage_quant = 10*(actual_data.Batt_voltage_actual);
+    /*quant_data.Batt_voltage_quant= float_to_uint8(0,25.0,actual_data.Batt_voltage_actual);*/
+    /* 
+    for(Iteration=0; Iteration<16; Iteration++)
+    eps_pc.printf("Current[%d]  %d\r\n",Iteration, quant_data.current_quant[Iteration]);
+    for(Iteration=0; Iteration<16; Iteration++)
+    eps_pc.printf("vvol[%d]  %d\r\n",Iteration,quant_data.voltage_quant[Iteration]);*/
     
     //?? WHAT DO here
     arch_data.Batt_1_temp=quant_data.Batt_temp_quant[0];
     arch_data.Batt_2_temp=quant_data.Batt_temp_quant[1];
-    arch_data.EPS_PCB_temp=quant_data.voltage_quant[14];
+    arch_data.EPS_PCB_temp=quant_data.voltage_quant[1];
     //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;    
+    arch_data.Batt_voltage=quant_data.Batt_voltage_quant ;   
 ////    printf("\n\r in hk");
     
 }
@@ -780,17 +807,19 @@
 bool firstCount=true;  // goes to EPS init
 
 
-void saveMin(char x,char y){
+uint8_t saveMin(uint8_t x,uint8_t y){
     if(y<x){
         x=y;
+    return x;
     }
 
 }
-void saveMax(char x,char y){
+uint8_t saveMax(uint8_t x,uint8_t y){
     if (y>x)
     {
        x=y;
     }
+    return x;
 }
 
 
@@ -800,7 +829,7 @@
         bae_HK_minmax.voltage_min[i] = quant_data.voltage_quant[i];
         bae_HK_minmax.voltage_max[i] = quant_data.voltage_quant[i];
         }
-        for (int i = 0; i < 12; ++i){    
+        for (int i = 0; i < 16; ++i){    
         bae_HK_minmax.current_min[i] = quant_data.current_quant[i];
         bae_HK_minmax.current_max[i] = quant_data.current_quant[i];   
         }
@@ -841,19 +870,19 @@
     else {
         for (int i = 0; i < 16; ++i)
         {
-            saveMin(bae_HK_minmax.voltage_min[i],quant_data.voltage_quant[i]);
-            saveMax(bae_HK_minmax.voltage_max[i],quant_data.voltage_quant[i]);
+            bae_HK_minmax.voltage_min[i] = saveMin(bae_HK_minmax.voltage_min[i],quant_data.voltage_quant[i]);
+            bae_HK_minmax.voltage_max[i] = saveMax(bae_HK_minmax.voltage_max[i],quant_data.voltage_quant[i]);
         }
-        for (int i = 0; i < 12; ++i)
+        for (int i = 0; i < 16; ++i)
         {
-            saveMin(bae_HK_minmax.current_min[i],quant_data.current_quant[i]);
-            saveMax(bae_HK_minmax.current_max[i],quant_data.current_quant[i]);
+            bae_HK_minmax.current_min[i] = saveMin(bae_HK_minmax.current_min[i],quant_data.current_quant[i]);
+            bae_HK_minmax.current_max[i] = saveMax(bae_HK_minmax.current_max[i],quant_data.current_quant[i]);
         }
         
         for (int i = 0; i < 2; ++i)
         {
-            saveMin(bae_HK_minmax.Batt_temp_min[i],quant_data.Batt_temp_quant[i]);
-            saveMax(bae_HK_minmax.Batt_temp_max[i],quant_data.Batt_temp_quant[i]);
+            bae_HK_minmax.Batt_temp_min[i] = saveMin(bae_HK_minmax.Batt_temp_min[i],quant_data.Batt_temp_quant[i]);
+            bae_HK_minmax.Batt_temp_max[i] = saveMax(bae_HK_minmax.Batt_temp_max[i],quant_data.Batt_temp_quant[i]);
         }
         /*
         for (int i = 0; i < 3; ++i)
@@ -862,32 +891,80 @@
             saveMax(bae_HK_minmax.Batt_gauge_max[i], quant_data.Batt_gauge_quant[i]);
         }
         */
-        saveMin(bae_HK_minmax.Batt_SOC_min, ((uint8_t)(actual_data.Batt_gauge_actual[1])) );
-        saveMax(bae_HK_minmax.Batt_SOC_max, ((uint8_t)(actual_data.Batt_gauge_actual[1])) );
+        bae_HK_minmax.Batt_SOC_min = saveMin(bae_HK_minmax.Batt_SOC_min, ((uint8_t)(actual_data.Batt_gauge_actual[1])) );
+        bae_HK_minmax.Batt_SOC_max = saveMax(bae_HK_minmax.Batt_SOC_max, ((uint8_t)(actual_data.Batt_gauge_actual[1])) );
         
-        saveMin(bae_HK_minmax.BCN_TEMP_min, BCN_TMP);
-        saveMin(bae_HK_minmax.BCN_TEMP_max, BCN_TMP);
+        bae_HK_minmax.BCN_TEMP_min = saveMin(bae_HK_minmax.BCN_TEMP_min, BCN_TMP);
+        bae_HK_minmax.BCN_TEMP_max = saveMin(bae_HK_minmax.BCN_TEMP_max, BCN_TMP);
         
         for (int i = 0; i < 3; ++i)
         {
-            saveMin(bae_HK_minmax.bit_data_acs_mg_min[i], actual_data.bit_data_acs_mg[i]);
-            saveMax(bae_HK_minmax.bit_data_acs_mg_max[i], actual_data.bit_data_acs_mg[i]);
+            bae_HK_minmax.bit_data_acs_mg_min[i] = saveMin(bae_HK_minmax.bit_data_acs_mg_min[i], actual_data.bit_data_acs_mg[i]);
+            bae_HK_minmax.bit_data_acs_mg_max[i] = saveMax(bae_HK_minmax.bit_data_acs_mg_max[i], actual_data.bit_data_acs_mg[i]);
         }
         for (int i = 0; i < 3; ++i)
         {
-            saveMin(bae_HK_minmax.bit_data_acs_mm_min[i], actual_data.bit_data_acs_mm[i]);
-            saveMax(bae_HK_minmax.bit_data_acs_mm_max[i], actual_data.bit_data_acs_mm[i]);
+            bae_HK_minmax.bit_data_acs_mm_min[i] = saveMin(bae_HK_minmax.bit_data_acs_mm_min[i], actual_data.bit_data_acs_mm[i]);
+            bae_HK_minmax.bit_data_acs_mm_max[i] = saveMax(bae_HK_minmax.bit_data_acs_mm_max[i], actual_data.bit_data_acs_mm[i]);
         }
-        saveMin(bae_HK_minmax.BAE_temp_min,quant_data.BAE_temp_quant);
-        saveMax(bae_HK_minmax.BAE_temp_max,quant_data.BAE_temp_quant);
-        saveMin(bae_HK_minmax.Batt_voltage_min,quant_data.Batt_voltage_quant);
-        saveMin(bae_HK_minmax.Batt_voltage_max,quant_data.Batt_voltage_quant);        
+        bae_HK_minmax.BAE_temp_min = saveMin(bae_HK_minmax.BAE_temp_min,quant_data.BAE_temp_quant);
+        bae_HK_minmax.BAE_temp_max = saveMax(bae_HK_minmax.BAE_temp_max,quant_data.BAE_temp_quant);
+        bae_HK_minmax.Batt_voltage_min = saveMin(bae_HK_minmax.Batt_voltage_min,quant_data.Batt_voltage_quant);
+        bae_HK_minmax.Batt_voltage_max = saveMin(bae_HK_minmax.Batt_voltage_max,quant_data.Batt_voltage_quant);        
           
         
     }   
     firstCount=false;
+    
+    //printing the min_max data shouldn't give the tc to get new min max data shouldn't call the case 0x41 now to reset the min_max data
+    for (int i = 0; i < 16; ++i)    
+        eps_pc.printf("\n\rthe min volatages are %d = %d",i,bae_HK_minmax.voltage_min[i]);
+    for (int i = 0; i < 16; ++i)    
+        eps_pc.printf("\n\rthe min current are %d = %d",i,bae_HK_minmax.current_min[i]);
+    for (int i = 0; i < 2; ++i)    
+        eps_pc.printf("\n\rthe min bae_temp are %d = %d",i,bae_HK_minmax.Batt_temp_min[i]);
+       
+       eps_pc.printf("\n\rthe min batt_SOC_min are  %d",bae_HK_minmax.Batt_SOC_min);
+       eps_pc.printf("\n\rthe min BCN_TEMP_min are  %d",bae_HK_minmax.BCN_TEMP_min);
+      
+     for (int i = 0; i < 3; ++i)
+        {
+            eps_pc.printf("\n\rthe min bit_data_acs_mg_min are %d = %d",i,bae_HK_minmax.bit_data_acs_mg_min[i]);
+        }
+        for (int i = 0; i < 3; ++i)
+        {
+            eps_pc.printf("\n\rthe min bit_data_acs_mm_min are %d = %d",i,bae_HK_minmax.bit_data_acs_mm_min[i]);
+        }
+        
+        eps_pc.printf("\n\rthe min BAE_temp_min are %d",bae_HK_minmax.BAE_temp_min);
+        eps_pc.printf("\n\rthe min Batt_voltage_min %d",bae_HK_minmax.Batt_voltage_min);
+        
+    //max data now
+    for (int i = 0; i < 16; ++i)    
+        eps_pc.printf("\n\rthe max volatages are %d = %d",i,bae_HK_minmax.voltage_max[i]);
+    for (int i = 0; i < 16; ++i)    
+        eps_pc.printf("\n\rthe max current are %d = %d",i,bae_HK_minmax.current_max[i]);
+    for (int i = 0; i < 2; ++i)    
+        eps_pc.printf("\n\rthe max bae_temp are %d = %d",i,bae_HK_minmax.Batt_temp_max[i]);
+       
+       eps_pc.printf("\n\rthe max batt_SOC_max are %d",bae_HK_minmax.Batt_SOC_max);
+       eps_pc.printf("\n\rthe max BCN_TEMP_max are %d",bae_HK_minmax.BCN_TEMP_max);
+      
+     for (int i = 0; i < 3; ++i)
+        {
+            eps_pc.printf("\n\rthe max bit_data_acs_mg_max are %d = %d",i,bae_HK_minmax.bit_data_acs_mg_max[i]);
+        }
+        for (int i = 0; i < 3; ++i)
+        {
+            eps_pc.printf("\n\rthe max bit_data_acs_mm_max are %d = %d",i,bae_HK_minmax.bit_data_acs_mm_max[i]);
+        }
+        
+        eps_pc.printf("\n\rthe max BAE_temp_max are %d ",bae_HK_minmax.BAE_temp_max);
+        eps_pc.printf("\n\rthe max Batt_voltage_max %d ",bae_HK_minmax.Batt_voltage_max);
+        
+    
 }
-
+ 
 
 //............................................BATTERY GAUGE......................................//
 void FCTN_BATTERYGAUGE_INIT()