ACS data acq changed completely. Tested and working. Deals all faults.

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of QM_BAE_review_1 by Team Fox

Committer:
sakthipriya
Date:
Thu Dec 24 19:15:43 2015 +0000
Revision:
0:7b4c00e3912f
Child:
3:07e15677a75c
EPS CONOPS BTRY GAUGE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sakthipriya 0:7b4c00e3912f 1 #include "mbed.h"
sakthipriya 0:7b4c00e3912f 2 #include "TCTM.h"
sakthipriya 0:7b4c00e3912f 3
sakthipriya 0:7b4c00e3912f 4 uint8_t telemetry_type2[13];
sakthipriya 0:7b4c00e3912f 5 uint8_t telemetry_type1[130]; //two types of telemetry possible
sakthipriya 0:7b4c00e3912f 6 uint8_t long_memory_block_tm[128],crc_tm[2]; // tmlmb
sakthipriya 0:7b4c00e3912f 7 uint8_t frmseqcnt_fileheadpointer_tm,multi_obsrs_tm_packets[127]; // tm obsrs
sakthipriya 0:7b4c00e3912f 8 uint8_t tc_liservice_type_packet1_tm[9],tc_liservice_type_packet2_tm[9]; // tm tc_liservice_type
sakthipriya 0:7b4c00e3912f 9 uint8_t crc1_tm[2],crc2_tm[2]; // tm flash_crc
sakthipriya 0:7b4c00e3912f 10 uint8_t tmid1_spr_tm=0xA0,tc_exec_tm,tc_service_typeatus_tm,pac_seq_cnt_of_tc_tm[8]; // tm ack_l1
sakthipriya 0:7b4c00e3912f 11 uint8_t tmid2_spr_tm=0xB0,tc_pac_seq_cnt_tm,tm_pac_seq_cnt_tm,ackcode_tm; // tm ack_l234
sakthipriya 0:7b4c00e3912f 12 uint8_t tmid3_spr_tm=0xC0,small_memory_block_tm[7]; // tm smb
sakthipriya 0:7b4c00e3912f 13 uint8_t tmid4_spr_tm=0xD0,func_mngmt_service_tm[8]; // tm func_mngmt_service_tm
sakthipriya 0:7b4c00e3912f 14 uint8_t apid_size,pac_seq_cnt,apid,long_or_short=1,service_type,sub_service_type; //All variable used TC
sakthipriya 0:7b4c00e3912f 15 uint8_t sd_data[512],sd_read_data[512];
sakthipriya 0:7b4c00e3912f 16 int TM_SD_BLOCK_NUMBER = 1;uint8_t rtc_tc_data[8];
sakthipriya 0:7b4c00e3912f 17
sakthipriya 0:7b4c00e3912f 18
sakthipriya 0:7b4c00e3912f 19 void FCTN_TC_DECODE(uint8_t* TC_Packet)
sakthipriya 0:7b4c00e3912f 20
sakthipriya 0:7b4c00e3912f 21 {
sakthipriya 0:7b4c00e3912f 22 // uint8_t long_or_short;
sakthipriya 0:7b4c00e3912f 23 // uint8_t TC_Packet[long_or_short*124+11];
sakthipriya 0:7b4c00e3912f 24 uint8_t service_type,sub_service_type,ackcode_tm,func_mngmt_service_tm[8],crc_tm[2];;
sakthipriya 0:7b4c00e3912f 25 service_type=(TC_Packet[2]&0xF0)>>4;
sakthipriya 0:7b4c00e3912f 26 sub_service_type=(TC_Packet[2]&0x0F);
sakthipriya 0:7b4c00e3912f 27 switch(service_type){
sakthipriya 0:7b4c00e3912f 28 case 6:printf("memory management service\n");
sakthipriya 0:7b4c00e3912f 29 switch(sub_service_type){
sakthipriya 0:7b4c00e3912f 30 case 1:printf("READ FROM MEMORY\n");
sakthipriya 0:7b4c00e3912f 31 if(TC_Packet[3]==2){ //TC_Packet[3] is pid
sakthipriya 0:7b4c00e3912f 32 printf("RD_L_FyoyouyLASH1\n");
sakthipriya 0:7b4c00e3912f 33 //P_BAE_RD_FLASH
sakthipriya 0:7b4c00e3912f 34
sakthipriya 0:7b4c00e3912f 35 uint8_t long_memory_block_tm[128];
sakthipriya 0:7b4c00e3912f 36 uint8_t TM_packet[130];
sakthipriya 0:7b4c00e3912f 37 for(int i=0;i<128;i++){
sakthipriya 0:7b4c00e3912f 38 TM_packet[i]=long_memory_block_tm[i-1];
sakthipriya 0:7b4c00e3912f 39 }
sakthipriya 0:7b4c00e3912f 40 for(int i=128;i<130;i++){
sakthipriya 0:7b4c00e3912f 41 //FCTN_CRC(long_memory_block_tm)
sakthipriya 0:7b4c00e3912f 42 TM_packet[i]=crc_tm[i-128];
sakthipriya 0:7b4c00e3912f 43 }
sakthipriya 0:7b4c00e3912f 44 }
sakthipriya 0:7b4c00e3912f 45 else if ((TC_Packet[3]&0xF0)==0x10){
sakthipriya 0:7b4c00e3912f 46 printf("RD_L_FLASH2\n");
sakthipriya 0:7b4c00e3912f 47 //P_BAE_RD_FLASH
sakthipriya 0:7b4c00e3912f 48
sakthipriya 0:7b4c00e3912f 49 uint8_t long_memory_block_tm[128];
sakthipriya 0:7b4c00e3912f 50 uint8_t TM_packet[130];
sakthipriya 0:7b4c00e3912f 51 for(int i=0;i<128;i++){
sakthipriya 0:7b4c00e3912f 52 TM_packet[i]=long_memory_block_tm[i-1];
sakthipriya 0:7b4c00e3912f 53 }
sakthipriya 0:7b4c00e3912f 54 for(int i=128;i<130;i++){
sakthipriya 0:7b4c00e3912f 55 TM_packet[i]=crc_tm[i-128];
sakthipriya 0:7b4c00e3912f 56 }
sakthipriya 0:7b4c00e3912f 57 }
sakthipriya 0:7b4c00e3912f 58 else if (TC_Packet[3]==0x22){
sakthipriya 0:7b4c00e3912f 59 printf("RD_S_FLASH1\n");
sakthipriya 0:7b4c00e3912f 60 //P_BAE_RD_FLASH
sakthipriya 0:7b4c00e3912f 61
sakthipriya 0:7b4c00e3912f 62 uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,small_memory_block_tm[8];
sakthipriya 0:7b4c00e3912f 63 uint8_t TM_packet[13];
sakthipriya 0:7b4c00e3912f 64 TM_packet[0]=tmid_spr_tm;
sakthipriya 0:7b4c00e3912f 65 TM_packet[1]=tc_psc_tm;
sakthipriya 0:7b4c00e3912f 66 TM_packet[2]=tm_psc_tm;
sakthipriya 0:7b4c00e3912f 67 TM_packet[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 68 for(int i=3;i<11;i++){
sakthipriya 0:7b4c00e3912f 69 TM_packet[i]=small_memory_block_tm[i-3];
sakthipriya 0:7b4c00e3912f 70 }
sakthipriya 0:7b4c00e3912f 71 for(int i=11;i<13;i++){
sakthipriya 0:7b4c00e3912f 72 TM_packet[i]=crc_tm[i-11];
sakthipriya 0:7b4c00e3912f 73 }
sakthipriya 0:7b4c00e3912f 74 }
sakthipriya 0:7b4c00e3912f 75 else if ((TC_Packet[3]&0xF0)==0x30){
sakthipriya 0:7b4c00e3912f 76 printf("RD_S_FLASH2\n");
sakthipriya 0:7b4c00e3912f 77 //P_BAE_RD_FLASH
sakthipriya 0:7b4c00e3912f 78
sakthipriya 0:7b4c00e3912f 79 uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,small_memory_block_tm[8];
sakthipriya 0:7b4c00e3912f 80 uint8_t TM_packet[13];
sakthipriya 0:7b4c00e3912f 81 TM_packet[0]=tmid_spr_tm;
sakthipriya 0:7b4c00e3912f 82 TM_packet[1]=tc_psc_tm;
sakthipriya 0:7b4c00e3912f 83 TM_packet[2]=tm_psc_tm;
sakthipriya 0:7b4c00e3912f 84 TM_packet[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 85 for(int i=3;i<11;i++){
sakthipriya 0:7b4c00e3912f 86 TM_packet[i]=small_memory_block_tm[i-3];
sakthipriya 0:7b4c00e3912f 87 }
sakthipriya 0:7b4c00e3912f 88 for(int i=11;i<13;i++){
sakthipriya 0:7b4c00e3912f 89 TM_packet[i]=crc_tm[i-11];
sakthipriya 0:7b4c00e3912f 90 }
sakthipriya 0:7b4c00e3912f 91 }
sakthipriya 0:7b4c00e3912f 92 else if (TC_Packet[3]==0x42){
sakthipriya 0:7b4c00e3912f 93 printf("RD_L_RAM1\n");
sakthipriya 0:7b4c00e3912f 94 //P_BAE_RD_RAM
sakthipriya 0:7b4c00e3912f 95
sakthipriya 0:7b4c00e3912f 96 uint8_t long_memory_block_tm[128];
sakthipriya 0:7b4c00e3912f 97 uint8_t TM_packet[130];
sakthipriya 0:7b4c00e3912f 98 for(int i=0;i<128;i++){
sakthipriya 0:7b4c00e3912f 99 TM_packet[i]=long_memory_block_tm[i-1];
sakthipriya 0:7b4c00e3912f 100 }
sakthipriya 0:7b4c00e3912f 101 for(int i=128;i<130;i++){
sakthipriya 0:7b4c00e3912f 102 TM_packet[i]=crc_tm[i-128];
sakthipriya 0:7b4c00e3912f 103 }
sakthipriya 0:7b4c00e3912f 104 }
sakthipriya 0:7b4c00e3912f 105 else if ((TC_Packet[3]&0xF0)==0x50){
sakthipriya 0:7b4c00e3912f 106 printf("RD_L_RAM2\n");
sakthipriya 0:7b4c00e3912f 107 ////P_BAE_RD_RAM
sakthipriya 0:7b4c00e3912f 108 uint8_t long_memory_block_tm[128];
sakthipriya 0:7b4c00e3912f 109 uint8_t TM_packet[130];
sakthipriya 0:7b4c00e3912f 110 for(int i=0;i<128;i++){
sakthipriya 0:7b4c00e3912f 111 TM_packet[i]=long_memory_block_tm[i-1];
sakthipriya 0:7b4c00e3912f 112 }
sakthipriya 0:7b4c00e3912f 113 for(int i=128;i<130;i++){
sakthipriya 0:7b4c00e3912f 114 TM_packet[i]=crc_tm[i-128];
sakthipriya 0:7b4c00e3912f 115 }
sakthipriya 0:7b4c00e3912f 116 }
sakthipriya 0:7b4c00e3912f 117 else if (TC_Packet[3]==0x62){
sakthipriya 0:7b4c00e3912f 118 printf("RD_S_RAM\n");
sakthipriya 0:7b4c00e3912f 119 //P_BAE_RD_RAM
sakthipriya 0:7b4c00e3912f 120
sakthipriya 0:7b4c00e3912f 121 uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,small_memory_block_tm[8];
sakthipriya 0:7b4c00e3912f 122 uint8_t TM_packet[13];
sakthipriya 0:7b4c00e3912f 123 TM_packet[0]=tmid_spr_tm;
sakthipriya 0:7b4c00e3912f 124 TM_packet[1]=tc_psc_tm;
sakthipriya 0:7b4c00e3912f 125 TM_packet[2]=tm_psc_tm;
sakthipriya 0:7b4c00e3912f 126 TM_packet[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 127 for(int i=3;i<11;i++){
sakthipriya 0:7b4c00e3912f 128 TM_packet[i]=small_memory_block_tm[i-3];
sakthipriya 0:7b4c00e3912f 129 }
sakthipriya 0:7b4c00e3912f 130 for(int i=11;i<13;i++){
sakthipriya 0:7b4c00e3912f 131 TM_packet[i]=crc_tm[i-11];
sakthipriya 0:7b4c00e3912f 132 }
sakthipriya 0:7b4c00e3912f 133 }
sakthipriya 0:7b4c00e3912f 134 else if ((TC_Packet[3]&0xF0)==0x70){
sakthipriya 0:7b4c00e3912f 135 printf("RD_S_RAM2\n");
sakthipriya 0:7b4c00e3912f 136 //P_BAE_RD_RAM
sakthipriya 0:7b4c00e3912f 137
sakthipriya 0:7b4c00e3912f 138 uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,small_memory_block_tm[8];
sakthipriya 0:7b4c00e3912f 139 uint8_t TM_packet[13];
sakthipriya 0:7b4c00e3912f 140 TM_packet[0]=tmid_spr_tm;
sakthipriya 0:7b4c00e3912f 141 TM_packet[1]=tc_psc_tm;
sakthipriya 0:7b4c00e3912f 142 TM_packet[2]=tm_psc_tm;
sakthipriya 0:7b4c00e3912f 143 TM_packet[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 144 for(int i=3;i<11;i++){
sakthipriya 0:7b4c00e3912f 145 TM_packet[i]=small_memory_block_tm[i-3];
sakthipriya 0:7b4c00e3912f 146 }
sakthipriya 0:7b4c00e3912f 147 for(int i=11;i<13;i++){
sakthipriya 0:7b4c00e3912f 148 TM_packet[i]=crc_tm[i-11];
sakthipriya 0:7b4c00e3912f 149 }
sakthipriya 0:7b4c00e3912f 150 }
sakthipriya 0:7b4c00e3912f 151 else {
sakthipriya 0:7b4c00e3912f 152 printf("INVALID TC");
sakthipriya 0:7b4c00e3912f 153 //Send Invalid TC Telemetry
sakthipriya 0:7b4c00e3912f 154 }
sakthipriya 0:7b4c00e3912f 155 break;
sakthipriya 0:7b4c00e3912f 156 case 5:printf("WRITE ON MEMORY\n");
sakthipriya 0:7b4c00e3912f 157 switch(TC_Packet[3]){
sakthipriya 0:7b4c00e3912f 158 case 0:printf("WR_S_FLASH\n");
sakthipriya 0:7b4c00e3912f 159 //P_BAE_WR_FLASH
sakthipriya 0:7b4c00e3912f 160 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 161 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 162 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 163 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 164 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 165 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 166 }
sakthipriya 0:7b4c00e3912f 167
sakthipriya 0:7b4c00e3912f 168 break;
sakthipriya 0:7b4c00e3912f 169 case 1:printf("WR_S_RAM\n");
sakthipriya 0:7b4c00e3912f 170 //P_BAE_WR_RAM
sakthipriya 0:7b4c00e3912f 171 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 172 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 173 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 174 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 175 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 176 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 177 }
sakthipriya 0:7b4c00e3912f 178
sakthipriya 0:7b4c00e3912f 179 break;
sakthipriya 0:7b4c00e3912f 180 case 16:printf("WR_L_FLASH\n");
sakthipriya 0:7b4c00e3912f 181 //P_BAE_WR_FLASH
sakthipriya 0:7b4c00e3912f 182 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 183 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 184 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 185 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 186 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 187 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 188 }
sakthipriya 0:7b4c00e3912f 189
sakthipriya 0:7b4c00e3912f 190 break;
sakthipriya 0:7b4c00e3912f 191 case 17:printf("WR_L_RAM\n");
sakthipriya 0:7b4c00e3912f 192 //P_BAE_WR_RAM
sakthipriya 0:7b4c00e3912f 193 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 194 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 195 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 196 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 197 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 198 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 199 }
sakthipriya 0:7b4c00e3912f 200
sakthipriya 0:7b4c00e3912f 201 break;
sakthipriya 0:7b4c00e3912f 202 }
sakthipriya 0:7b4c00e3912f 203 break;
sakthipriya 0:7b4c00e3912f 204 case 6:printf("WRITE FROM ONE MEMORY TO ANOTHER\n");
sakthipriya 0:7b4c00e3912f 205 switch(TC_Packet[3]){
sakthipriya 0:7b4c00e3912f 206 case 0:printf("WR_S_FLASH\n");
sakthipriya 0:7b4c00e3912f 207 //P_BAE_WR_FLASH
sakthipriya 0:7b4c00e3912f 208 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 209 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 210 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 211 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 212 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 213 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 214 }
sakthipriya 0:7b4c00e3912f 215
sakthipriya 0:7b4c00e3912f 216 break;
sakthipriya 0:7b4c00e3912f 217 case 1:printf("WR_S_RAM\n");
sakthipriya 0:7b4c00e3912f 218 //P_BAE_WR_RAM
sakthipriya 0:7b4c00e3912f 219 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 220 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 221 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 222 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 223 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 224 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 225 }
sakthipriya 0:7b4c00e3912f 226
sakthipriya 0:7b4c00e3912f 227 break;
sakthipriya 0:7b4c00e3912f 228 case 16:printf("WR_L_FLASH\n");
sakthipriya 0:7b4c00e3912f 229 //P_BAE_WR_FLASH
sakthipriya 0:7b4c00e3912f 230 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 231 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 232 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 233 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 234 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 235 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 236 }
sakthipriya 0:7b4c00e3912f 237
sakthipriya 0:7b4c00e3912f 238 break;
sakthipriya 0:7b4c00e3912f 239 case 17:printf("WR_L_RAM\n");
sakthipriya 0:7b4c00e3912f 240 //P_BAE_WR_RAM
sakthipriya 0:7b4c00e3912f 241 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 242 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 243 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 244 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 245 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 246 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 247 }
sakthipriya 0:7b4c00e3912f 248
sakthipriya 0:7b4c00e3912f 249 break;
sakthipriya 0:7b4c00e3912f 250 }
sakthipriya 0:7b4c00e3912f 251 break;
sakthipriya 0:7b4c00e3912f 252 case 9:printf("SEND CRC OF FLASH MEMORY\n");
sakthipriya 0:7b4c00e3912f 253 if(TC_Packet[3]==2){
sakthipriya 0:7b4c00e3912f 254 printf("GET_FLASH_CRC\n");
sakthipriya 0:7b4c00e3912f 255 //P_BAE_GET_FLASH_CRC
sakthipriya 0:7b4c00e3912f 256
sakthipriya 0:7b4c00e3912f 257 uint8_t crc1_tm[2],crc2_tm[2];
sakthipriya 0:7b4c00e3912f 258 uint8_t TM_packet[130];
sakthipriya 0:7b4c00e3912f 259 for(int i=0;i<2;i++){
sakthipriya 0:7b4c00e3912f 260 TM_packet[i]=crc1_tm[i];
sakthipriya 0:7b4c00e3912f 261 }
sakthipriya 0:7b4c00e3912f 262 for(int i=2;i<4;i++){
sakthipriya 0:7b4c00e3912f 263 TM_packet[i]=crc2_tm[i-2];
sakthipriya 0:7b4c00e3912f 264 }
sakthipriya 0:7b4c00e3912f 265 for(int i=128;i<130;i++){
sakthipriya 0:7b4c00e3912f 266 TM_packet[i]=crc_tm[i-128];
sakthipriya 0:7b4c00e3912f 267 }
sakthipriya 0:7b4c00e3912f 268 }
sakthipriya 0:7b4c00e3912f 269 else {
sakthipriya 0:7b4c00e3912f 270 printf("INVALID TC");
sakthipriya 0:7b4c00e3912f 271 //Send Invalid TC Telemetry
sakthipriya 0:7b4c00e3912f 272 }
sakthipriya 0:7b4c00e3912f 273 break;
sakthipriya 0:7b4c00e3912f 274 default:{printf("INVALID TC");
sakthipriya 0:7b4c00e3912f 275 //send invalid TC TM
sakthipriya 0:7b4c00e3912f 276 break;}
sakthipriya 0:7b4c00e3912f 277 }
sakthipriya 0:7b4c00e3912f 278 break;
sakthipriya 0:7b4c00e3912f 279 case 8:printf("FUNCTION MANAGEMENT SERVICE\n");
sakthipriya 0:7b4c00e3912f 280 if(sub_service_type==1){
sakthipriya 0:7b4c00e3912f 281 if((TC_Packet[3]&0xF0)==0x00){
sakthipriya 0:7b4c00e3912f 282 printf("RUN_PRCS\n");
sakthipriya 0:7b4c00e3912f 283 switch(TC_Packet[3]){
sakthipriya 0:7b4c00e3912f 284 case 1:printf("P_EPS_INIT\n");
sakthipriya 0:7b4c00e3912f 285 //FCTN_EPS_INIT
sakthipriya 0:7b4c00e3912f 286 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 287 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 288 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 289 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 290 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 291 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 292 }
sakthipriya 0:7b4c00e3912f 293
sakthipriya 0:7b4c00e3912f 294 break;
sakthipriya 0:7b4c00e3912f 295 case 2:printf("P_EPS_MAIN\n");
sakthipriya 0:7b4c00e3912f 296 //FCTN_EPS_MAIN
sakthipriya 0:7b4c00e3912f 297 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 298 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 299 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 300 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 301 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 302 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 303 }
sakthipriya 0:7b4c00e3912f 304
sakthipriya 0:7b4c00e3912f 305 break;
sakthipriya 0:7b4c00e3912f 306 case 3:printf("P_ACS_INIT\n");
sakthipriya 0:7b4c00e3912f 307 //FCTN_ACS_INIT
sakthipriya 0:7b4c00e3912f 308 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 309 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 310 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 311 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 312 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 313 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 314 }
sakthipriya 0:7b4c00e3912f 315
sakthipriya 0:7b4c00e3912f 316 break;
sakthipriya 0:7b4c00e3912f 317 case 4:printf("P_ACS_ACQ_DATA\n");
sakthipriya 0:7b4c00e3912f 318 //P_ACS_ACQ_DATA
sakthipriya 0:7b4c00e3912f 319 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 320 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 321 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 322 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 323 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 324 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 325 }
sakthipriya 0:7b4c00e3912f 326
sakthipriya 0:7b4c00e3912f 327 break;
sakthipriya 0:7b4c00e3912f 328 case 5:printf("P_ACS_MAIN\n");
sakthipriya 0:7b4c00e3912f 329 //P_ACS_MAIN
sakthipriya 0:7b4c00e3912f 330 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 331 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 332 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 333 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 334 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 335 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 336 }
sakthipriya 0:7b4c00e3912f 337
sakthipriya 0:7b4c00e3912f 338 break;
sakthipriya 0:7b4c00e3912f 339 case 6:printf("P_BCN_INIT\n");
sakthipriya 0:7b4c00e3912f 340 //FCTN_BCN_INIT
sakthipriya 0:7b4c00e3912f 341 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 342 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 343 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 344 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 345 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 346 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 347 }
sakthipriya 0:7b4c00e3912f 348
sakthipriya 0:7b4c00e3912f 349 break;
sakthipriya 0:7b4c00e3912f 350 case 7:printf("P_BCN_MAIN\n");
sakthipriya 0:7b4c00e3912f 351 //FCTN_BCN_MAIN
sakthipriya 0:7b4c00e3912f 352 telemetry_type2[0]=0XB0;
sakthipriya 0:7b4c00e3912f 353 telemetry_type2[1]=tc_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 354 telemetry_type2[2]=tm_pac_seq_cnt_tm;
sakthipriya 0:7b4c00e3912f 355 telemetry_type2[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 356 for(int i=4;i<11;i++){
sakthipriya 0:7b4c00e3912f 357 telemetry_type2[i]=0X00;
sakthipriya 0:7b4c00e3912f 358 }
sakthipriya 0:7b4c00e3912f 359
sakthipriya 0:7b4c00e3912f 360 break;
sakthipriya 0:7b4c00e3912f 361 default:{printf("INVALID TC");
sakthipriya 0:7b4c00e3912f 362 //send invalid TC TM
sakthipriya 0:7b4c00e3912f 363 break;}
sakthipriya 0:7b4c00e3912f 364 }
sakthipriya 0:7b4c00e3912f 365 }
sakthipriya 0:7b4c00e3912f 366 else if((TC_Packet[3]&0xF0)==0x10){
sakthipriya 0:7b4c00e3912f 367 printf("PWR_SWCH\n");
sakthipriya 0:7b4c00e3912f 368 //P_BAE_SWCH_PWR
sakthipriya 0:7b4c00e3912f 369
sakthipriya 0:7b4c00e3912f 370 }
sakthipriya 0:7b4c00e3912f 371 else if((TC_Packet[3]&0xF0)==0x20){
sakthipriya 0:7b4c00e3912f 372 printf("PWR_Rservice_type\n");
sakthipriya 0:7b4c00e3912f 373 //P_BAE_RST_PWR
sakthipriya 0:7b4c00e3912f 374
sakthipriya 0:7b4c00e3912f 375 }
sakthipriya 0:7b4c00e3912f 376 else if((TC_Packet[3]&0xF0)==0xE0){
sakthipriya 0:7b4c00e3912f 377 printf("COMSN_ACS_ALGO\n");
sakthipriya 0:7b4c00e3912f 378 //P_BAE_COMSN_ACS_ALGO
sakthipriya 0:7b4c00e3912f 379
sakthipriya 0:7b4c00e3912f 380 uint8_t tmid_spr_tm=0xD0,tc_psc_tm,tm_psc_tm,ackcode_tm;
sakthipriya 0:7b4c00e3912f 381 uint8_t TM_packet[13];
sakthipriya 0:7b4c00e3912f 382 TM_packet[0]=tmid_spr_tm;
sakthipriya 0:7b4c00e3912f 383 TM_packet[1]=tc_psc_tm;
sakthipriya 0:7b4c00e3912f 384 TM_packet[2]=tm_psc_tm;
sakthipriya 0:7b4c00e3912f 385 TM_packet[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 386 for(int i=3;i<11;i++){
sakthipriya 0:7b4c00e3912f 387 TM_packet[i]=func_mngmt_service_tm[i-3];
sakthipriya 0:7b4c00e3912f 388 }
sakthipriya 0:7b4c00e3912f 389 for(int i=11;i<13;i++){
sakthipriya 0:7b4c00e3912f 390 TM_packet[i]=crc_tm[i-11];
sakthipriya 0:7b4c00e3912f 391 }
sakthipriya 0:7b4c00e3912f 392 }
sakthipriya 0:7b4c00e3912f 393 else if((TC_Packet[3]&0xF0)==0xF0){
sakthipriya 0:7b4c00e3912f 394 printf("COMSN_ACS_HW\n");
sakthipriya 0:7b4c00e3912f 395 //P_BAE_COMSN_ACS_HW
sakthipriya 0:7b4c00e3912f 396
sakthipriya 0:7b4c00e3912f 397 uint8_t tmid_spr_tm=0xD0,tc_psc_tm,tm_psc_tm,ackcode_tm;
sakthipriya 0:7b4c00e3912f 398 uint8_t TM_packet[13];
sakthipriya 0:7b4c00e3912f 399 TM_packet[0]=tmid_spr_tm;
sakthipriya 0:7b4c00e3912f 400 TM_packet[1]=tc_psc_tm;
sakthipriya 0:7b4c00e3912f 401 TM_packet[2]=tm_psc_tm;
sakthipriya 0:7b4c00e3912f 402 TM_packet[3]=ackcode_tm;
sakthipriya 0:7b4c00e3912f 403 for(int i=3;i<11;i++){
sakthipriya 0:7b4c00e3912f 404 TM_packet[i]=func_mngmt_service_tm[i-3];
sakthipriya 0:7b4c00e3912f 405 }
sakthipriya 0:7b4c00e3912f 406 for(int i=11;i<13;i++){
sakthipriya 0:7b4c00e3912f 407 TM_packet[i]=crc_tm[i-11];
sakthipriya 0:7b4c00e3912f 408 }
sakthipriya 0:7b4c00e3912f 409 }
sakthipriya 0:7b4c00e3912f 410 else {
sakthipriya 0:7b4c00e3912f 411 printf("INVALID TC");
sakthipriya 0:7b4c00e3912f 412 //Send Invalid TC Telemetry
sakthipriya 0:7b4c00e3912f 413 }
sakthipriya 0:7b4c00e3912f 414 }
sakthipriya 0:7b4c00e3912f 415 else {
sakthipriya 0:7b4c00e3912f 416 printf("INVALID TC");
sakthipriya 0:7b4c00e3912f 417 //Send Invalid TC Telemetry
sakthipriya 0:7b4c00e3912f 418 }
sakthipriya 0:7b4c00e3912f 419 break;
sakthipriya 0:7b4c00e3912f 420 default:{printf("INVALID TC");
sakthipriya 0:7b4c00e3912f 421 //send invalid TC TM
sakthipriya 0:7b4c00e3912f 422 break;}
sakthipriya 0:7b4c00e3912f 423 }
sakthipriya 0:7b4c00e3912f 424
sakthipriya 0:7b4c00e3912f 425 }
sakthipriya 0:7b4c00e3912f 426
sakthipriya 0:7b4c00e3912f 427 /************************************************************************************************************************************/
sakthipriya 0:7b4c00e3912f 428 //FUNCTIONS EXECUTED BY TELECOMMAND
sakthipriya 0:7b4c00e3912f 429 //MEMORY MANAGEMENT SERVICE
sakthipriya 0:7b4c00e3912f 430 //PID 0X02
sakthipriya 0:7b4c00e3912f 431
sakthipriya 0:7b4c00e3912f 432