
CDMS code for testing sbc
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE by
Diff: COM_MNG_TMTC.h
- Revision:
- 266:ae588e75cfa4
- Parent:
- 264:f7d8f9f361e3
- Child:
- 272:9dacc1d8459a
--- a/COM_MNG_TMTC.h Thu Jul 14 23:05:09 2016 +0000 +++ b/COM_MNG_TMTC.h Fri Jul 15 14:59:27 2016 +0000 @@ -348,11 +348,6 @@ //uint8_t ACKCODE = 0xB0; bool y; //gPC.printf("\rTC execution in progress\r\n"); - Base_tm *tm_pointer = new Long_tm; - Base_tm *tm_ptr = tm_pointer; - //Base_tm *tm_ptr = new Long_tm; - Base_tm *tm_pointer_short = new Short_tm; - Base_tm *tm_ptr_short = tm_pointer_short; received = 0; switch(GETapid(tc_ptr)) //checking APID's { @@ -366,44 +361,46 @@ if(y==1) { - gPC.printf("BAE write fail\r\n"); + gPC.printf("Write fail\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x03,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } else if(y==0) { - gPC.printf("BAE write succe\r\n"); + gPC.printf("Write success\r\n"); //wait(0.2); int poll=0; - while(poll<9000 && BAE_I2C_GPIO==0) + while(poll<20000 && BAE_I2C_GPIO==0) { wait_us(10); poll+=1; } - //while(BAE_I2C_GPIO==0){} - if(BAE_I2C_GPIO == 1) //name to be changed later + if(BAE_I2C_GPIO == 1) { - gPC.printf("BAE_I2C_GPIO is high\r\n"); - - y=FCTN_I2C_READ((char*)tm_pointer->TM_string,TM_LONG_SIZE); //rify later about the size + //gPC.printf("BAE_I2C_GPIO is high\r\n"); + Base_tm *tm_ptr = new Long_tm; + y=FCTN_I2C_READ((char*)tm_ptr->TM_string,TM_LONG_SIZE); if(y==0) { - gPC.printf("BAE read success\r\n"); - tm_pointer->next_TM=NULL; + gPC.printf("Read success\r\n"); + tm_ptr->next_TM=NULL; return tm_ptr; } else if(y==1) { - gPC.printf("BAE read fail\r\n"); + delete tm_ptr; + Base_tm *tm_ptr_short = new Short_tm; + gPC.printf("Read fail\r\n"); ACK_L234(tm_ptr_short,0x85,GETpacket_seq_count(tc_ptr)); //gPC.printf("\n\rPTE->PDIR = 0x%08X",PTE->PDIR); return tm_ptr_short; - break; } } - else if(BAE_I2C_GPIO == 0) //name to be changed later + else if(BAE_I2C_GPIO == 0) { gPC.printf("BAE_I2C_GPIO is not high\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x84,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -427,19 +424,20 @@ mid=((uint16_t)(tc_ptr->TC_string[3]<<4))+((uint16_t)(tc_ptr->TC_string[4])); if(mid!=0x0000 && mid!=0x0001) { + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } - - tm_pointer->TM_string[0] = 0x30; - tm_pointer->TM_string[1] = GETpacket_seq_count(tc_ptr); - tm_pointer->TM_string[2] = 0xA0; - tm_pointer->TM_string[3] = 0x00; //spare bits - FCTN_CDMS_RD_L_RAM(tm_pointer); + Base_tm *tm_ptr = new Long_tm; + tm_ptr->TM_string[0] = 0x30; + tm_ptr->TM_string[1] = GETpacket_seq_count(tc_ptr); + tm_ptr->TM_string[2] = 0xA0; + tm_ptr->TM_string[3] = 0x00; //spare bits + FCTN_CDMS_RD_L_RAM(tm_ptr); crc16 = crc16_gen(tm_ptr->TM_string,132); - tm_pointer->TM_string[132] = (uint8_t)((crc16&0xFF00)>>8); - tm_pointer->TM_string[133] = (uint8_t)(crc16&0x00FF); - tm_pointer->next_TM = NULL; + tm_ptr->TM_string[132] = (uint8_t)((crc16&0xFF00)>>8); + tm_ptr->TM_string[133] = (uint8_t)(crc16&0x00FF); + tm_ptr->next_TM = NULL; return tm_ptr; } case 0x5: // change the cases appropriately @@ -447,9 +445,10 @@ //gPC.printf("WRITE ON SHORT_FLASH_MEMORY\r\n"); mid=(uint16_t)(tc_ptr->TC_string[3]<<4)+(uint16_t)(tc_ptr->TC_string[4]); //32 bits at a time - + Base_tm *tm_ptr_short = new Short_tm; if(mid == 0x0101 || mid==0x0102 || mid == 0x0103 || mid == 0x0100) //allowable MID values? { + ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -477,6 +476,7 @@ flasharray_thres[z] = scp_threshold_m0[z+8]; erase_sector(strt_add_thres); program_flash(strt_add_thres, (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -490,6 +490,7 @@ flasharray_thres[z] = scp_threshold_m0[z+40]; erase_sector(strt_add_thres+SECTOR_SIZE); program_flash(strt_add_thres+SECTOR_SIZE, (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -503,6 +504,7 @@ flasharray_thres[z] = scp_threshold_m1[z]; erase_sector(strt_add_thres+(2*SECTOR_SIZE)); program_flash(strt_add_thres+(2*SECTOR_SIZE), (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -516,6 +518,7 @@ flasharray_thres[z] = scp_threshold_m1[z+32]; erase_sector(strt_add_thres+(3*SECTOR_SIZE)); program_flash(strt_add_thres+(3*SECTOR_SIZE), (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -527,9 +530,9 @@ scp_threshold_m0_1[6] = tc_ptr->TC_string[8]; for(uint8_t z=0;z<5;z++) scp_threshold_m0_1[z] = tc_ptr->TC_string[z+9]; - //scp_sfp_threshold_m0_2[0] = tc_ptr->TC_string[14]; - //scp_sfp_threshold_m0_2[1] = tc_ptr->TC_string[15]; - //scp_sfp_threshold_m0_2[2] = tc_ptr->TC_string[16]; + scp_sfp_threshold_m0_2[0] = tc_ptr->TC_string[14]; + scp_sfp_threshold_m0_2[1] = tc_ptr->TC_string[15]; + scp_sfp_threshold_m0_2[2] = tc_ptr->TC_string[16]; //int strt_add = flash_size() - (7*SECTOR_SIZE); //uint32_t flasharray[32] = {0}; flasharray_thres[0] = scp_threshold_m0_1[7]; @@ -538,11 +541,12 @@ flasharray_thres[3] = scp_threshold_m0_1[6]; for(uint8_t z=0;z<5;z++) flasharray_thres[z+4] = scp_threshold_m0_1[z]; - //flasharray_thres[9] = scp_sfp_threshold_m0_2[0]; - //flasharray_thres[10] = scp_sfp_threshold_m0_2[1]; - //flasharray_thres[11] = scp_sfp_threshold_m0_2[2]; + flasharray_thres[9] = scp_sfp_threshold_m0_2[0]; + flasharray_thres[10] = scp_sfp_threshold_m0_2[1]; + flasharray_thres[11] = scp_sfp_threshold_m0_2[2]; erase_sector(strt_add_thres+(4*SECTOR_SIZE)); program_flash(strt_add_thres+(4*SECTOR_SIZE), (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -560,6 +564,7 @@ flasharray_thres[z] = sfp_threshold_m0[z+8]; erase_sector(strt_add_thres+(5*SECTOR_SIZE)); program_flash(strt_add_thres+(5*SECTOR_SIZE), (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -573,6 +578,7 @@ flasharray_thres[z] = sfp_threshold_m0[z+40]; erase_sector(strt_add_thres+(6*SECTOR_SIZE)); program_flash(strt_add_thres+(6*SECTOR_SIZE), (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -586,6 +592,7 @@ flasharray_thres[z] = sfp_threshold_m1[z]; erase_sector(strt_add_thres+(7*SECTOR_SIZE)); program_flash(strt_add_thres+(7*SECTOR_SIZE), (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -599,6 +606,7 @@ flasharray_thres[z] = sfp_threshold_m1[z+32]; erase_sector(strt_add_thres+(8*SECTOR_SIZE)); program_flash(strt_add_thres+(8*SECTOR_SIZE), (char*)flasharray_thres,32); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -606,6 +614,7 @@ default: { gPC.printf("INVALID SERVICE SUBTYPE\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -618,12 +627,13 @@ { if(GETpid(tc_ptr)==0x01) { + Base_tm *tm_ptr_short = new Short_tm; if(CDMS_STANDBY==1) { //gPC.printf("TC_PL_INIT\r\n"); // call PWR_SWCH_ON function P_PL_INIT(); - + ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -635,6 +645,7 @@ } else if(GETpid(tc_ptr)==0x02) { + Base_tm *tm_ptr_short = new Short_tm; if(CDMS_STANDBY==1) { //gPC.printf("TC_PL_MAIN\r\n"); // call PWR_SWCH_ON function @@ -652,6 +663,7 @@ } else if(GETpid(tc_ptr)==0x03) { + Base_tm *tm_ptr_short = new Short_tm; if(CDMS_STANDBY==1) { //gPC.printf("PL_COM_INIT\r\n"); // call PWR_SWCH_ON function @@ -669,6 +681,7 @@ } else if(GETpid(tc_ptr)==0x04) { + Base_tm *tm_ptr_short = new Short_tm; if(CDMS_STANDBY==1) { //gPC.printf("TC_P_CDMS_HK_MAIN\r\n"); // call PWR_SWCH_ON function @@ -686,6 +699,7 @@ } else if(GETpid(tc_ptr)==0x05) { + Base_tm *tm_ptr_short = new Short_tm; if(CDMS_STANDBY==1) { //gPC.printf("TC_SW_ON_SD\r\n"); // call PWR_SWCH_ON function @@ -703,6 +717,7 @@ } else if(GETpid(tc_ptr)==0x06) { + Base_tm *tm_ptr_short = new Short_tm; if(CDMS_STANDBY==1) { //gPC.printf("TC_SW_ON_RTC\r\n"); // call PWR_SWCH_ON function @@ -723,7 +738,7 @@ //gPC.printf("TC_SW_ON_SD\r\n"); // call PWR_SWCH_ON function CDMS_SD_SW_ON(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -732,7 +747,7 @@ //gPC.printf("TC_SW_ON_SD\r\n"); // call PWR_SWCH_ON function CDMS_SD_SW_OFF(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -741,7 +756,7 @@ //gPC.printf("TC_SW_ON_SD\r\n"); // call PWR_SWCH_ON function CDMS_RTC_ON(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -750,7 +765,7 @@ //gPC.printf("TC_SW_ON_SD\r\n"); // call PWR_SWCH_ON function CDMS_RTC_OFF(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -759,7 +774,7 @@ //gPC.printf("TC_SW_ON_BAE\r\n"); // call PWR_SWCH_ON function SW_ON_BAE(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -768,7 +783,7 @@ //gPC.printf("TC_SW_OFF_BAE\r\n"); // call PWR_SWCH_ON function SW_OFF_BAE(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -777,7 +792,7 @@ //gPC.printf("TC_SW_ON_PL_BEE\r\n"); // call PWR_SWCH_ON function SW_ON_PL_BEE(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -786,7 +801,7 @@ //gPC.printf("TC_SW_OFF_PL_BEE\r\n"); // call PWR_SWCH_ON function SW_OFF_PL_BEE(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -795,7 +810,7 @@ //gPC.printf("TC_SW_ON_PL_EPS\r\n"); // call PWR_SWCH_ON function SW_ON_PL_EPS(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -804,7 +819,7 @@ //gPC.printf("TC_SW_OFF_PL_EPS\r\n"); // call PWR_SWCH_ON function SW_OFF_PL_EPS(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -814,7 +829,7 @@ //gPC.printf("TC_SW_ON_V_A_EN\r\n"); // call PWR_SWCH_ON function SW_ON_V_A_EN(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -823,7 +838,7 @@ //gPC.printf("TC_SW_OFF_V_A_EN\r\n"); // call PWR_SWCH_ON function SW_OFF_V_A_EN(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -832,7 +847,7 @@ //gPC.printf("TC_RST_SD\r\n"); // call PWR_SWCH_ON function RST_SD(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -841,7 +856,7 @@ //gPC.printf("TC_RST_BAE\r\n"); // call PWR_SWCH_ON function RST_BAE(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -850,7 +865,7 @@ //gPC.printf("TC_RST_PL_BEE\r\n"); // call PWR_SWCH_ON function RST_PL_BEE(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -859,6 +874,7 @@ //gPC.printf() CDMS_INTERNAL_RESET(); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); } else if(GETpid(tc_ptr)==0x40) @@ -866,7 +882,7 @@ //gPC.printf("RESET_HK_COUNTER\r\n"); // call PWR_SWCH_ON function STANDBY_PRCS(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -875,7 +891,7 @@ //gPC.printf("RESET_HK_COUNTER\r\n"); // call PWR_SWCH_ON function RST_HK_COUNTER(); - + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -884,62 +900,67 @@ //gPC.printf("TC_CDMS_RD_RTC\r\n"); // call PWR_SWCH_ON function uint32_t time_temp = FCTN_CDMS_RD_RTC(); //RTC_RD_EROR has to incorporated - tm_pointer->TM_string[0] = 0x78; - tm_pointer->TM_string[1] = GETpacket_seq_count(tc_ptr); - tm_pointer->TM_string[2] = 0xA0; - tm_pointer->TM_string[3] = 0x00; - tm_pointer->TM_string[4] = (uint8_t)((time_temp & 0xFF000000)>>24); - tm_pointer->TM_string[5] = (uint8_t)((time_temp & 0x00FF0000)>>16); - tm_pointer->TM_string[6] = (uint8_t)((time_temp & 0x0000FF00)>>8); - tm_pointer->TM_string[7] = (uint8_t)((time_temp & 0x000000FF)); + Base_tm *tm_ptr = new Long_tm; + tm_ptr->TM_string[0] = 0x78; + tm_ptr->TM_string[1] = GETpacket_seq_count(tc_ptr); + tm_ptr->TM_string[2] = 0xA0; + tm_ptr->TM_string[3] = 0x00; + tm_ptr->TM_string[4] = (uint8_t)((time_temp & 0xFF000000)>>24); + tm_ptr->TM_string[5] = (uint8_t)((time_temp & 0x00FF0000)>>16); + tm_ptr->TM_string[6] = (uint8_t)((time_temp & 0x0000FF00)>>8); + tm_ptr->TM_string[7] = (uint8_t)((time_temp & 0x000000FF)); for(uint8_t i=0;i<124;i++) { - tm_pointer->TM_string[i+8] = 0x00; + tm_ptr->TM_string[i+8] = 0x00; } crc16 = crc16_gen(tm_ptr->TM_string,132); - tm_pointer->TM_string[132] = (uint8_t)((crc16&0xFF00)>>8); - tm_pointer->TM_string[133] = (uint8_t)(crc16&0x00FF); - tm_pointer->next_TM = NULL; + tm_ptr->TM_string[132] = (uint8_t)((crc16&0xFF00)>>8); + tm_ptr->TM_string[133] = (uint8_t)(crc16&0x00FF); + tm_ptr->next_TM = NULL; return tm_ptr; //incomplete } else if(GETpid(tc_ptr)==0xF0) { uint8_t statusbits[64]; if( CDMS_RD_SD_HK(statusbits) != 0){ - ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr)); - return tm_ptr; + Base_tm *tm_ptr_short = new Short_tm; + ACK_L234(tm_ptr_short,0xA0,GETpacket_seq_count(tc_ptr)); + return tm_ptr_short; } else { uint32_t time_temp = FCTN_CDMS_RD_RTC(); //RTC_RD_EROR has to incorporated - tm_pointer->TM_string[0] = 0x78; - tm_pointer->TM_string[1] = GETpacket_seq_count(tc_ptr); - tm_pointer->TM_string[2] = 0xA0; // ACK CODE - tm_pointer->TM_string[3] = 0x00; + Base_tm *tm_ptr = new Long_tm; + tm_ptr->TM_string[0] = 0x78; + tm_ptr->TM_string[1] = GETpacket_seq_count(tc_ptr); + tm_ptr->TM_string[2] = 0xA0; // ACK CODE + tm_ptr->TM_string[3] = 0x00; for(int i=4;i<64;i++) { - tm_pointer->TM_string[i+4] = (i<68)?statusbits[i]:0x00; + tm_ptr->TM_string[i+4] = (i<68)?statusbits[i]:0x00; } for(uint8_t i=68;i<132;i++) { - tm_pointer->TM_string[i] = 0x00; + tm_ptr->TM_string[i] = 0x00; } crc16 = crc16_gen(tm_ptr->TM_string,132); - tm_pointer->TM_string[132] = (uint8_t)((crc16&0xFF00)>>8); - tm_pointer->TM_string[133] = (uint8_t)(crc16&0x00FF); - tm_pointer->next_TM = NULL; //incomplete + tm_ptr->TM_string[132] = (uint8_t)((crc16&0xFF00)>>8); + tm_ptr->TM_string[133] = (uint8_t)(crc16&0x00FF); + tm_ptr->next_TM = NULL; //incomplete return tm_ptr; } } else if(GETpid(tc_ptr)==0xF1) { CDMS_CALIB_RTC((uint64_t)(tc_ptr->TC_string[4])<<32 + (uint64_t)(tc_ptr->TC_string[5])<<24 + (uint64_t)(tc_ptr->TC_string[5])<<16 + (uint64_t)(tc_ptr->TC_string[6])<<8 +(uint64_t)(tc_ptr->TC_string[7])); - ACK_L234(tm_pointer,0xC0,GETpacket_seq_count(tc_ptr)); - return tm_ptr; + Base_tm *tm_ptr_short = new Short_tm; + ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr)); + return tm_ptr_short; } else { gPC.printf("INVALID FID\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -947,6 +968,7 @@ else { gPC.printf("INVALID SERVICE SUBTYPE\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -957,6 +979,7 @@ if(GETservice_subtype(tc_ptr)==0x1) //make sure it is LONG TC before executing else INVALID TC { gPC.printf("\n\rTC with subtype = 0x1"); + Base_tm *tm_ptr = new Long_tm; TM_PMS_PL_SCHEDULE(tm_ptr,GETpacket_seq_count(tc_ptr)); for(uint8_t i=0,j=0;i<32;i++) { @@ -972,6 +995,7 @@ else if(GETservice_subtype(tc_ptr)==0x2) { gPC.printf("\n\rTC with subtype = 0x2"); + Base_tm *tm_ptr = new Long_tm; TM_PMS_PL_SCHEDULE(tm_ptr,GETpacket_seq_count(tc_ptr)); for(uint8_t i=32,j=0;i<64;i++,j+=4) { @@ -986,6 +1010,7 @@ else if(GETservice_subtype(tc_ptr)==0x3) { gPC.printf("\n\rTC with subtype = 0x3"); + Base_tm *tm_ptr = new Long_tm; TM_PMS_PL_SCHEDULE(tm_ptr,GETpacket_seq_count(tc_ptr)); for(uint8_t i=64,j=0;i<96;i++,j+=4) { @@ -1000,6 +1025,7 @@ else if(GETservice_subtype(tc_ptr)==0x4) { gPC.printf("\n\rTC with subtype = 0x4"); + Base_tm *tm_ptr = new Long_tm; TM_PMS_PL_SCHEDULE(tm_ptr,GETpacket_seq_count(tc_ptr)); for(uint8_t i=96,j=0;i<128;i++,j+=4) { @@ -1014,6 +1040,7 @@ else if(GETservice_subtype(tc_ptr)==0x5) { gPC.printf("\n\rTC with subtype = 0x5"); + Base_tm *tm_ptr = new Long_tm; TM_PMS_PL_SCHEDULE(tm_ptr,GETpacket_seq_count(tc_ptr)); for(uint8_t i=128,j=0;i<160;i++,j+=4) { @@ -1028,6 +1055,7 @@ else if(GETservice_subtype(tc_ptr)==0x6) { gPC.printf("\n\rTC with subtype = 0x6"); + Base_tm *tm_ptr = new Long_tm; TM_PMS_PL_SCHEDULE(tm_ptr,GETpacket_seq_count(tc_ptr)); for(uint8_t i=160,j=0;i<192;i++,j+=4) { @@ -1042,19 +1070,22 @@ else if(GETservice_subtype(tc_ptr)==0xF) { gPC.printf("\n\rTC with subtype = 0xF"); + Base_tm *tm_ptr = new Long_tm; TM_PMS_PL_SCHEDULE(tm_ptr,GETpacket_seq_count(tc_ptr)); return tm_ptr; } else { gPC.printf("INVALID SERVICE SUBTYPE\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } } default: { - gPC.printf("ILLEGAL TC"); + gPC.printf("ILLEGAL TC"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -1071,42 +1102,43 @@ y=FCTN_I2C_WRITE_PL((char*)tc_ptr->TC_string,TC_SHORT_SIZE); if(y==1) - { + { + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x03,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; - break; } else if(y==0) { //wait(0.2); int poll=0; - while(poll<900 && PL_I2C_Intr==0) + while(poll<2000 && PL_I2C_Intr==0) { wait_us(10); poll+=1; } - if(PL_I2C_Intr == 1) //name to be changed later + if(PL_I2C_Intr == 1) { gPC.printf("PL_I2C_Intr is high\r\n"); - - y=FCTN_I2C_READ_PL((char*)tm_pointer->TM_string,TM_LONG_SIZE); //rify later about the size + Base_tm *tm_ptr = new Long_tm; + y=FCTN_I2C_READ_PL((char*)tm_ptr->TM_string,TM_LONG_SIZE); if(y==0) { - tm_pointer->next_TM=NULL; + tm_ptr->next_TM=NULL; return tm_ptr; - break; } else if(y==1) { + delete tm_ptr; + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x85,GETpacket_seq_count(tc_ptr)); //gPC.printf("\n\rPTE->PDIR = 0x%08X",PTE->PDIR); return tm_ptr_short; - break; } } else if(PL_I2C_Intr == 0) //name to be changed later { gPC.printf("PL_I2C_Intr is not high\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x84,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } @@ -1114,12 +1146,13 @@ } default: //invalid TC { - gPC.printf("INVALID TC\r\n"); + gPC.printf("INVALID TC\r\n"); + Base_tm *tm_ptr_short = new Short_tm; ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); return tm_ptr_short; } } - return; + //return NULL; } // CDMS TEAM CODE END // EXECUTE OBOSC @@ -1241,8 +1274,8 @@ int reset_flag = 0;\ if (DEBUG)\ gPC.puts("iNSIDE EXECUTE_OBOSC_ONLY\r\n");\ - Base_tm *obosc_tm_core = NULL;\ - Base_tm *obosc_tm = obosc_tm_core;\ + Base_tm *obosc_tm_core = NULL;\ + Base_tm *obosc_tm = obosc_tm_core;\ for(uint8_t execute_psc = PSC_START_VALUE ; execute_psc < gTOTAL_VALID_TC ; ++execute_psc){\ Base_tc* current_TC = gHEAD_NODE_TCL;\ int overCount = 0;\ @@ -1341,7 +1374,7 @@ gPAY_SPI->bulkRead_resume(&payload_isr_fun);\ HK_counter->start(10000);\ gSESSION_TIMEOUT.detach();\ - }\ + }\ } #define EXECUTE_TC {\ @@ -1389,7 +1422,7 @@ /*gPC.putc(tm_ptr->TM_string[i]);*/\ }\ tm_ptr = tm_ptr->next_TM;\ - }\ + }\ /*Send only call sign, ACK_L1 to GS*/\ /*snd_tm.head_pointer(tm_ptr_head);*/\ /*transmit_adf;*/\ @@ -1523,7 +1556,7 @@ snd_tm.head_pointer(tm_ptr_head);\ gPC.puts("enter_adf\r\n");\ transmit_adf;\ - gPC.puts("exit_adf\r\n");\ + gPC.puts("exit_adf\r\n");\ /*DELETE THE TM AFTER USE*/\ tm_ptr = tm_ptr_head;\ overflowCountExecute = 0;\ @@ -1537,7 +1570,7 @@ else{\ RESET_CDMS;\ break;\ - }\ + }\ }\ }\ else{\