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: TCTM.cpp
- Revision:
- 49:61c9f28332ba
- Parent:
- 47:d59ba66229ce
- Child:
- 52:daa685b0e390
--- a/TCTM.cpp Fri Jul 08 08:25:39 2016 +0000 +++ b/TCTM.cpp Thu Jul 14 23:04:26 2016 +0000 @@ -1,3 +1,4 @@ + #include "mbed.h" #include "rtos.h" #include "TCTM.h" @@ -12,14 +13,18 @@ #include "cassert" #include"math.h" +//Serial pc(USBTX,USBRX); + +Serial gpc(USBTX, USBRX); + + //**********************************STATUS_PARAMETERS***************************************************** uint8_t BCN_TX_SW_ENABLE=0x00; //***********************************FOR STANDBY TIMER**************************************************** extern void BAE_STANDBY_TIMER_RESET(); -uint8_t telemetry[135]; -extern uint8_t BAE_HK_data[134]; +uint8_t telemetry[134]; //*****************PARA****************************** @@ -75,6 +80,11 @@ //main +extern Timer BAE_uptime; +extern Timer I2C_last; +extern uint8_t BAE_RESET_COUNTER; +extern void RETURN_UPTIME(float time, uint8_t *day,uint8_t *hour,uint8_t *min); + extern uint8_t ACS_ATS_STATUS; extern uint16_t ACS_MAIN_COUNTER;//change\apply extern uint8_t HTR_CYCLE_COUNTER; @@ -84,36 +94,36 @@ extern uint8_t HTR_ON_DURATION; //EPS_HTR_OFF timer duration in minutes extern uint16_t HTR_CYCLE_PERIOD; -extern DigitalInOut ACS_TR_XY_ENABLE; -extern DigitalInOut ACS_TR_Z_ENABLE; -extern DigitalInOut ACS_TR_XY_OC_FAULT; -extern DigitalInOut ACS_TR_Z_OC_FAULT; -extern DigitalInOut ACS_TR_XY_FAULT; -extern DigitalInOut ACS_TR_Z_FAULT; -extern DigitalInOut ACS_ATS1_OC_FAULT; -extern DigitalInOut ACS_ATS2_OC_FAULT; +extern DigitalOut ACS_TR_XY_ENABLE; +extern DigitalOut ACS_TR_Z_ENABLE; +extern DigitalIn ACS_TR_XY_OC_FAULT; +extern DigitalIn ACS_TR_Z_OC_FAULT; +extern DigitalIn ACS_TR_XY_FAULT; +extern DigitalIn ACS_TR_Z_FAULT; +extern DigitalIn ACS_ATS1_OC_FAULT; +extern DigitalIn ACS_ATS2_OC_FAULT; -extern DigitalInOut ATS1_SW_ENABLE; // enable of att sens2 switch -extern DigitalInOut ATS2_SW_ENABLE; // enable of att sens switch +extern DigitalOut ATS1_SW_ENABLE; // enable of att sens2 switch +extern DigitalOut ATS2_SW_ENABLE; // enable of att sens switch -extern DigitalInOut DRV_Z_EN; -extern DigitalInOut DRV_XY_EN; -extern DigitalInOut TRXY_SW; //TR XY Switch if any TR_SW error arises then it is same as TR_SW_EN -extern DigitalInOut TRZ_SW; //TR Z Switch +extern DigitalOut DRV_Z_EN; +extern DigitalOut DRV_XY_EN; +extern DigitalOut TRXY_SW; //TR XY Switch if any TR_SW error arises then it is same as TR_SW_EN +extern DigitalOut TRZ_SW; //TR Z Switch -extern DigitalInOut phase_TR_x; -extern DigitalInOut phase_TR_y; -extern DigitalInOut phase_TR_z; +extern DigitalOut phase_TR_x; +extern DigitalOut phase_TR_y; +extern DigitalOut phase_TR_z; //CDMS -extern DigitalInOut CDMS_RESET; // CDMS RESET +extern DigitalOut CDMS_RESET; // CDMS RESET extern uint8_t CDMS_SW_STATUS; -extern DigitalInOut CDMS_OC_FAULT; +extern DigitalIn CDMS_OC_FAULT; //BCN -extern DigitalInOut BCN_SW; //Beacon switch +extern DigitalOut BCN_SW; //Beacon switch extern uint8_t BCN_TX_STATUS; extern uint8_t BCN_FEN; extern uint8_t BCN_SPND_TX; @@ -123,7 +133,7 @@ extern uint8_t BCN_INIT_STATUS; extern uint8_t BCN_FAIL_COUNT; extern uint16_t BCN_TX_MAIN_COUNTER; -extern DigitalInOut BCN_TX_OC_FAULT; +extern DigitalIn BCN_TX_OC_FAULT; extern uint8_t BCN_TMP; extern void F_BCN(); extern void FCTN_BCN_TX_MAIN(); @@ -174,9 +184,9 @@ extern DigitalOut SelectLineb2; extern DigitalOut SelectLineb1; extern DigitalOut SelectLineb0; -extern DigitalInOut EPS_CHARGER_FAULT; -extern DigitalInOut EPS_CHARGER_STATUS; -extern DigitalInOut EPS_BATTERY_GAUGE_ALERT; +extern DigitalIn EPS_CHARGER_FAULT; +extern DigitalIn EPS_CHARGER_STATUS; +extern DigitalIn EPS_BATTERY_GAUGE_ALERT; extern void F_EPS(); extern AnalogIn CurrentInput; @@ -220,7 +230,7 @@ float div=max-min; div=(65535.0/div); val=((val-min)*div); - printf("\n\r the scale is %x",(uint16_t)val); + gpc.printf("\n\r the scale is %x",(uint16_t)val); return (uint16_t)val; } @@ -250,7 +260,7 @@ float theta_z = acosf(cos_z); return theta_z; - //printf("/n cos_zz= %f /t theta_z= %f /n",cos_z,theta_z); + //gpc.printf("/n cos_zz= %f /t theta_z= %f /n",cos_z,theta_z); } //uint8_t tm1[134]; @@ -268,7 +278,7 @@ /*chaged*/ uint8_t* tm; // without it some identifier error uint16_t crc16=CRC::crc16_gen(telemetry,9); //implementing crc - printf("\n\r the crc is %x",crc16); + gpc.printf("\n\r the crc is %x",crc16); if( ( ((uint8_t)((crc16 & 0xFF00)>>8)==tc[9]) && ((uint8_t)(crc16 & 0x00FF)==tc[10]) )== 0 ) { telemetry[0]=0xB0; @@ -282,7 +292,7 @@ crc16 = CRC::crc16_gen(telemetry,11); telemetry[11] = (uint8_t)((crc16&0xFF00)>>8); telemetry[12] = (uint8_t)(crc16&0x00FF); - printf("\n\rincorrect crc"); + gpc.printf("\n\rincorrect crc"); for(int i=13;i<134;i++) { telemetry[i]=0x00; @@ -304,7 +314,7 @@ crc16 = CRC::crc16_gen(telemetry,11); telemetry[11] = (uint8_t)((crc16&0xFF00)>>8); telemetry[12] = (uint8_t)(crc16&0x00FF); - printf("\n\rillegal TC packet APID don't match"); + gpc.printf("\n\rillegal TC packet APID don't match"); for(int i=13;i<134;i++) { telemetry[i]=0x00; @@ -318,20 +328,20 @@ { case 0x60: { - printf("Memory Management Service\r\n"); + gpc.printf("Memory Management Service\r\n"); uint8_t service_subtype=(tc[2]&0x0F); switch(service_subtype) { case 0x02: { - printf("\n\rRead from RAM"); + gpc.printf("\n\rRead from RAM"); uint16_t MID = ((uint16_t)tc[3] << 8) | tc[4]; switch(MID) { case 0x0000://changed from 0001 { - printf("\n\rRead from MID 0000 \n"); - printf("\n\rReading flash parameters"); + gpc.printf("\n\rRead from MID 0000 \n"); + gpc.printf("\n\rReading flash parameters"); /*taking some varible till we find some thing more useful*/ //uint8_t ref_val=0x01; @@ -425,63 +435,71 @@ telemetry[46] = BCN_TX_MAIN_COUNTER>>8; telemetry[47] = EPS_MAIN_COUNTER; telemetry[48] = EPS_MAIN_COUNTER>>8; + + uint8_t days,hours,mins; + RETURN_UPTIME(BAE_uptime.read(),&days,&hours,&mins); + telemetry[49] = days; + RETURN_UPTIME(I2C_last.read(),&days,&hours,&mins); + telemetry[49] = (telemetry[49]<<3) | (hours>>2); + telemetry[50] = hours; + telemetry[50] = (telemetry[50]<<6) | mins; + //sending in uint can be converted back to int by direct conversion for +values //make sure to convert baack to int for getting negative values //algo for that done - telemetry[49] = actual_data.bit_data_acs_mm[0]; - telemetry[50] = actual_data.bit_data_acs_mm[0]>>8; - telemetry[51] = actual_data.bit_data_acs_mm[1]; - telemetry[52] = actual_data.bit_data_acs_mm[1]>>8; - telemetry[53] = actual_data.bit_data_acs_mm[2]; - telemetry[54] = actual_data.bit_data_acs_mm[2]>>8; + telemetry[51] = actual_data.bit_data_acs_mm[0]; + telemetry[52] = actual_data.bit_data_acs_mm[0]>>8; + telemetry[53] = actual_data.bit_data_acs_mm[1]; + telemetry[54] = actual_data.bit_data_acs_mm[1]>>8; + telemetry[55] = actual_data.bit_data_acs_mm[2]; + telemetry[56] = actual_data.bit_data_acs_mm[2]>>8; - telemetry[55] = actual_data.bit_data_acs_mg[0]; - telemetry[56] = actual_data.bit_data_acs_mg[0]>>8; - telemetry[57] = actual_data.bit_data_acs_mg[1]; - telemetry[58] = actual_data.bit_data_acs_mg[1]>>8; - telemetry[59] = actual_data.bit_data_acs_mg[2]; - telemetry[60] = actual_data.bit_data_acs_mg[2]>>8; + telemetry[57] = actual_data.bit_data_acs_mg[0]; + telemetry[58] = actual_data.bit_data_acs_mg[0]>>8; + telemetry[59] = actual_data.bit_data_acs_mg[1]; + telemetry[60] = actual_data.bit_data_acs_mg[1]>>8; + telemetry[61] = actual_data.bit_data_acs_mg[2]; + telemetry[62] = actual_data.bit_data_acs_mg[2]>>8; - telemetry[61] = BCN_TX_OC_FAULT; - telemetry[61] = (telemetry[61]<<1) | ACS_TR_XY_ENABLE; - telemetry[61] = (telemetry[61]<<1) | ACS_TR_Z_ENABLE; - telemetry[61] = (telemetry[61]<<1) | ACS_TR_XY_OC_FAULT; - telemetry[61] = (telemetry[61]<<1) | ACS_TR_Z_OC_FAULT; - telemetry[61] = (telemetry[61]<<1) | ACS_TR_XY_FAULT; - telemetry[61] = (telemetry[61]<<1) | EPS_CHARGER_FAULT; - telemetry[61] = (telemetry[61]<<1) | EPS_CHARGER_STATUS; + telemetry[63] = BCN_TX_OC_FAULT; + telemetry[63] = (telemetry[63]<<1) | ACS_TR_XY_ENABLE; + telemetry[63] = (telemetry[63]<<1) | ACS_TR_Z_ENABLE; + telemetry[63] = (telemetry[63]<<1) | ACS_TR_XY_OC_FAULT; + telemetry[63] = (telemetry[63]<<1) | ACS_TR_Z_OC_FAULT; + telemetry[63] = (telemetry[63]<<1) | ACS_TR_XY_FAULT; + telemetry[63] = (telemetry[63]<<1) | EPS_CHARGER_FAULT; + telemetry[63] = (telemetry[63]<<1) | EPS_CHARGER_STATUS; - telemetry[62] = EPS_BATTERY_GAUGE_ALERT; - telemetry[62] = (telemetry[62]<<1) | CDMS_OC_FAULT; - telemetry[62] = (telemetry[62]<<1) | ACS_ATS1_OC_FAULT; - telemetry[62] = (telemetry[62]<<1) | ACS_ATS2_OC_FAULT; - telemetry[62] = (telemetry[62]<<1) | ACS_TR_Z_FAULT; - telemetry[62] = (telemetry[62]<<3); + telemetry[64] = EPS_BATTERY_GAUGE_ALERT; + telemetry[64] = (telemetry[64]<<1) | CDMS_OC_FAULT; + telemetry[64] = (telemetry[64]<<1) | ACS_ATS1_OC_FAULT; + telemetry[64] = (telemetry[64]<<1) | ACS_ATS2_OC_FAULT; + telemetry[64] = (telemetry[64]<<1) | ACS_TR_Z_FAULT; + telemetry[64] = (telemetry[64]<<3); //3 spare - telemetry[63] = ACS_TR_X_PWM; - telemetry[64] = ACS_TR_Y_PWM; - telemetry[65] = ACS_TR_Z_PWM; + telemetry[65] = ACS_TR_X_PWM; + telemetry[66] = ACS_TR_Y_PWM; + telemetry[67] = ACS_TR_Z_PWM; //spare byte //assigned it to counter HTR_CYCLE_COUNTER //assign it b_scz_angle - telemetry[66] = B_SCZ_ANGLE>>4; - telemetry[66] = (telemetry[66]<<1) | alarmmode; - telemetry[66] = (telemetry[66]<<1) | controlmode_mms; - telemetry[66] = (telemetry[66]<<2); - //2 bit spare + telemetry[68] = B_SCZ_ANGLE>>4; + telemetry[68] = (telemetry[68]<<1) | alarmmode; + telemetry[68] = (telemetry[68]<<1) | controlmode_mms; + telemetry[68] = (telemetry[68]<<1) | singularity_flag_mms; + telemetry[68] = (telemetry[68]<<1); + //1 bit spare for(int i=0;i<9;i++) { - telemetry[67+i] = invjm_mms[i]; + telemetry[69+i] = invjm_mms[i]; telemetry[80+i] = jm_mms[i]; } - for(int i=0;i<3;i++) - telemetry[76+i] = bb_mms[i]; - - telemetry[79] = singularity_flag_mms; + for(int i=0;i<2;i++) + telemetry[78+i] = bb_mms[i]; for(int i=0;i<16;i++) { @@ -520,7 +538,7 @@ } case 0x0001: { - printf("\r\nhk data tm"); + gpc.printf("\r\nhk data tm"); telemetry[0] = 0x60; telemetry[1] = tc[0]; telemetry[2] = ACK_CODE; @@ -623,9 +641,9 @@ } case 0x05: { - printf("\n\rdata for mms 0x05 flash"); + gpc.printf("\n\rdata for mms 0x05 flash"); /*changed*/ - printf("\n\rwrite on flash\n"); + gpc.printf("\n\rwrite on flash\n"); uint32_t FLASH_DATA;//256 bits uint8_t VALID_MID;//to determine wether mid is valid or not otherwise to much repetition of code 1 meaning valid @@ -648,7 +666,10 @@ { //FLASH_DATA[1] = (((uint32_t)tc[5] << 24) | ((uint32_t)tc[6] << 16) | ((uint32_t)tc[7] << 8) | (uint32_t)tc[6]); ACS_DETUMBLING_ALGO_TYPE = (tc[8] & 0x01); - ACS_STATE = (tc[8]>>1) & 0x0F; + //=============================================== + ACS_STATE = 4; + //tc[8] = 1001_ + //ACS_STATE = (tc[8]>>1) & 0x0F; FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(0); FLASH_DATA = (FLASH_DATA & 0xFFF07FFF) | (15<<(uint32_t)tc[8]); FCTN_BAE_WR_FLASH(0,FLASH_DATA); @@ -733,7 +754,7 @@ default: { - printf("Invalid MMS case 0x05 invalid MID\r\n"); + gpc.printf("Invalid MMS case 0x05 invalid MID\r\n"); VALID_MID=0; //ACK_L234_telemetry break; @@ -766,12 +787,12 @@ telemetry[i]=0x00; } - printf("\n\rWritten on Flash"); + gpc.printf("\n\rWritten on Flash"); break; } default://when invalid service subtype { - printf("\n\r MMS invalid Service Subtype"); + gpc.printf("\n\r MMS invalid Service Subtype"); //ACK_L234_telemetry telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -794,13 +815,13 @@ } case 0x80: { - //printf("Function Management Service\r\n"); + //gpc.printf("Function Management Service\r\n"); uint8_t service_subtype=(tc[2]&0x0F); switch(service_subtype) { case 0x01: { - printf("\n\rFMS Activated"); + gpc.printf("\n\rFMS Activated"); uint8_t fid=tc[3];//changed from pid to fid switch(fid) { @@ -809,37 +830,37 @@ float mag_data_comm[3]={uint16_to_float(-1000,1000,ACS_MM_X_COMSN),uint16_to_float(-1000,1000,ACS_MM_Y_COMSN),uint16_to_float(-1000,1000,ACS_MM_Z_COMSN)}; float gyro_data_comm[3]={uint16_to_float(-5000,5000,ACS_MG_X_COMSN),uint16_to_float(-5000,5000,ACS_MG_Y_COMSN),uint16_to_float(-5000,5000,ACS_MG_Z_COMSN)}; float moment_comm[3]; - printf("ACS_COMSN SOFTWARE\r\n"); + gpc.printf("ACS_COMSN SOFTWARE\r\n"); //ACK_L234_telemetry ACS_STATE = tc[4]; - if(ACS_STATE == 7) // Nominal mode + if(ACS_STATE == 2) // Nominal mode { - printf("\n\r Nominal mode \n"); + gpc.printf("\n\r Nominal mode \n"); FCTN_ACS_CNTRLALGO(moment_comm,mag_data_comm,gyro_data_comm,0x01,0x00,ACS_DETUMBLING_ALGO_TYPE); - printf("\n\r Moment values returned by control algo \n"); + gpc.printf("\n\r Moment values returned by control algo \n"); for(int i=0; i<3; i++) { - printf("%f\t",moment_comm[i]); + gpc.printf("%f\t",moment_comm[i]); } } - else if(ACS_STATE == 8) // Auto Control + else if(ACS_STATE == 3) // Auto Control { - printf("\n\r Auto control mode \n"); + gpc.printf("\n\r Auto control mode \n"); FCTN_ACS_CNTRLALGO(moment_comm,mag_data_comm,gyro_data_comm,0x00,0x00,ACS_DETUMBLING_ALGO_TYPE); - printf("\n\r Moment values returned by control algo \n"); + gpc.printf("\n\r Moment values returned by control algo \n"); for(int i=0; i<3; i++) { - printf("%f\t",moment_comm[i]); + gpc.printf("%f\t",moment_comm[i]); } } - else if(ACS_STATE == 9) // Detumbling + else if(ACS_STATE == 4) // Detumbling { FCTN_ACS_CNTRLALGO(moment_comm,mag_data_comm,gyro_data_comm,0x00,0x01,ACS_DETUMBLING_ALGO_TYPE); - printf("\n\r Moment values returned by control algo \n"); + gpc.printf("\n\r Moment values returned by control algo \n"); for(int i=0; i<3; i++) { - printf("%f\t",moment_comm[i]); + gpc.printf("%f\t",moment_comm[i]); } } else @@ -849,6 +870,9 @@ // Control algo commissioning uint16_t moment_ret; + telemetry[0] = 0x78; + telemetry[1] = tc[0]; + telemetry[2] = ACK_CODE; telemetry[3] = 0x00; telemetry[4] = ACS_STATUS; moment_ret = float_to_uint16(-2.2,2.2,moment_comm[0]); @@ -870,13 +894,13 @@ telemetry[i]=0x00; } crc16 = CRC::crc16_gen(telemetry,132); - telemetry[133] = (uint8_t)((crc16&0xFF00)>>8); - telemetry[134] = (uint8_t)(crc16&0x00FF); + telemetry[132] = (uint8_t)((crc16&0xFF00)>>8); + telemetry[133] = (uint8_t)(crc16&0x00FF); break; } case 0xE1: { - printf("HARDWARE_COMSN\r\n"); + gpc.printf("HARDWARE_COMSN\r\n"); //ACK_L234_telemetry uint8_t SENSOR_NO; @@ -894,7 +918,7 @@ DRV_Z_EN = 1; DRV_XY_EN = 1; - telemetry[0]=0xB0; + telemetry[0]=0x78; telemetry[1]=tc[0]; telemetry[2]=ACK_CODE; telemetry[3] = 0x00; @@ -1239,7 +1263,7 @@ // to include commission TR as well - telemetry[58] = SENSOR_NO; + telemetry[59] = SENSOR_NO; for(uint8_t i=60;i<132;i++) { @@ -1247,8 +1271,8 @@ } crc16 = CRC::crc16_gen(telemetry,132); - telemetry[133] = (uint8_t)((crc16&0xFF00)>>8); - telemetry[134] = (uint8_t)(crc16&0x00FF); + telemetry[132] = (uint8_t)((crc16&0xFF00)>>8); + telemetry[133] = (uint8_t)(crc16&0x00FF); break; } case 0xE2: @@ -1347,13 +1371,13 @@ case 0x01: { if(BAE_STANDBY==0x07) { - printf("\n\rRun P_EPS_INIT"); + gpc.printf("\n\rRun P_EPS_INIT"); FCTN_EPS_INIT(); telemetry[2]=ACK_CODE; } else { - printf("\n\runable to Run P_EPS_INIT as BAE_STATUS not 111 ");; + gpc.printf("\n\runable to Run P_EPS_INIT as BAE_STATUS not 111 ");; telemetry[2]=0x87; } @@ -1379,13 +1403,13 @@ { if(BAE_STANDBY==0x07) { - printf("\n\rRun P_EPS_MAIN"); + gpc.printf("\n\rRun P_EPS_MAIN"); F_EPS(); telemetry[2]=ACK_CODE; } else { - printf("\n\runable to Run P_EPS_MAIN as BAE_STATUS not 111 ");; + gpc.printf("\n\runable to Run P_EPS_MAIN as BAE_STATUS not 111 ");; telemetry[2]=0x87; } @@ -1410,13 +1434,13 @@ { if(BAE_STANDBY==0x07) { - printf("\n\rRun P_ACS_INIT"); + gpc.printf("\n\rRun P_ACS_INIT"); FCTN_ACS_INIT(); telemetry[2]=ACK_CODE; } else { - printf("\n\runable to Run P_ACS_INIT as BAE_STATUS not 111 ");; + gpc.printf("\n\runable to Run P_ACS_INIT as BAE_STATUS not 111 ");; telemetry[2]=0x87; } @@ -1441,13 +1465,13 @@ { if(BAE_STANDBY==0x07) { - printf("\n\rRun P_ACS_MAIN"); + gpc.printf("\n\rRun P_ACS_MAIN"); F_ACS(); telemetry[2]=ACK_CODE; } else { - printf("\n\runable to Run P_ACS_MAIN as BAE_STATUS not 111 ");; + gpc.printf("\n\runable to Run P_ACS_MAIN as BAE_STATUS not 111 ");; telemetry[2]=0x87; } @@ -1473,13 +1497,13 @@ { if(BAE_STANDBY==0x07) { - printf("\n\rRun P_BCN_INIT"); + gpc.printf("\n\rRun P_BCN_INIT"); F_BCN(); telemetry[2]=ACK_CODE; } else { - printf("\n\runable to Run P_BCN_INIT as BAE_STATUS not 111 ");; + gpc.printf("\n\runable to Run P_BCN_INIT as BAE_STATUS not 111 ");; telemetry[2]=0x87; } @@ -1504,13 +1528,13 @@ { if(BAE_STANDBY==0x07) { - printf("\n\rRun P_BCN_TX_MAIN"); + gpc.printf("\n\rRun P_BCN_TX_MAIN"); FCTN_BCN_TX_MAIN();//correct function check once telemetry[2]=ACK_CODE; } else { - printf("\n\runable to Run P_BCN_TX_MAIN as BAE_STATUS not 111 ");; + gpc.printf("\n\runable to Run P_BCN_TX_MAIN as BAE_STATUS not 111 ");; telemetry[2]=0x87; } @@ -1533,7 +1557,7 @@ } case 0x11: { - printf("\n\rSW_ON_ACS_ATS1_SW_ENABLE"); + gpc.printf("\n\rSW_ON_ACS_ATS1_SW_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1563,7 +1587,7 @@ } case 0x12: { - printf("\n\rSW_ON_ACS_ATS2_SW_ENABLE"); + gpc.printf("\n\rSW_ON_ACS_ATS2_SW_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1587,11 +1611,11 @@ } case 0x13: { - printf("\n\rSW_ON_ACS_TR_XY_ENABLE"); + gpc.printf("\n\rSW_ON_ACS_TR_XY_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; - TRXY_SW = 1;//1 SWITCH enable here + DRV_XY_EN = 1;//1 SWITCH enable here ACS_TR_XY_SW_STATUS=0x01; telemetry[2]=ACK_CODE; for(uint8_t i=3;i<11;i++) @@ -1609,11 +1633,11 @@ } case 0x14: { - printf("\n\rSW_ON_ACS_TR_Z_ENABLE"); + gpc.printf("\n\rSW_ON_ACS_TR_Z_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; - TRZ_SW = 1; + DRV_Z_EN = 1; ACS_TR_Z_SW_STATUS=0x01; telemetry[2]=ACK_CODE; for(uint8_t i=3;i<11;i++) @@ -1631,7 +1655,7 @@ } case 0x15: { - printf("\n\rSW_ON_BCN_TX_SW_ENABLE"); + gpc.printf("\n\rSW_ON_BCN_TX_SW_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1653,13 +1677,19 @@ } case 0x21: { - printf("\n\rSW_OFF_ACS_ATS1_SW_ENABLE"); + gpc.printf("\n\rSW_OFF_ACS_ATS1_SW_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; ATS1_SW_ENABLE = 1; ACS_ATS_STATUS = (ACS_ATS_STATUS & 0x3F) | 0xC0 ; telemetry[2]=ACK_CODE; + + uint32_t FLASH_DATA; + FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(0); + FLASH_DATA = (FLASH_DATA | 0xC0000000); + FCTN_BAE_WR_FLASH(0,FLASH_DATA); + for(uint8_t i=3;i<11;i++) { telemetry[i]=0x00; @@ -1675,11 +1705,17 @@ } case 0x22: { - printf("\n\rSW_OFF_ACS_ATS2_SW_ENABLE"); + gpc.printf("\n\rSW_OFF_ACS_ATS2_SW_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; ATS2_SW_ENABLE = 1; + + uint32_t FLASH_DATA; + FLASH_DATA = FCTN_BAE_RD_FLASH_ENTITY(0); + FLASH_DATA = (FLASH_DATA | 0x0C000000); + FCTN_BAE_WR_FLASH(0,FLASH_DATA); + ACS_ATS_STATUS = (ACS_ATS_STATUS & 0xF3) | 0x0C ; telemetry[2]=ACK_CODE; for(uint8_t i=3;i<11;i++) @@ -1697,7 +1733,7 @@ } case 0x23: { - printf("\n\rSW_OFF_ACS_TR_XY_ENABLE"); + gpc.printf("\n\rSW_OFF_ACS_TR_XY_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1719,7 +1755,7 @@ } case 0x24: { - printf("\n\rSW_OFF_ACS_TR_Z_ENABLE"); + gpc.printf("\n\rSW_OFF_ACS_TR_Z_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1741,7 +1777,7 @@ } case 0x25: { - printf("\n\rSW_OFF_BCN_TX_SW_ENABLE"); + gpc.printf("\n\rSW_OFF_BCN_TX_SW_ENABLE"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1763,7 +1799,7 @@ } case 0x31: { - printf("\n\rACS_ATS1_SW_RESET"); + gpc.printf("\n\rACS_ATS1_SW_RESET"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1787,7 +1823,7 @@ } case 0x32: { - printf("\n\rACS_ATS2_SW_RESET"); + gpc.printf("\n\rACS_ATS2_SW_RESET"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1811,7 +1847,7 @@ } case 0x33: { - printf("\n\rACS_TR_XY_SW_RESET"); + gpc.printf("\n\rACS_TR_XY_SW_RESET"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1834,7 +1870,7 @@ } case 0x34: { - printf("\n\rACS_TR_Z_SW_RESET"); + gpc.printf("\n\rACS_TR_Z_SW_RESET"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1857,7 +1893,7 @@ } case 0x35: { - printf("\n\rBCN_TX_SW_RESET"); + gpc.printf("\n\rBCN_TX_SW_RESET"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1880,13 +1916,13 @@ } case 0x36: { - printf("\n\rBAE_INTERNAL_RESET TO be done ??"); + gpc.printf("\n\rBAE_INTERNAL_RESET TO be done "); NVIC_SystemReset(); break; } case 0x37: { - printf("\n\rCDMS_RESET"); + gpc.printf("\n\rCDMS_RESET"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1907,9 +1943,9 @@ } break; } - case 0x38: + case 0x38://not in IF present in SBC { - printf("\n\rCDMS_SW_RESET pin yet to be decided"); + gpc.printf("\n\rCDMS_SW_RESET pin yet to be decided"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1930,26 +1966,26 @@ } break; } - case 0x40: + case 0x40://condition changed by AK47 now 00 means off in TC { uint8_t STANDBY_DATA_TC; BAE_STANDBY=0x00; STANDBY_DATA_TC=tc[4]; - if(STANDBY_DATA_TC==0x01) + if(STANDBY_DATA_TC==0x00) { BAE_STANDBY |=0x04; BAE_STANDBY_TIMER_RESET(); //BAE_STANDBY_TIMER();//to be created to make all sensor on after 20 minutes } STANDBY_DATA_TC=tc[5]; - if(STANDBY_DATA_TC==0x01) + if(STANDBY_DATA_TC==0x00) { BAE_STANDBY |=0x02; BAE_STANDBY_TIMER_RESET(); //BAE_STANDBY_TIMER();//to be created to make all sensor on after 20 minutes } STANDBY_DATA_TC=tc[6]; - if(STANDBY_DATA_TC==0x01) + if(STANDBY_DATA_TC==0x00) { BAE_STANDBY |=0x01; BAE_STANDBY_TIMER_RESET(); @@ -1973,13 +2009,10 @@ } case 0x41: { - printf("\n\rexecutng BAE reset HK counter"); + gpc.printf("\n\rexecutng BAE reset HK counter"); firstCount=true; void minMaxHkData(); - - //what to do here??************************************************* - //TO BE DONE - + //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -1999,7 +2032,7 @@ } default: { - printf("\n\rInvalid TC for FMS no matching FID"); + gpc.printf("\n\rInvalid TC for FMS no matching FID"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -2022,7 +2055,7 @@ } default: { - printf("\n\rInvalid TC, FMS service subtype mismacth"); + gpc.printf("\n\rInvalid TC, FMS service subtype mismacth"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -2045,7 +2078,7 @@ } default: { - printf("\n\rInvalid TC neither FMS nor MMS"); + gpc.printf("\n\rInvalid TC neither FMS nor MMS"); //ACK_L234_TM telemetry[0]=0xB0; telemetry[1]=tc[0]; @@ -2120,7 +2153,7 @@ //float* output1 = reinterpret_cast<float*>(temp); - //printf("\n\r %f ", input); + //gpc.printf("\n\r %f ", input); //std::cout << "\n\r uint32"<<*temp << std::endl; output[0] =(uint8_t )(((*temp)>>24)&0xFF); @@ -2128,13 +2161,13 @@ output[2] =(uint8_t ) (((*temp)>>8)&0xFF); output[3] =(uint8_t ) ((*temp) & 0xFF); // verify the logic - // printf("\n\rthe values generated are\n"); - /*printf("\n\r%x\n",output[0]); - printf("\n\r%x\n",output[1]); - printf("\n\r%x\n",output[2]); - printf("\n\r%x\n",output[3]); + // gpc.printf("\n\rthe values generated are\n"); + /*gpc.printf("\n\r%x\n",output[0]); + gpc.printf("\n\r%x\n",output[1]); + gpc.printf("\n\r%x\n",output[2]); + gpc.printf("\n\r%x\n",output[3]); to check the values generated */ - //printf("\n\r inside %d %d %d %d", output[3],output[2],output[1],output[0]); + //gpc.printf("\n\r inside %d %d %d %d", output[3],output[2],output[1],output[0]); //std:: cout << "\n\r uint8 inside " << output[3] << '\t' << output[2] << '\t' << output[1] << '\t' << output[0] <<std::endl; } \ No newline at end of file