jnlj

Dependencies:   mbed-rtos mbed

Fork of TFOX_CDMS_VR_1_0_WORKING by Team Fox

Committer:
cholletisaik777
Date:
Mon Jun 15 12:16:59 2015 +0000
Revision:
0:d6e3d1e21484
Child:
1:f926f14a52d8
CDMS-RTOSv0.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cholletisaik777 0:d6e3d1e21484 1 #include "mbed.h"
cholletisaik777 0:d6e3d1e21484 2 #include "TC.h"
cholletisaik777 0:d6e3d1e21484 3 #include "SDCard.h"
cholletisaik777 0:d6e3d1e21484 4 #include "func_head.h"
cholletisaik777 0:d6e3d1e21484 5
cholletisaik777 0:d6e3d1e21484 6 Serial sc(USBTX,USBRX);
cholletisaik777 0:d6e3d1e21484 7
cholletisaik777 0:d6e3d1e21484 8 void FUNC_CDMS_RLY_TC()
cholletisaik777 0:d6e3d1e21484 9 {
cholletisaik777 0:d6e3d1e21484 10 sc.printf("in FUNC_CDMS_RLY_TC\n");
cholletisaik777 0:d6e3d1e21484 11 uint8_t read;
cholletisaik777 0:d6e3d1e21484 12 sc.scanf("%d",&read); //Packet sequence count
cholletisaik777 0:d6e3d1e21484 13 pac_seq_cnt = read;
cholletisaik777 0:d6e3d1e21484 14 sc.scanf("%d",&read); //Data[0] contains APID,LFB,long_or_short,AoN,Spr and Ack
cholletisaik777 0:d6e3d1e21484 15 apid_size = read;
cholletisaik777 0:d6e3d1e21484 16 apid=(apid_size&0xC0)>>6; //apid is decoded
cholletisaik777 0:d6e3d1e21484 17 long_or_short=(apid_size&0x10)>>4; //size of tc is known
cholletisaik777 0:d6e3d1e21484 18 switch(apid)
cholletisaik777 0:d6e3d1e21484 19 {
cholletisaik777 0:d6e3d1e21484 20 case 1: //apid=01 implies it corresponds to bae
cholletisaik777 0:d6e3d1e21484 21 {
cholletisaik777 0:d6e3d1e21484 22 sc.printf("BAE\r\r\n");
cholletisaik777 0:d6e3d1e21484 23 uint8_t p_i2c_bae[long_or_short*124+11];
cholletisaik777 0:d6e3d1e21484 24 p_i2c_bae[0]=pac_seq_cnt;
cholletisaik777 0:d6e3d1e21484 25 p_i2c_bae[1]=apid_size;
cholletisaik777 0:d6e3d1e21484 26 sc.scanf("%d",&read); //services contains service_type and sub_service_type
cholletisaik777 0:d6e3d1e21484 27 p_i2c_bae[2] = read;
cholletisaik777 0:d6e3d1e21484 28 for(int i=3;i<(long_or_short*124+11);i++){
cholletisaik777 0:d6e3d1e21484 29 sc.scanf("%d",&read);
cholletisaik777 0:d6e3d1e21484 30 p_i2c_bae[i] = read;
cholletisaik777 0:d6e3d1e21484 31 }
cholletisaik777 0:d6e3d1e21484 32 sc.printf("inform BAE about TC using I2C\r\n"); //interrupt to be sent to the bae
cholletisaik777 0:d6e3d1e21484 33 sc.printf("send the packet + CRC to the BAE after receving i2c signal from BAE\r\n"); //packet along with crc will be sent when bae is ready
cholletisaik777 0:d6e3d1e21484 34 break;
cholletisaik777 0:d6e3d1e21484 35 }
cholletisaik777 0:d6e3d1e21484 36 case 3:
cholletisaik777 0:d6e3d1e21484 37 {
cholletisaik777 0:d6e3d1e21484 38 sc.printf("SPEED\r\n"); //speed corresponds to apid = 11
cholletisaik777 0:d6e3d1e21484 39 uint8_t p_i2c_speed[long_or_short*124+11];
cholletisaik777 0:d6e3d1e21484 40 p_i2c_speed[0]=pac_seq_cnt;
cholletisaik777 0:d6e3d1e21484 41 p_i2c_speed[1]=apid_size;
cholletisaik777 0:d6e3d1e21484 42 sc.scanf("%d",&read);
cholletisaik777 0:d6e3d1e21484 43 p_i2c_speed[2] = read; //services contains service_type and sub_service_type
cholletisaik777 0:d6e3d1e21484 44 for(int i=3;i<(long_or_short*124+11);i++){
cholletisaik777 0:d6e3d1e21484 45 sc.scanf("%d",&read);
cholletisaik777 0:d6e3d1e21484 46 p_i2c_speed[i] = read;
cholletisaik777 0:d6e3d1e21484 47 }
cholletisaik777 0:d6e3d1e21484 48 sc.printf("inform PL about TC using I2C\r\n");
cholletisaik777 0:d6e3d1e21484 49 sc.printf("send the packet + CRC to the PL after receving i2c signal from PL\r\n");
cholletisaik777 0:d6e3d1e21484 50 break;
cholletisaik777 0:d6e3d1e21484 51 }
cholletisaik777 0:d6e3d1e21484 52 case 2:
cholletisaik777 0:d6e3d1e21484 53 {
cholletisaik777 0:d6e3d1e21484 54 sc.printf("CDMS\r\n"); //apid = 10 corresponds to cdms
cholletisaik777 0:d6e3d1e21484 55 uint8_t services,appdata[long_or_short*124+6],crc[2];
cholletisaik777 0:d6e3d1e21484 56 sc.scanf("%d",&read);
cholletisaik777 0:d6e3d1e21484 57 services = read; //services contains service_type and sub_service_type
cholletisaik777 0:d6e3d1e21484 58 for(int i=3;i<(long_or_short*124+6);i++){
cholletisaik777 0:d6e3d1e21484 59 sc.scanf("%d",&read);
cholletisaik777 0:d6e3d1e21484 60 appdata[i-3] = read;
cholletisaik777 0:d6e3d1e21484 61 }
cholletisaik777 0:d6e3d1e21484 62 sc.scanf("%d",&read);
cholletisaik777 0:d6e3d1e21484 63 crc[0] = read;
cholletisaik777 0:d6e3d1e21484 64 sc.scanf("%d",&read);
cholletisaik777 0:d6e3d1e21484 65 crc[1] = read;
cholletisaik777 0:d6e3d1e21484 66 service_type=(services&0xF0)>>4;
cholletisaik777 0:d6e3d1e21484 67 sub_service_type=(services&0x0F);
cholletisaik777 0:d6e3d1e21484 68 switch(service_type){
cholletisaik777 0:d6e3d1e21484 69 case 6:
cholletisaik777 0:d6e3d1e21484 70 {
cholletisaik777 0:d6e3d1e21484 71 sc.printf("memory management syservice_typeem\r\n");
cholletisaik777 0:d6e3d1e21484 72 switch(sub_service_type){
cholletisaik777 0:d6e3d1e21484 73 case 1:
cholletisaik777 0:d6e3d1e21484 74 {
cholletisaik777 0:d6e3d1e21484 75 sc.printf("READ FROM MEMORY\r\n");
cholletisaik777 0:d6e3d1e21484 76 if(appdata[0]==2){ //appdata[0] is pid
cholletisaik777 0:d6e3d1e21484 77 sc.printf("RD_L_FLASH1\r\n"); //tm is lmb
cholletisaik777 0:d6e3d1e21484 78 //P_CDMS_RD_FLASH
cholletisaik777 0:d6e3d1e21484 79
cholletisaik777 0:d6e3d1e21484 80 for(int i=0;i<128;i++){
cholletisaik777 0:d6e3d1e21484 81 telemetry_type1[i]=long_memory_block_tm[i-1];
cholletisaik777 0:d6e3d1e21484 82 }
cholletisaik777 0:d6e3d1e21484 83 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 84 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 85 }
cholletisaik777 0:d6e3d1e21484 86 }
cholletisaik777 0:d6e3d1e21484 87 else if ((appdata[0]&0xF0)==0x10){
cholletisaik777 0:d6e3d1e21484 88 sc.printf("RD_L_FLASH2\r\n"); //tm is lmb
cholletisaik777 0:d6e3d1e21484 89 //P_CDMS_RD_FLASH
cholletisaik777 0:d6e3d1e21484 90
cholletisaik777 0:d6e3d1e21484 91 for(int i=0;i<128;i++){
cholletisaik777 0:d6e3d1e21484 92 telemetry_type1[i]=long_memory_block_tm[i-1];
cholletisaik777 0:d6e3d1e21484 93 }
cholletisaik777 0:d6e3d1e21484 94 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 95 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 96 }
cholletisaik777 0:d6e3d1e21484 97 }
cholletisaik777 0:d6e3d1e21484 98 else if (appdata[0]==0x22){
cholletisaik777 0:d6e3d1e21484 99 sc.printf("RD_S_FLASH1\r\n"); //tm is smb
cholletisaik777 0:d6e3d1e21484 100 //P_CDMS_RD_FLASH
cholletisaik777 0:d6e3d1e21484 101
cholletisaik777 0:d6e3d1e21484 102 telemetry_type2[0]=tmid3_spr_tm;
cholletisaik777 0:d6e3d1e21484 103 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 104 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 105 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 106 telemetry_type2[i]=small_memory_block_tm[i-4];
cholletisaik777 0:d6e3d1e21484 107 }
cholletisaik777 0:d6e3d1e21484 108 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 109 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 110 }
cholletisaik777 0:d6e3d1e21484 111 }
cholletisaik777 0:d6e3d1e21484 112 else if ((appdata[0]&0xF0)==0x30){
cholletisaik777 0:d6e3d1e21484 113 sc.printf("RD_S_FLASH2\r\n"); //tm is smb
cholletisaik777 0:d6e3d1e21484 114 //P_CDMS_RD_FLASH
cholletisaik777 0:d6e3d1e21484 115
cholletisaik777 0:d6e3d1e21484 116 telemetry_type2[0]=tmid3_spr_tm;
cholletisaik777 0:d6e3d1e21484 117 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 118 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 119 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 120 telemetry_type2[i]=small_memory_block_tm[i-3];
cholletisaik777 0:d6e3d1e21484 121 }
cholletisaik777 0:d6e3d1e21484 122 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 123 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 124 }
cholletisaik777 0:d6e3d1e21484 125 }
cholletisaik777 0:d6e3d1e21484 126 else if (appdata[0]==0x42){
cholletisaik777 0:d6e3d1e21484 127 sc.printf("RD_L_RAM1\r\n"); //tm is lmb
cholletisaik777 0:d6e3d1e21484 128 //P_CDMS_RD_RAM
cholletisaik777 0:d6e3d1e21484 129
cholletisaik777 0:d6e3d1e21484 130 for(int i=0;i<128;i++){
cholletisaik777 0:d6e3d1e21484 131 telemetry_type1[i]=long_memory_block_tm[i-1];
cholletisaik777 0:d6e3d1e21484 132 }
cholletisaik777 0:d6e3d1e21484 133 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 134 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 135 }
cholletisaik777 0:d6e3d1e21484 136 }
cholletisaik777 0:d6e3d1e21484 137 else if ((appdata[0]&0xF0)==0x50){
cholletisaik777 0:d6e3d1e21484 138 sc.printf("RD_L_RAM2\r\n"); //tm is lmb
cholletisaik777 0:d6e3d1e21484 139 //P_CDMS_RD_RAM
cholletisaik777 0:d6e3d1e21484 140
cholletisaik777 0:d6e3d1e21484 141 for(int i=0;i<128;i++){
cholletisaik777 0:d6e3d1e21484 142 telemetry_type1[i]=long_memory_block_tm[i-1];
cholletisaik777 0:d6e3d1e21484 143 }
cholletisaik777 0:d6e3d1e21484 144 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 145 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 146 }
cholletisaik777 0:d6e3d1e21484 147 }
cholletisaik777 0:d6e3d1e21484 148 else if (appdata[0]==0x62){
cholletisaik777 0:d6e3d1e21484 149 sc.printf("RD_S_RAM\r\n"); //tm is smb
cholletisaik777 0:d6e3d1e21484 150 //P_CDMS_RD_RAM
cholletisaik777 0:d6e3d1e21484 151
cholletisaik777 0:d6e3d1e21484 152 telemetry_type2[0]=tmid3_spr_tm;
cholletisaik777 0:d6e3d1e21484 153 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 154 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 155 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 156 telemetry_type2[i]=small_memory_block_tm[i-3];
cholletisaik777 0:d6e3d1e21484 157 }
cholletisaik777 0:d6e3d1e21484 158 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 159 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 160 }
cholletisaik777 0:d6e3d1e21484 161 }
cholletisaik777 0:d6e3d1e21484 162 else if ((appdata[0]&0xF0)==0x70){
cholletisaik777 0:d6e3d1e21484 163 sc.printf("RD_S_RAM2\r\n"); //tm is smb
cholletisaik777 0:d6e3d1e21484 164 //P_CDMS_RD_RAM
cholletisaik777 0:d6e3d1e21484 165
cholletisaik777 0:d6e3d1e21484 166 telemetry_type2[0]=tmid3_spr_tm;
cholletisaik777 0:d6e3d1e21484 167 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 168 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 169 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 170 telemetry_type2[i]=small_memory_block_tm[i-3];
cholletisaik777 0:d6e3d1e21484 171 }
cholletisaik777 0:d6e3d1e21484 172 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 173 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 174 }
cholletisaik777 0:d6e3d1e21484 175 }
cholletisaik777 0:d6e3d1e21484 176 else {
cholletisaik777 0:d6e3d1e21484 177 sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 178 //Send Invalid TC Telemetry
cholletisaik777 0:d6e3d1e21484 179 }
cholletisaik777 0:d6e3d1e21484 180 break;
cholletisaik777 0:d6e3d1e21484 181 }
cholletisaik777 0:d6e3d1e21484 182 case 5:
cholletisaik777 0:d6e3d1e21484 183 {
cholletisaik777 0:d6e3d1e21484 184 sc.printf("WRITE ON MEMORY\r\n");
cholletisaik777 0:d6e3d1e21484 185 switch(appdata[0]){
cholletisaik777 0:d6e3d1e21484 186 case 0:sc.printf("WR_S_FLASH\r\n");
cholletisaik777 0:d6e3d1e21484 187 //P_CDMS_WR_FLASH
cholletisaik777 0:d6e3d1e21484 188 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 189 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 190 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 191 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 192 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 193 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 194 }
cholletisaik777 0:d6e3d1e21484 195
cholletisaik777 0:d6e3d1e21484 196 break;
cholletisaik777 0:d6e3d1e21484 197 case 1:sc.printf("WR_S_RAM\r\n");
cholletisaik777 0:d6e3d1e21484 198 //P_CDMS_WR_RAM
cholletisaik777 0:d6e3d1e21484 199 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 200 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 201 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 202 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 203 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 204 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 205 }
cholletisaik777 0:d6e3d1e21484 206
cholletisaik777 0:d6e3d1e21484 207 break;
cholletisaik777 0:d6e3d1e21484 208 case 16:sc.printf("WR_L_FLASH\r\n");
cholletisaik777 0:d6e3d1e21484 209 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 210 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 211 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 212 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 213 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 214 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 215 }
cholletisaik777 0:d6e3d1e21484 216 //P_CDMS_WR_FLASH
cholletisaik777 0:d6e3d1e21484 217
cholletisaik777 0:d6e3d1e21484 218 break;
cholletisaik777 0:d6e3d1e21484 219 case 17:sc.printf("WR_L_RAM\r\n");
cholletisaik777 0:d6e3d1e21484 220 //P_CDMS_WR_RAM
cholletisaik777 0:d6e3d1e21484 221 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 222 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 223 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 224 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 225 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 226 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 227 }
cholletisaik777 0:d6e3d1e21484 228
cholletisaik777 0:d6e3d1e21484 229 break;
cholletisaik777 0:d6e3d1e21484 230 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 231 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 232 break;}
cholletisaik777 0:d6e3d1e21484 233 }
cholletisaik777 0:d6e3d1e21484 234 break;
cholletisaik777 0:d6e3d1e21484 235 }
cholletisaik777 0:d6e3d1e21484 236 case 6:
cholletisaik777 0:d6e3d1e21484 237 {
cholletisaik777 0:d6e3d1e21484 238 sc.printf("WRITE FROM ONE MEMORY TO ANOTHER\r\n");
cholletisaik777 0:d6e3d1e21484 239 switch(appdata[0]){
cholletisaik777 0:d6e3d1e21484 240 case 0:sc.printf("WR_S_FLASH\r\n");
cholletisaik777 0:d6e3d1e21484 241 //P_CDMS_WR_FLASH
cholletisaik777 0:d6e3d1e21484 242 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 243 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 244 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 245 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 246 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 247 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 248 }
cholletisaik777 0:d6e3d1e21484 249 break;
cholletisaik777 0:d6e3d1e21484 250 case 1:sc.printf("WR_S_RAM\r\n");
cholletisaik777 0:d6e3d1e21484 251 //P_CDMS_WR_RAM
cholletisaik777 0:d6e3d1e21484 252 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 253 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 254 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 255 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 256 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 257 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 258 }
cholletisaik777 0:d6e3d1e21484 259 break;
cholletisaik777 0:d6e3d1e21484 260 case 16:sc.printf("WR_L_FLASH\r\n");
cholletisaik777 0:d6e3d1e21484 261 //P_CDMS_WR_FLASH
cholletisaik777 0:d6e3d1e21484 262 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 263 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 264 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 265 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 266 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 267 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 268 }
cholletisaik777 0:d6e3d1e21484 269 break;
cholletisaik777 0:d6e3d1e21484 270 case 17:sc.printf("WR_L_RAM\r\n");
cholletisaik777 0:d6e3d1e21484 271 //P_CDMS_WR_RAM
cholletisaik777 0:d6e3d1e21484 272 telemetry_type2[0]=0XB0;
cholletisaik777 0:d6e3d1e21484 273 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 274 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 275 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 276 for(int i=4;i<11;i++){
cholletisaik777 0:d6e3d1e21484 277 telemetry_type2[i]=0X00;
cholletisaik777 0:d6e3d1e21484 278 }
cholletisaik777 0:d6e3d1e21484 279 break;
cholletisaik777 0:d6e3d1e21484 280 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 281 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 282 break;}
cholletisaik777 0:d6e3d1e21484 283 }
cholletisaik777 0:d6e3d1e21484 284 break;
cholletisaik777 0:d6e3d1e21484 285 }
cholletisaik777 0:d6e3d1e21484 286 case 9:
cholletisaik777 0:d6e3d1e21484 287 {
cholletisaik777 0:d6e3d1e21484 288 sc.printf("SEND CRC OF FLASH MEMORY\r\n");
cholletisaik777 0:d6e3d1e21484 289 if(appdata[0]==2){
cholletisaik777 0:d6e3d1e21484 290 sc.printf("GET_FLASH_CRC\r\n"); //tm is crc_flash
cholletisaik777 0:d6e3d1e21484 291 //P_CDMS_GET_FLASH_CRC
cholletisaik777 0:d6e3d1e21484 292
cholletisaik777 0:d6e3d1e21484 293 for(int i=0;i<2;i++){
cholletisaik777 0:d6e3d1e21484 294 telemetry_type1[i]=crc1_tm[i];
cholletisaik777 0:d6e3d1e21484 295 }
cholletisaik777 0:d6e3d1e21484 296 for(int i=2;i<4;i++){
cholletisaik777 0:d6e3d1e21484 297 telemetry_type1[i]=crc2_tm[i-2];
cholletisaik777 0:d6e3d1e21484 298 }
cholletisaik777 0:d6e3d1e21484 299 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 300 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 301 }
cholletisaik777 0:d6e3d1e21484 302 }
cholletisaik777 0:d6e3d1e21484 303 else {
cholletisaik777 0:d6e3d1e21484 304 sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 305 //Send Invalid TC Telemetry
cholletisaik777 0:d6e3d1e21484 306 }
cholletisaik777 0:d6e3d1e21484 307 break;
cholletisaik777 0:d6e3d1e21484 308 }
cholletisaik777 0:d6e3d1e21484 309 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 310 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 311 break;}
cholletisaik777 0:d6e3d1e21484 312 }
cholletisaik777 0:d6e3d1e21484 313 break;
cholletisaik777 0:d6e3d1e21484 314 }
cholletisaik777 0:d6e3d1e21484 315 case 8:
cholletisaik777 0:d6e3d1e21484 316 {
cholletisaik777 0:d6e3d1e21484 317 sc.printf("FUNCTION MANAGEMENT SERVICE\r\n");
cholletisaik777 0:d6e3d1e21484 318 if(sub_service_type==1){
cholletisaik777 0:d6e3d1e21484 319 if((appdata[0]&0xF0)==0x00){
cholletisaik777 0:d6e3d1e21484 320 sc.printf("RUN_PRCS\r\n");
cholletisaik777 0:d6e3d1e21484 321 switch(appdata[0]){
cholletisaik777 0:d6e3d1e21484 322 case 1:sc.printf("P_PL_INIT\r\n");//tm is ack_l234
cholletisaik777 0:d6e3d1e21484 323 //P_PL_INIT
cholletisaik777 0:d6e3d1e21484 324 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 325 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 326 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 327 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 328 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 329 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 330 }
cholletisaik777 0:d6e3d1e21484 331 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 332 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 333 }
cholletisaik777 0:d6e3d1e21484 334 break;
cholletisaik777 0:d6e3d1e21484 335 case 2:sc.printf("P_PL_MNGR\r\n");//tm is ack_l234
cholletisaik777 0:d6e3d1e21484 336 //P_PL_MNGR
cholletisaik777 0:d6e3d1e21484 337 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 338 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 339 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 340 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 341 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 342 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 343 }
cholletisaik777 0:d6e3d1e21484 344 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 345 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 346 }
cholletisaik777 0:d6e3d1e21484 347 break;
cholletisaik777 0:d6e3d1e21484 348 case 3:sc.printf("P_COM_INIT\r\n");//tm is ack_l234
cholletisaik777 0:d6e3d1e21484 349 //P_COM_INIT
cholletisaik777 0:d6e3d1e21484 350 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 351 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 352 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 353 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 354 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 355 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 356 }
cholletisaik777 0:d6e3d1e21484 357 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 358 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 359 }
cholletisaik777 0:d6e3d1e21484 360 break;
cholletisaik777 0:d6e3d1e21484 361 case 4:sc.printf("P_CDMS_HK_MNGR\r\n");//tm is ack_l234
cholletisaik777 0:d6e3d1e21484 362 //P_CDMS_HK_MNGR
cholletisaik777 0:d6e3d1e21484 363 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 364 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 365 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 366 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 367 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 368 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 369 }
cholletisaik777 0:d6e3d1e21484 370 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 371 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 372 }
cholletisaik777 0:d6e3d1e21484 373 break;
cholletisaik777 0:d6e3d1e21484 374 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 375 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 376 break;}
cholletisaik777 0:d6e3d1e21484 377 }
cholletisaik777 0:d6e3d1e21484 378 }
cholletisaik777 0:d6e3d1e21484 379 else if((appdata[0]&0xF0)==0x10){
cholletisaik777 0:d6e3d1e21484 380 sc.printf("PWR_SWCH\r\n");
cholletisaik777 0:d6e3d1e21484 381 //P_CDMS_SWCH_PWR
cholletisaik777 0:d6e3d1e21484 382
cholletisaik777 0:d6e3d1e21484 383 }
cholletisaik777 0:d6e3d1e21484 384 else if((appdata[0]&0xF0)==0x20){
cholletisaik777 0:d6e3d1e21484 385 sc.printf("PWR_Rservice_type\r\n");
cholletisaik777 0:d6e3d1e21484 386 //P_CDMS_RST_PWR
cholletisaik777 0:d6e3d1e21484 387
cholletisaik777 0:d6e3d1e21484 388 }
cholletisaik777 0:d6e3d1e21484 389 else if((appdata[0]&0xF0)==0xE0){
cholletisaik777 0:d6e3d1e21484 390 sc.printf("RD_RTC\n"); //tm is func_mngmt_service_tm
cholletisaik777 0:d6e3d1e21484 391 uint8_t *data;
cholletisaik777 0:d6e3d1e21484 392 data = FUNC_CDMS_RD_RTC();
cholletisaik777 0:d6e3d1e21484 393 telemetry_type2[0]=tmid4_spr_tm;
cholletisaik777 0:d6e3d1e21484 394 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 395 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 396 for(int i=3;i<11;i++)
cholletisaik777 0:d6e3d1e21484 397 {
cholletisaik777 0:d6e3d1e21484 398 telemetry_type2[i]=data[i-3];
cholletisaik777 0:d6e3d1e21484 399 }
cholletisaik777 0:d6e3d1e21484 400 for(int i=0;i<11;i++)
cholletisaik777 0:d6e3d1e21484 401 {
cholletisaik777 0:d6e3d1e21484 402 sc.printf("%d\r\n",telemetry_type2[i]);
cholletisaik777 0:d6e3d1e21484 403 }
cholletisaik777 0:d6e3d1e21484 404 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 405 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 406 }
cholletisaik777 0:d6e3d1e21484 407 for(int i=0;i<13;i++)
cholletisaik777 0:d6e3d1e21484 408 { sd_data[i]=telemetry_type2[i];}
cholletisaik777 0:d6e3d1e21484 409 for(int i=13;i<512;i++)
cholletisaik777 0:d6e3d1e21484 410 { sd_data[i]=' ';}
cholletisaik777 0:d6e3d1e21484 411 disk_write(sd_data, TM_SD_BLOCK_NUMBER);
cholletisaik777 0:d6e3d1e21484 412 disk_read(sd_read_data,TM_SD_BLOCK_NUMBER);
cholletisaik777 0:d6e3d1e21484 413 sc.printf("data read from sd card\r\n");
cholletisaik777 0:d6e3d1e21484 414 sc.printf("%s\r\n",sd_read_data);
cholletisaik777 0:d6e3d1e21484 415 TM_SD_BLOCK_NUMBER++;
cholletisaik777 0:d6e3d1e21484 416
cholletisaik777 0:d6e3d1e21484 417 }
cholletisaik777 0:d6e3d1e21484 418 else if((appdata[0]&0xF0)==0xF0){
cholletisaik777 0:d6e3d1e21484 419 sc.printf("SD_MNGR\r\n"); //tm is func_mngmt_service_tm
cholletisaik777 0:d6e3d1e21484 420 //P_CDMS_MNG_SD
cholletisaik777 0:d6e3d1e21484 421
cholletisaik777 0:d6e3d1e21484 422 telemetry_type2[0]=tmid4_spr_tm;
cholletisaik777 0:d6e3d1e21484 423 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 424 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 425 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 426 telemetry_type2[i]=func_mngmt_service_tm[i-3];
cholletisaik777 0:d6e3d1e21484 427 }
cholletisaik777 0:d6e3d1e21484 428 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 429 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 430 }
cholletisaik777 0:d6e3d1e21484 431 }
cholletisaik777 0:d6e3d1e21484 432 else {
cholletisaik777 0:d6e3d1e21484 433 sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 434 //Send Invalid TC Telemetry
cholletisaik777 0:d6e3d1e21484 435 }
cholletisaik777 0:d6e3d1e21484 436 }
cholletisaik777 0:d6e3d1e21484 437 else {
cholletisaik777 0:d6e3d1e21484 438 sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 439 //Send Invalid TC Telemetry
cholletisaik777 0:d6e3d1e21484 440 }
cholletisaik777 0:d6e3d1e21484 441 break;
cholletisaik777 0:d6e3d1e21484 442 }
cholletisaik777 0:d6e3d1e21484 443 case 7:
cholletisaik777 0:d6e3d1e21484 444 {
cholletisaik777 0:d6e3d1e21484 445 sc.printf("PAYLOAD MANAGEMENT SERVICE\r\n"); //TM is ACKL234
cholletisaik777 0:d6e3d1e21484 446 switch(sub_service_type){
cholletisaik777 0:d6e3d1e21484 447 case 1:sc.printf("INSERT PL SCHEDULE\r\n");
cholletisaik777 0:d6e3d1e21484 448 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 449 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 450 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 451 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 452 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 453 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 454 }
cholletisaik777 0:d6e3d1e21484 455 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 456 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 457 }
cholletisaik777 0:d6e3d1e21484 458 break;
cholletisaik777 0:d6e3d1e21484 459 case 2:sc.printf("DELETE PL SCHEDULE\r\n");
cholletisaik777 0:d6e3d1e21484 460 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 461 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 462 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 463 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 464 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 465 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 466 }
cholletisaik777 0:d6e3d1e21484 467 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 468 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 469 }
cholletisaik777 0:d6e3d1e21484 470 break;
cholletisaik777 0:d6e3d1e21484 471 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 472 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 473 break;}
cholletisaik777 0:d6e3d1e21484 474 }
cholletisaik777 0:d6e3d1e21484 475 break;
cholletisaik777 0:d6e3d1e21484 476 }
cholletisaik777 0:d6e3d1e21484 477 case 11:
cholletisaik777 0:d6e3d1e21484 478 {
cholletisaik777 0:d6e3d1e21484 479 sc.printf("ONBOARD OPERATIONS SCHEDULING SERVICE\r\n");
cholletisaik777 0:d6e3d1e21484 480 switch(sub_service_type){
cholletisaik777 0:d6e3d1e21484 481 case 1:
cholletisaik777 0:d6e3d1e21484 482 {
cholletisaik777 0:d6e3d1e21484 483 sc.printf("DISABLE RELEASE OF TCs\r\n"); //tm is ack_l1
cholletisaik777 0:d6e3d1e21484 484 telemetry_type2[0]=tmid1_spr_tm;
cholletisaik777 0:d6e3d1e21484 485 telemetry_type2[1]=tc_exec_tm;
cholletisaik777 0:d6e3d1e21484 486 telemetry_type2[2]=tc_service_typeatus_tm;
cholletisaik777 0:d6e3d1e21484 487 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 488 telemetry_type2[i]=pac_seq_cnt_of_tc_tm[i-3];
cholletisaik777 0:d6e3d1e21484 489 }
cholletisaik777 0:d6e3d1e21484 490 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 491 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 492 }
cholletisaik777 0:d6e3d1e21484 493 break;
cholletisaik777 0:d6e3d1e21484 494 }
cholletisaik777 0:d6e3d1e21484 495 case 2:
cholletisaik777 0:d6e3d1e21484 496 {
cholletisaik777 0:d6e3d1e21484 497 sc.printf("ENABLE RELEASE OF TCs\r\n");
cholletisaik777 0:d6e3d1e21484 498 break;
cholletisaik777 0:d6e3d1e21484 499 }
cholletisaik777 0:d6e3d1e21484 500 case 5:
cholletisaik777 0:d6e3d1e21484 501 {
cholletisaik777 0:d6e3d1e21484 502 sc.printf("DELETE TELECOMMANDS\r\n");
cholletisaik777 0:d6e3d1e21484 503 break;
cholletisaik777 0:d6e3d1e21484 504 }
cholletisaik777 0:d6e3d1e21484 505 case 6:
cholletisaik777 0:d6e3d1e21484 506 {
cholletisaik777 0:d6e3d1e21484 507 sc.printf("REPORT TC LIST IN DETAILED FORM\r\n"); //tm is tc_liservice_type
cholletisaik777 0:d6e3d1e21484 508 for(int i=0;i<9;i++){
cholletisaik777 0:d6e3d1e21484 509 telemetry_type1[i]=tc_liservice_type_packet1_tm[i];
cholletisaik777 0:d6e3d1e21484 510 }
cholletisaik777 0:d6e3d1e21484 511 for(int i=9;i<18;i++){
cholletisaik777 0:d6e3d1e21484 512 telemetry_type1[i]=tc_liservice_type_packet2_tm[i-9];
cholletisaik777 0:d6e3d1e21484 513 }
cholletisaik777 0:d6e3d1e21484 514 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 515 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 516 }
cholletisaik777 0:d6e3d1e21484 517 break;
cholletisaik777 0:d6e3d1e21484 518 }
cholletisaik777 0:d6e3d1e21484 519 case 8:
cholletisaik777 0:d6e3d1e21484 520 {
cholletisaik777 0:d6e3d1e21484 521 sc.printf("REPORT STATUS OF TC LIST\r\n"); //tm is ack_l1
cholletisaik777 0:d6e3d1e21484 522 telemetry_type2[0]=tmid1_spr_tm;
cholletisaik777 0:d6e3d1e21484 523 telemetry_type2[1]=tc_exec_tm;
cholletisaik777 0:d6e3d1e21484 524 telemetry_type2[2]=tc_service_typeatus_tm;
cholletisaik777 0:d6e3d1e21484 525 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 526 telemetry_type2[i]=pac_seq_cnt_of_tc_tm[i-3];
cholletisaik777 0:d6e3d1e21484 527 }
cholletisaik777 0:d6e3d1e21484 528 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 529 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 530 }
cholletisaik777 0:d6e3d1e21484 531 break;
cholletisaik777 0:d6e3d1e21484 532 }
cholletisaik777 0:d6e3d1e21484 533 case 15:
cholletisaik777 0:d6e3d1e21484 534 {
cholletisaik777 0:d6e3d1e21484 535 sc.printf("REPORT STATUS OF LAST UNEXECUTED TC\r\n"); //tm is ack_l234
cholletisaik777 0:d6e3d1e21484 536 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 537 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 538 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 539 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 540 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 541 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 542 }
cholletisaik777 0:d6e3d1e21484 543 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 544 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 545 }
cholletisaik777 0:d6e3d1e21484 546 break;
cholletisaik777 0:d6e3d1e21484 547 }
cholletisaik777 0:d6e3d1e21484 548 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 549 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 550 break;}
cholletisaik777 0:d6e3d1e21484 551 }
cholletisaik777 0:d6e3d1e21484 552 break;
cholletisaik777 0:d6e3d1e21484 553 }
cholletisaik777 0:d6e3d1e21484 554 case 13:
cholletisaik777 0:d6e3d1e21484 555 {
cholletisaik777 0:d6e3d1e21484 556 sc.printf("LARGE DATA TRANSFER\r\n"); //tm is ack_l234
cholletisaik777 0:d6e3d1e21484 557 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 558 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 559 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 560 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 561 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 562 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 563 }
cholletisaik777 0:d6e3d1e21484 564 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 565 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 566 }
cholletisaik777 0:d6e3d1e21484 567 break;
cholletisaik777 0:d6e3d1e21484 568 }
cholletisaik777 0:d6e3d1e21484 569 case 15:
cholletisaik777 0:d6e3d1e21484 570 {
cholletisaik777 0:d6e3d1e21484 571 sc.printf("ONBOARD STORAGE AND RETRIEVAL SERVICE\r\n");
cholletisaik777 0:d6e3d1e21484 572 switch(sub_service_type){
cholletisaik777 0:d6e3d1e21484 573 case 0:
cholletisaik777 0:d6e3d1e21484 574 {
cholletisaik777 0:d6e3d1e21484 575 sc.printf("SCF\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 576 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 577 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 578 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 579 }
cholletisaik777 0:d6e3d1e21484 580 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 581 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 582 }
cholletisaik777 0:d6e3d1e21484 583 break;
cholletisaik777 0:d6e3d1e21484 584 }
cholletisaik777 0:d6e3d1e21484 585 case 1:
cholletisaik777 0:d6e3d1e21484 586 {
cholletisaik777 0:d6e3d1e21484 587 sc.printf("SFF-AT\r\n");
cholletisaik777 0:d6e3d1e21484 588 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm; //tm is obsrs
cholletisaik777 0:d6e3d1e21484 589 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 590 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 591 }
cholletisaik777 0:d6e3d1e21484 592 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 593 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 594 }
cholletisaik777 0:d6e3d1e21484 595 break;
cholletisaik777 0:d6e3d1e21484 596 }
cholletisaik777 0:d6e3d1e21484 597 case 2:
cholletisaik777 0:d6e3d1e21484 598 {
cholletisaik777 0:d6e3d1e21484 599 sc.printf("SFF-BT\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 600 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 601 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 602 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 603 }
cholletisaik777 0:d6e3d1e21484 604 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 605 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 606 }
cholletisaik777 0:d6e3d1e21484 607 break;
cholletisaik777 0:d6e3d1e21484 608 }
cholletisaik777 0:d6e3d1e21484 609 case 3:
cholletisaik777 0:d6e3d1e21484 610 {
cholletisaik777 0:d6e3d1e21484 611 sc.printf("LOG\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 612 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 613 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 614 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 615 }
cholletisaik777 0:d6e3d1e21484 616 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 617 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 618 }
cholletisaik777 0:d6e3d1e21484 619 break;
cholletisaik777 0:d6e3d1e21484 620 }
cholletisaik777 0:d6e3d1e21484 621 case 4:
cholletisaik777 0:d6e3d1e21484 622 {
cholletisaik777 0:d6e3d1e21484 623 sc.printf("HK_ARCHIVE\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 624 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 625 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 626 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 627 }
cholletisaik777 0:d6e3d1e21484 628 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 629 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 630 }
cholletisaik777 0:d6e3d1e21484 631 break;
cholletisaik777 0:d6e3d1e21484 632 }
cholletisaik777 0:d6e3d1e21484 633 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 634 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 635 break;
cholletisaik777 0:d6e3d1e21484 636 }
cholletisaik777 0:d6e3d1e21484 637 }
cholletisaik777 0:d6e3d1e21484 638 break;
cholletisaik777 0:d6e3d1e21484 639 }
cholletisaik777 0:d6e3d1e21484 640 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 641 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 642 break;
cholletisaik777 0:d6e3d1e21484 643 }
cholletisaik777 0:d6e3d1e21484 644 }
cholletisaik777 0:d6e3d1e21484 645 break;
cholletisaik777 0:d6e3d1e21484 646 }
cholletisaik777 0:d6e3d1e21484 647 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 648 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 649 break;
cholletisaik777 0:d6e3d1e21484 650 }
cholletisaik777 0:d6e3d1e21484 651 }
cholletisaik777 0:d6e3d1e21484 652
cholletisaik777 0:d6e3d1e21484 653 }