Pradeep Kotipalli
/
TFOX_CDMS_VR_1_0_WORKING
jnlj
Fork of TFOX_CDMS_VR_1_0_WORKING by
Embed:
(wiki syntax)
Show/hide line numbers
TC.cpp
00001 #include "mbed.h" 00002 #include "TC.h" 00003 #include "SDCard.h" 00004 #include "func_head.h" 00005 #include "i2c.h" 00006 00007 Serial sc(USBTX,USBRX); 00008 00009 void FUNC_CDMS_RLY_TC() 00010 { 00011 sc.printf("in FUNC_CDMS_RLY_TC\r\n"); 00012 uint8_t read; 00013 sc.scanf("%d",&read); //Packet sequence count 00014 pac_seq_cnt = read; 00015 sc.scanf("%d",&read); //Data[0] contains APID,LFB,long_or_short,AoN,Spr and Ack 00016 apid_size = read; 00017 apid=(apid_size&0xC0)>>6; //apid is decoded 00018 long_or_short=(apid_size&0x10)>>4; //size of tc is known 00019 switch(apid) 00020 { 00021 case 1: //apid=01 implies it corresponds to bae 00022 { 00023 sc.printf("BAE\r\r\r\n"); 00024 uint8_t p_i2c_bae[long_or_short*124+11]; 00025 p_i2c_bae[0]=pac_seq_cnt; 00026 p_i2c_bae[1]=apid_size; 00027 sc.scanf("%d",&read); //services contains service_type and sub_service_type 00028 p_i2c_bae[2] = read; 00029 for(int i=3;i<(long_or_short*124+11);i++){ 00030 sc.scanf("%d",&read); 00031 p_i2c_bae[i] = read; 00032 } 00033 sc.printf("informing BAE about TC using I2C\r\r\n"); //interrupt to be sent to the bae 00034 if(long_or_short==0) 00035 FCTN_MASTER_I2C('s', (char *)p_i2c_bae); 00036 else if(long_or_short==1) 00037 FCTN_MASTER_I2C('l', (char *)p_i2c_bae); 00038 else 00039 sc.printf("long_or_short invalid\r\r\n"); 00040 sc.printf("send the packet + CRC to the BAE after receving i2c signal from BAE\r\r\n"); //packet along with crc will be sent when bae is ready 00041 break; 00042 } 00043 case 3: 00044 { 00045 sc.printf("SPEED\r\r\n"); //speed corresponds to apid = 11 00046 uint8_t p_i2c_speed[long_or_short*124+11]; 00047 p_i2c_speed[0]=pac_seq_cnt; 00048 p_i2c_speed[1]=apid_size; 00049 sc.scanf("%d",&read); 00050 p_i2c_speed[2] = read; //services contains service_type and sub_service_type 00051 for(int i=3;i<(long_or_short*124+11);i++){ 00052 sc.scanf("%d",&read); 00053 p_i2c_speed[i] = read; 00054 } 00055 sc.printf("inform PL about TC using I2C\r\r\n"); 00056 sc.printf("send the packet + CRC to the PL after receving i2c signal from PL\r\r\n"); 00057 break; 00058 } 00059 case 2: 00060 { 00061 sc.printf("CDMS\r\r\n"); //apid = 10 corresponds to cdms 00062 uint8_t services,appdata[long_or_short*124+6],crc[2]; 00063 sc.scanf("%d",&read); 00064 services = read; //services contains service_type and sub_service_type 00065 for(int i=3;i<(long_or_short*124+6);i++){ 00066 sc.scanf("%d",&read); 00067 appdata[i-3] = read; 00068 } 00069 sc.scanf("%d",&read); 00070 crc[0] = read; 00071 sc.scanf("%d",&read); 00072 crc[1] = read; 00073 service_type=(services&0xF0)>>4; 00074 sub_service_type=(services&0x0F); 00075 switch(service_type){ 00076 case 6: 00077 { 00078 sc.printf("memory management syservice_typeem\r\r\n"); 00079 switch(sub_service_type){ 00080 case 1: 00081 { 00082 sc.printf("READ FROM MEMORY\r\r\n"); 00083 if(appdata[0]==2){ //appdata[0] is pid 00084 sc.printf("RD_L_FLASH1\r\r\n"); //tm is lmb 00085 //P_CDMS_RD_FLASH 00086 00087 for(int i=0;i<128;i++){ 00088 telemetry_type1[i]=long_memory_block_tm[i-1]; 00089 } 00090 for(int i=128;i<130;i++){ 00091 telemetry_type1[i]=crc_tm[i-128]; 00092 } 00093 } 00094 else if ((appdata[0]&0xF0)==0x10){ 00095 sc.printf("RD_L_FLASH2\r\r\n"); //tm is lmb 00096 //P_CDMS_RD_FLASH 00097 00098 for(int i=0;i<128;i++){ 00099 telemetry_type1[i]=long_memory_block_tm[i-1]; 00100 } 00101 for(int i=128;i<130;i++){ 00102 telemetry_type1[i]=crc_tm[i-128]; 00103 } 00104 } 00105 else if (appdata[0]==0x22){ 00106 sc.printf("RD_S_FLASH1\r\r\n"); //tm is smb 00107 //P_CDMS_RD_FLASH 00108 00109 telemetry_type2[0]=tmid3_spr_tm; 00110 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00111 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00112 for(int i=4;i<11;i++){ 00113 telemetry_type2[i]=small_memory_block_tm[i-4]; 00114 } 00115 for(int i=11;i<13;i++){ 00116 telemetry_type2[i]=crc_tm[i-11]; 00117 } 00118 } 00119 else if ((appdata[0]&0xF0)==0x30){ 00120 sc.printf("RD_S_FLASH2\r\r\n"); //tm is smb 00121 //P_CDMS_RD_FLASH 00122 00123 telemetry_type2[0]=tmid3_spr_tm; 00124 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00125 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00126 for(int i=3;i<11;i++){ 00127 telemetry_type2[i]=small_memory_block_tm[i-3]; 00128 } 00129 for(int i=11;i<13;i++){ 00130 telemetry_type2[i]=crc_tm[i-11]; 00131 } 00132 } 00133 else if (appdata[0]==0x42){ 00134 sc.printf("RD_L_RAM1\r\r\n"); //tm is lmb 00135 //P_CDMS_RD_RAM 00136 00137 for(int i=0;i<128;i++){ 00138 telemetry_type1[i]=long_memory_block_tm[i-1]; 00139 } 00140 for(int i=128;i<130;i++){ 00141 telemetry_type1[i]=crc_tm[i-128]; 00142 } 00143 } 00144 else if ((appdata[0]&0xF0)==0x50){ 00145 sc.printf("RD_L_RAM2\r\r\n"); //tm is lmb 00146 //P_CDMS_RD_RAM 00147 00148 for(int i=0;i<128;i++){ 00149 telemetry_type1[i]=long_memory_block_tm[i-1]; 00150 } 00151 for(int i=128;i<130;i++){ 00152 telemetry_type1[i]=crc_tm[i-128]; 00153 } 00154 } 00155 else if (appdata[0]==0x62){ 00156 sc.printf("RD_S_RAM\r\r\n"); //tm is smb 00157 //P_CDMS_RD_RAM 00158 00159 telemetry_type2[0]=tmid3_spr_tm; 00160 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00161 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00162 for(int i=3;i<11;i++){ 00163 telemetry_type2[i]=small_memory_block_tm[i-3]; 00164 } 00165 for(int i=11;i<13;i++){ 00166 telemetry_type2[i]=crc_tm[i-11]; 00167 } 00168 } 00169 else if ((appdata[0]&0xF0)==0x70){ 00170 sc.printf("RD_S_RAM2\r\r\n"); //tm is smb 00171 //P_CDMS_RD_RAM 00172 00173 telemetry_type2[0]=tmid3_spr_tm; 00174 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00175 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00176 for(int i=3;i<11;i++){ 00177 telemetry_type2[i]=small_memory_block_tm[i-3]; 00178 } 00179 for(int i=11;i<13;i++){ 00180 telemetry_type2[i]=crc_tm[i-11]; 00181 } 00182 } 00183 else { 00184 sc.printf("INVALID TC"); 00185 //Send Invalid TC Telemetry 00186 } 00187 break; 00188 } 00189 case 5: 00190 { 00191 sc.printf("WRITE ON MEMORY\r\r\n"); 00192 switch(appdata[0]){ 00193 case 0:sc.printf("WR_S_FLASH\r\r\n"); 00194 //P_CDMS_WR_FLASH 00195 telemetry_type2[0]=0XB0; 00196 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00197 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00198 telemetry_type2[3]=ackcode_tm; 00199 for(int i=4;i<11;i++){ 00200 telemetry_type2[i]=0X00; 00201 } 00202 00203 break; 00204 case 1:sc.printf("WR_S_RAM\r\r\n"); 00205 //P_CDMS_WR_RAM 00206 telemetry_type2[0]=0XB0; 00207 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00208 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00209 telemetry_type2[3]=ackcode_tm; 00210 for(int i=4;i<11;i++){ 00211 telemetry_type2[i]=0X00; 00212 } 00213 00214 break; 00215 case 16:sc.printf("WR_L_FLASH\r\r\n"); 00216 telemetry_type2[0]=0XB0; 00217 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00218 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00219 telemetry_type2[3]=ackcode_tm; 00220 for(int i=4;i<11;i++){ 00221 telemetry_type2[i]=0X00; 00222 } 00223 //P_CDMS_WR_FLASH 00224 00225 break; 00226 case 17:sc.printf("WR_L_RAM\r\r\n"); 00227 //P_CDMS_WR_RAM 00228 telemetry_type2[0]=0XB0; 00229 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00230 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00231 telemetry_type2[3]=ackcode_tm; 00232 for(int i=4;i<11;i++){ 00233 telemetry_type2[i]=0X00; 00234 } 00235 00236 break; 00237 default:{sc.printf("INVALID TC"); 00238 //send invalid TC TM 00239 break;} 00240 } 00241 break; 00242 } 00243 case 6: 00244 { 00245 sc.printf("WRITE FROM ONE MEMORY TO ANOTHER\r\r\n"); 00246 switch(appdata[0]){ 00247 case 0:sc.printf("WR_S_FLASH\r\r\n"); 00248 //P_CDMS_WR_FLASH 00249 telemetry_type2[0]=0XB0; 00250 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00251 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00252 telemetry_type2[3]=ackcode_tm; 00253 for(int i=4;i<11;i++){ 00254 telemetry_type2[i]=0X00; 00255 } 00256 break; 00257 case 1:sc.printf("WR_S_RAM\r\r\n"); 00258 //P_CDMS_WR_RAM 00259 telemetry_type2[0]=0XB0; 00260 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00261 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00262 telemetry_type2[3]=ackcode_tm; 00263 for(int i=4;i<11;i++){ 00264 telemetry_type2[i]=0X00; 00265 } 00266 break; 00267 case 16:sc.printf("WR_L_FLASH\r\r\n"); 00268 //P_CDMS_WR_FLASH 00269 telemetry_type2[0]=0XB0; 00270 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00271 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00272 telemetry_type2[3]=ackcode_tm; 00273 for(int i=4;i<11;i++){ 00274 telemetry_type2[i]=0X00; 00275 } 00276 break; 00277 case 17:sc.printf("WR_L_RAM\r\r\n"); 00278 //P_CDMS_WR_RAM 00279 telemetry_type2[0]=0XB0; 00280 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00281 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00282 telemetry_type2[3]=ackcode_tm; 00283 for(int i=4;i<11;i++){ 00284 telemetry_type2[i]=0X00; 00285 } 00286 break; 00287 default:{sc.printf("INVALID TC"); 00288 //send invalid TC TM 00289 break;} 00290 } 00291 break; 00292 } 00293 case 9: 00294 { 00295 sc.printf("SEND CRC OF FLASH MEMORY\r\r\n"); 00296 if(appdata[0]==2){ 00297 sc.printf("GET_FLASH_CRC\r\r\n"); //tm is crc_flash 00298 //P_CDMS_GET_FLASH_CRC 00299 00300 for(int i=0;i<2;i++){ 00301 telemetry_type1[i]=crc1_tm[i]; 00302 } 00303 for(int i=2;i<4;i++){ 00304 telemetry_type1[i]=crc2_tm[i-2]; 00305 } 00306 for(int i=128;i<130;i++){ 00307 telemetry_type1[i]=crc_tm[i-128]; 00308 } 00309 } 00310 else { 00311 sc.printf("INVALID TC"); 00312 //Send Invalid TC Telemetry 00313 } 00314 break; 00315 } 00316 default:{sc.printf("INVALID TC"); 00317 //send invalid TC TM 00318 break;} 00319 } 00320 break; 00321 } 00322 case 8: 00323 { 00324 sc.printf("FUNCTION MANAGEMENT SERVICE\r\r\n"); 00325 if(sub_service_type==1){ 00326 if((appdata[0]&0xF0)==0x00){ 00327 sc.printf("RUN_PRCS\r\r\n"); 00328 switch(appdata[0]){ 00329 case 1:sc.printf("P_PL_INIT\r\r\n");//tm is ack_l234 00330 //P_PL_INIT 00331 telemetry_type2[0]=tmid2_spr_tm; 00332 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00333 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00334 telemetry_type2[3]=ackcode_tm; 00335 for(int i=3;i<11;i++){ 00336 telemetry_type2[i]=0x00; 00337 } 00338 for(int i=11;i<13;i++){ 00339 telemetry_type2[i]=crc_tm[i-11]; 00340 } 00341 break; 00342 case 2:sc.printf("P_PL_MNGR\r\r\n");//tm is ack_l234 00343 //P_PL_MNGR 00344 telemetry_type2[0]=tmid2_spr_tm; 00345 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00346 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00347 telemetry_type2[3]=ackcode_tm; 00348 for(int i=3;i<11;i++){ 00349 telemetry_type2[i]=0x00; 00350 } 00351 for(int i=11;i<13;i++){ 00352 telemetry_type2[i]=crc_tm[i-11]; 00353 } 00354 break; 00355 case 3:sc.printf("P_COM_INIT\r\r\n");//tm is ack_l234 00356 //P_COM_INIT 00357 telemetry_type2[0]=tmid2_spr_tm; 00358 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00359 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00360 telemetry_type2[3]=ackcode_tm; 00361 for(int i=3;i<11;i++){ 00362 telemetry_type2[i]=0x00; 00363 } 00364 for(int i=11;i<13;i++){ 00365 telemetry_type2[i]=crc_tm[i-11]; 00366 } 00367 break; 00368 case 4:sc.printf("P_CDMS_HK_MNGR\r\r\n");//tm is ack_l234 00369 //P_CDMS_HK_MNGR 00370 telemetry_type2[0]=tmid2_spr_tm; 00371 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00372 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00373 telemetry_type2[3]=ackcode_tm; 00374 for(int i=3;i<11;i++){ 00375 telemetry_type2[i]=0x00; 00376 } 00377 for(int i=11;i<13;i++){ 00378 telemetry_type2[i]=crc_tm[i-11]; 00379 } 00380 break; 00381 default:{sc.printf("INVALID TC"); 00382 //send invalid TC TM 00383 break;} 00384 } 00385 } 00386 else if((appdata[0]&0xF0)==0x10){ 00387 sc.printf("PWR_SWCH\r\r\n"); 00388 //P_CDMS_SWCH_PWR 00389 00390 } 00391 else if((appdata[0]&0xF0)==0x20){ 00392 sc.printf("PWR_Rservice_type\r\r\n"); 00393 //P_CDMS_RST_PWR 00394 00395 } 00396 else if((appdata[0]&0xF0)==0xE0){ 00397 sc.printf("RD_\r\n"); //tm is func_mngmt_service_tm 00398 FUNC_CDMS_RD_RTC(rtc_tc_data); 00399 for(int i=0;i<8;i++) 00400 { 00401 printf("%d\r\r\n",rtc_tc_data[i]); 00402 } 00403 telemetry_type2[0]=tmid4_spr_tm; 00404 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00405 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00406 for(int i=3;i<11;i++) 00407 { 00408 telemetry_type2[i]=rtc_tc_data[i-3]; 00409 } 00410 for(int i=0;i<13;i++) 00411 { 00412 printf("%d\r\r\n",telemetry_type2[i]); 00413 } 00414 for(int i=11;i<13;i++) 00415 { 00416 telemetry_type2[i]=crc_tm[i-11]; 00417 } 00418 for(int i=0;i<13;i++) 00419 sd_data[i]=telemetry_type2[i]; 00420 for(int i=13;i<512;i++) 00421 sd_data[i]='\0'; 00422 FUNC_WR_SD(sd_data, 512); 00423 FUNC_RD_SD(sd_read_data,512); 00424 sc.printf("data read from sd card\r\r\n"); 00425 for(int i=0;i<512;i++) 00426 sc.printf("%d ",sd_read_data[i]); 00427 } 00428 else if((appdata[0]&0xF0)==0xF0){ 00429 sc.printf("SD_MNGR\r\r\n"); //tm is func_mngmt_service_tm 00430 //P_CDMS_MNG_SD 00431 00432 telemetry_type2[0]=tmid4_spr_tm; 00433 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00434 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00435 for(int i=3;i<11;i++){ 00436 telemetry_type2[i]=func_mngmt_service_tm[i-3]; 00437 } 00438 for(int i=11;i<13;i++){ 00439 telemetry_type2[i]=crc_tm[i-11]; 00440 } 00441 } 00442 else { 00443 sc.printf("INVALID TC"); 00444 //Send Invalid TC Telemetry 00445 } 00446 } 00447 else { 00448 sc.printf("INVALID TC"); 00449 //Send Invalid TC Telemetry 00450 } 00451 break; 00452 } 00453 case 7: 00454 { 00455 sc.printf("PAYLOAD MANAGEMENT SERVICE\r\r\n"); //TM is ACKL234 00456 switch(sub_service_type){ 00457 case 1:sc.printf("INSERT PL SCHEDULE\r\r\n"); 00458 telemetry_type2[0]=tmid2_spr_tm; 00459 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00460 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00461 telemetry_type2[3]=ackcode_tm; 00462 for(int i=3;i<11;i++){ 00463 telemetry_type2[i]=0x00; 00464 } 00465 for(int i=11;i<13;i++){ 00466 telemetry_type2[i]=crc_tm[i-11]; 00467 } 00468 break; 00469 case 2:sc.printf("DELETE PL SCHEDULE\r\r\n"); 00470 telemetry_type2[0]=tmid2_spr_tm; 00471 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00472 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00473 telemetry_type2[3]=ackcode_tm; 00474 for(int i=3;i<11;i++){ 00475 telemetry_type2[i]=0x00; 00476 } 00477 for(int i=11;i<13;i++){ 00478 telemetry_type2[i]=crc_tm[i-11]; 00479 } 00480 break; 00481 default:{sc.printf("INVALID TC"); 00482 //send invalid TC TM 00483 break;} 00484 } 00485 break; 00486 } 00487 case 11: 00488 { 00489 sc.printf("ONBOARD OPERATIONS SCHEDULING SERVICE\r\r\n"); 00490 switch(sub_service_type){ 00491 case 1: 00492 { 00493 sc.printf("DISABLE RELEASE OF TCs\r\r\n"); //tm is ack_l1 00494 telemetry_type2[0]=tmid1_spr_tm; 00495 telemetry_type2[1]=tc_exec_tm; 00496 telemetry_type2[2]=tc_service_typeatus_tm; 00497 for(int i=3;i<11;i++){ 00498 telemetry_type2[i]=pac_seq_cnt_of_tc_tm[i-3]; 00499 } 00500 for(int i=11;i<13;i++){ 00501 telemetry_type2[i]=crc_tm[i-11]; 00502 } 00503 break; 00504 } 00505 case 2: 00506 { 00507 sc.printf("ENABLE RELEASE OF TCs\r\r\n"); 00508 break; 00509 } 00510 case 5: 00511 { 00512 sc.printf("DELETE TELECOMMANDS\r\r\n"); 00513 break; 00514 } 00515 case 6: 00516 { 00517 sc.printf("REPORT TC LIST IN DETAILED FORM\r\r\n"); //tm is tc_liservice_type 00518 for(int i=0;i<9;i++){ 00519 telemetry_type1[i]=tc_liservice_type_packet1_tm[i]; 00520 } 00521 for(int i=9;i<18;i++){ 00522 telemetry_type1[i]=tc_liservice_type_packet2_tm[i-9]; 00523 } 00524 for(int i=128;i<130;i++){ 00525 telemetry_type1[i]=crc_tm[i-128]; 00526 } 00527 break; 00528 } 00529 case 8: 00530 { 00531 sc.printf("REPORT STATUS OF TC LIST\r\r\n"); //tm is ack_l1 00532 telemetry_type2[0]=tmid1_spr_tm; 00533 telemetry_type2[1]=tc_exec_tm; 00534 telemetry_type2[2]=tc_service_typeatus_tm; 00535 for(int i=3;i<11;i++){ 00536 telemetry_type2[i]=pac_seq_cnt_of_tc_tm[i-3]; 00537 } 00538 for(int i=11;i<13;i++){ 00539 telemetry_type2[i]=crc_tm[i-11]; 00540 } 00541 break; 00542 } 00543 case 15: 00544 { 00545 sc.printf("REPORT STATUS OF LAST UNEXECUTED TC\r\r\n"); //tm is ack_l234 00546 telemetry_type2[0]=tmid2_spr_tm; 00547 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00548 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00549 telemetry_type2[3]=ackcode_tm; 00550 for(int i=3;i<11;i++){ 00551 telemetry_type2[i]=0x00; 00552 } 00553 for(int i=11;i<13;i++){ 00554 telemetry_type2[i]=crc_tm[i-11]; 00555 } 00556 break; 00557 } 00558 default:{sc.printf("INVALID TC"); 00559 //send invalid TC TM 00560 break;} 00561 } 00562 break; 00563 } 00564 case 13: 00565 { 00566 sc.printf("LARGE DATA TRANSFER\r\r\n"); //tm is ack_l234 00567 telemetry_type2[0]=tmid2_spr_tm; 00568 telemetry_type2[1]=tc_pac_seq_cnt_tm; 00569 telemetry_type2[2]=tm_pac_seq_cnt_tm; 00570 telemetry_type2[3]=ackcode_tm; 00571 for(int i=3;i<11;i++){ 00572 telemetry_type2[i]=0x00; 00573 } 00574 for(int i=11;i<13;i++){ 00575 telemetry_type2[i]=crc_tm[i-11]; 00576 } 00577 break; 00578 } 00579 case 15: 00580 { 00581 sc.printf("ONBOARD STORAGE AND RETRIEVAL SERVICE\r\r\n"); 00582 switch(sub_service_type){ 00583 case 0: 00584 { 00585 sc.printf("SCF\r\r\n"); //tm is obsrs 00586 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm; 00587 for(int i=1;i<128;i++){ 00588 telemetry_type1[i]=multi_obsrs_tm_packets[i-1]; 00589 } 00590 for(int i=128;i<130;i++){ 00591 telemetry_type1[i]=crc_tm[i-128]; 00592 } 00593 break; 00594 } 00595 case 1: 00596 { 00597 sc.printf("SFF-AT\r\r\n"); 00598 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm; //tm is obsrs 00599 for(int i=1;i<128;i++){ 00600 telemetry_type1[i]=multi_obsrs_tm_packets[i-1]; 00601 } 00602 for(int i=128;i<130;i++){ 00603 telemetry_type1[i]=crc_tm[i-128]; 00604 } 00605 break; 00606 } 00607 case 2: 00608 { 00609 sc.printf("SFF-BT\r\r\n"); //tm is obsrs 00610 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm; 00611 for(int i=1;i<128;i++){ 00612 telemetry_type1[i]=multi_obsrs_tm_packets[i-1]; 00613 } 00614 for(int i=128;i<130;i++){ 00615 telemetry_type1[i]=crc_tm[i-128]; 00616 } 00617 break; 00618 } 00619 case 3: 00620 { 00621 sc.printf("LOG\r\r\n"); //tm is obsrs 00622 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm; 00623 for(int i=1;i<128;i++){ 00624 telemetry_type1[i]=multi_obsrs_tm_packets[i-1]; 00625 } 00626 for(int i=128;i<130;i++){ 00627 telemetry_type1[i]=crc_tm[i-128]; 00628 } 00629 break; 00630 } 00631 case 4: 00632 { 00633 sc.printf("HK_ARCHIVE\r\r\n"); //tm is obsrs 00634 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm; 00635 for(int i=1;i<128;i++){ 00636 telemetry_type1[i]=multi_obsrs_tm_packets[i-1]; 00637 } 00638 for(int i=128;i<130;i++){ 00639 telemetry_type1[i]=crc_tm[i-128]; 00640 } 00641 break; 00642 } 00643 default:{sc.printf("INVALID TC"); 00644 //send invalid TC TM 00645 break; 00646 } 00647 } 00648 break; 00649 } 00650 default:{sc.printf("INVALID TC"); 00651 //send invalid TC TM 00652 break; 00653 } 00654 } 00655 break; 00656 } 00657 default:{sc.printf("INVALID TC"); 00658 //send invalid TC TM 00659 break; 00660 } 00661 } 00662 00663 }
Generated on Fri Jul 15 2022 14:57:04 by 1.7.2