jnlj

Dependencies:   mbed-rtos mbed

Fork of TFOX_CDMS_VR_1_0_WORKING by Team Fox

Committer:
cholletisaik777
Date:
Mon Jun 15 13:03:26 2015 +0000
Revision:
1:f926f14a52d8
Parent:
0:d6e3d1e21484
Child:
2:4c79b3dfef31
Changes_6_33_pm_15_06_2015

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