Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of workinQM_5thJan_azad by
Diff: EPS.cpp
- Revision:
- 101:cf1976e16f28
- Parent:
- 99:2cc5c0c98cb3
diff -r af43bc82d3eb -r cf1976e16f28 EPS.cpp --- 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]);