vr1.1

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of CDMS_RTOS_v1_1 by Team Fox

Committer:
cholletisaik777
Date:
Tue Jun 16 13:06:19 2015 +0000
Revision:
4:cc85cfaa2086
Parent:
3:0c3f7c3fabc9
Child:
5:c77b49508927
WROTE SD FUNCTION

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
sakthipriya 3:0c3f7c3fabc9 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 4:cc85cfaa2086 411 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 412 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 4:cc85cfaa2086 413 }
cholletisaik777 4:cc85cfaa2086 414 for(int i=0;i<13;i++)
cholletisaik777 4:cc85cfaa2086 415 sd_data[i]=telemetry_type2[i];
cholletisaik777 0:d6e3d1e21484 416 for(int i=13;i<512;i++)
cholletisaik777 4:cc85cfaa2086 417 sd_data[i]='f';
cholletisaik777 4:cc85cfaa2086 418 FUNC_WR_SD(sd_data, 1);
cholletisaik777 4:cc85cfaa2086 419 FUNC_RD_SD(sd_read_data,1);
cholletisaik777 1:f926f14a52d8 420 sc.printf("data read from sd card\r\r\n");
cholletisaik777 1:f926f14a52d8 421 for(int i=0;i<512;i++)
cholletisaik777 4:cc85cfaa2086 422 sc.printf("%d ",sd_read_data[i]);
cholletisaik777 0:d6e3d1e21484 423 }
cholletisaik777 0:d6e3d1e21484 424 else if((appdata[0]&0xF0)==0xF0){
cholletisaik777 1:f926f14a52d8 425 sc.printf("SD_MNGR\r\r\n"); //tm is func_mngmt_service_tm
cholletisaik777 0:d6e3d1e21484 426 //P_CDMS_MNG_SD
cholletisaik777 0:d6e3d1e21484 427
cholletisaik777 0:d6e3d1e21484 428 telemetry_type2[0]=tmid4_spr_tm;
cholletisaik777 0:d6e3d1e21484 429 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 430 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 431 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 432 telemetry_type2[i]=func_mngmt_service_tm[i-3];
cholletisaik777 0:d6e3d1e21484 433 }
cholletisaik777 0:d6e3d1e21484 434 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 435 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 436 }
cholletisaik777 0:d6e3d1e21484 437 }
cholletisaik777 0:d6e3d1e21484 438 else {
cholletisaik777 0:d6e3d1e21484 439 sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 440 //Send Invalid TC Telemetry
cholletisaik777 0:d6e3d1e21484 441 }
cholletisaik777 0:d6e3d1e21484 442 }
cholletisaik777 0:d6e3d1e21484 443 else {
cholletisaik777 0:d6e3d1e21484 444 sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 445 //Send Invalid TC Telemetry
cholletisaik777 0:d6e3d1e21484 446 }
cholletisaik777 0:d6e3d1e21484 447 break;
cholletisaik777 0:d6e3d1e21484 448 }
cholletisaik777 0:d6e3d1e21484 449 case 7:
cholletisaik777 0:d6e3d1e21484 450 {
cholletisaik777 1:f926f14a52d8 451 sc.printf("PAYLOAD MANAGEMENT SERVICE\r\r\n"); //TM is ACKL234
cholletisaik777 0:d6e3d1e21484 452 switch(sub_service_type){
cholletisaik777 1:f926f14a52d8 453 case 1:sc.printf("INSERT PL SCHEDULE\r\r\n");
cholletisaik777 0:d6e3d1e21484 454 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 455 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 456 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 457 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 458 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 459 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 460 }
cholletisaik777 0:d6e3d1e21484 461 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 462 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 463 }
cholletisaik777 0:d6e3d1e21484 464 break;
cholletisaik777 1:f926f14a52d8 465 case 2:sc.printf("DELETE PL SCHEDULE\r\r\n");
cholletisaik777 0:d6e3d1e21484 466 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 467 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 468 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 469 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 470 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 471 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 472 }
cholletisaik777 0:d6e3d1e21484 473 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 474 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 475 }
cholletisaik777 0:d6e3d1e21484 476 break;
cholletisaik777 0:d6e3d1e21484 477 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 478 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 479 break;}
cholletisaik777 0:d6e3d1e21484 480 }
cholletisaik777 0:d6e3d1e21484 481 break;
cholletisaik777 0:d6e3d1e21484 482 }
cholletisaik777 0:d6e3d1e21484 483 case 11:
cholletisaik777 0:d6e3d1e21484 484 {
cholletisaik777 1:f926f14a52d8 485 sc.printf("ONBOARD OPERATIONS SCHEDULING SERVICE\r\r\n");
cholletisaik777 0:d6e3d1e21484 486 switch(sub_service_type){
cholletisaik777 0:d6e3d1e21484 487 case 1:
cholletisaik777 0:d6e3d1e21484 488 {
cholletisaik777 1:f926f14a52d8 489 sc.printf("DISABLE RELEASE OF TCs\r\r\n"); //tm is ack_l1
cholletisaik777 0:d6e3d1e21484 490 telemetry_type2[0]=tmid1_spr_tm;
cholletisaik777 0:d6e3d1e21484 491 telemetry_type2[1]=tc_exec_tm;
cholletisaik777 0:d6e3d1e21484 492 telemetry_type2[2]=tc_service_typeatus_tm;
cholletisaik777 0:d6e3d1e21484 493 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 494 telemetry_type2[i]=pac_seq_cnt_of_tc_tm[i-3];
cholletisaik777 0:d6e3d1e21484 495 }
cholletisaik777 0:d6e3d1e21484 496 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 497 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 498 }
cholletisaik777 0:d6e3d1e21484 499 break;
cholletisaik777 0:d6e3d1e21484 500 }
cholletisaik777 0:d6e3d1e21484 501 case 2:
cholletisaik777 0:d6e3d1e21484 502 {
cholletisaik777 1:f926f14a52d8 503 sc.printf("ENABLE RELEASE OF TCs\r\r\n");
cholletisaik777 0:d6e3d1e21484 504 break;
cholletisaik777 0:d6e3d1e21484 505 }
cholletisaik777 0:d6e3d1e21484 506 case 5:
cholletisaik777 0:d6e3d1e21484 507 {
cholletisaik777 1:f926f14a52d8 508 sc.printf("DELETE TELECOMMANDS\r\r\n");
cholletisaik777 0:d6e3d1e21484 509 break;
cholletisaik777 0:d6e3d1e21484 510 }
cholletisaik777 0:d6e3d1e21484 511 case 6:
cholletisaik777 0:d6e3d1e21484 512 {
cholletisaik777 1:f926f14a52d8 513 sc.printf("REPORT TC LIST IN DETAILED FORM\r\r\n"); //tm is tc_liservice_type
cholletisaik777 0:d6e3d1e21484 514 for(int i=0;i<9;i++){
cholletisaik777 0:d6e3d1e21484 515 telemetry_type1[i]=tc_liservice_type_packet1_tm[i];
cholletisaik777 0:d6e3d1e21484 516 }
cholletisaik777 0:d6e3d1e21484 517 for(int i=9;i<18;i++){
cholletisaik777 0:d6e3d1e21484 518 telemetry_type1[i]=tc_liservice_type_packet2_tm[i-9];
cholletisaik777 0:d6e3d1e21484 519 }
cholletisaik777 0:d6e3d1e21484 520 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 521 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 522 }
cholletisaik777 0:d6e3d1e21484 523 break;
cholletisaik777 0:d6e3d1e21484 524 }
cholletisaik777 0:d6e3d1e21484 525 case 8:
cholletisaik777 0:d6e3d1e21484 526 {
cholletisaik777 1:f926f14a52d8 527 sc.printf("REPORT STATUS OF TC LIST\r\r\n"); //tm is ack_l1
cholletisaik777 0:d6e3d1e21484 528 telemetry_type2[0]=tmid1_spr_tm;
cholletisaik777 0:d6e3d1e21484 529 telemetry_type2[1]=tc_exec_tm;
cholletisaik777 0:d6e3d1e21484 530 telemetry_type2[2]=tc_service_typeatus_tm;
cholletisaik777 0:d6e3d1e21484 531 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 532 telemetry_type2[i]=pac_seq_cnt_of_tc_tm[i-3];
cholletisaik777 0:d6e3d1e21484 533 }
cholletisaik777 0:d6e3d1e21484 534 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 535 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 536 }
cholletisaik777 0:d6e3d1e21484 537 break;
cholletisaik777 0:d6e3d1e21484 538 }
cholletisaik777 0:d6e3d1e21484 539 case 15:
cholletisaik777 0:d6e3d1e21484 540 {
cholletisaik777 1:f926f14a52d8 541 sc.printf("REPORT STATUS OF LAST UNEXECUTED TC\r\r\n"); //tm is ack_l234
cholletisaik777 0:d6e3d1e21484 542 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 543 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 544 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 545 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 546 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 547 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 548 }
cholletisaik777 0:d6e3d1e21484 549 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 550 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 551 }
cholletisaik777 0:d6e3d1e21484 552 break;
cholletisaik777 0:d6e3d1e21484 553 }
cholletisaik777 0:d6e3d1e21484 554 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 555 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 556 break;}
cholletisaik777 0:d6e3d1e21484 557 }
cholletisaik777 0:d6e3d1e21484 558 break;
cholletisaik777 0:d6e3d1e21484 559 }
cholletisaik777 0:d6e3d1e21484 560 case 13:
cholletisaik777 0:d6e3d1e21484 561 {
cholletisaik777 1:f926f14a52d8 562 sc.printf("LARGE DATA TRANSFER\r\r\n"); //tm is ack_l234
cholletisaik777 0:d6e3d1e21484 563 telemetry_type2[0]=tmid2_spr_tm;
cholletisaik777 0:d6e3d1e21484 564 telemetry_type2[1]=tc_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 565 telemetry_type2[2]=tm_pac_seq_cnt_tm;
cholletisaik777 0:d6e3d1e21484 566 telemetry_type2[3]=ackcode_tm;
cholletisaik777 0:d6e3d1e21484 567 for(int i=3;i<11;i++){
cholletisaik777 0:d6e3d1e21484 568 telemetry_type2[i]=0x00;
cholletisaik777 0:d6e3d1e21484 569 }
cholletisaik777 0:d6e3d1e21484 570 for(int i=11;i<13;i++){
cholletisaik777 0:d6e3d1e21484 571 telemetry_type2[i]=crc_tm[i-11];
cholletisaik777 0:d6e3d1e21484 572 }
cholletisaik777 0:d6e3d1e21484 573 break;
cholletisaik777 0:d6e3d1e21484 574 }
cholletisaik777 0:d6e3d1e21484 575 case 15:
cholletisaik777 0:d6e3d1e21484 576 {
cholletisaik777 1:f926f14a52d8 577 sc.printf("ONBOARD STORAGE AND RETRIEVAL SERVICE\r\r\n");
cholletisaik777 0:d6e3d1e21484 578 switch(sub_service_type){
cholletisaik777 0:d6e3d1e21484 579 case 0:
cholletisaik777 0:d6e3d1e21484 580 {
cholletisaik777 1:f926f14a52d8 581 sc.printf("SCF\r\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 582 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 583 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 584 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 585 }
cholletisaik777 0:d6e3d1e21484 586 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 587 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 588 }
cholletisaik777 0:d6e3d1e21484 589 break;
cholletisaik777 0:d6e3d1e21484 590 }
cholletisaik777 0:d6e3d1e21484 591 case 1:
cholletisaik777 0:d6e3d1e21484 592 {
cholletisaik777 1:f926f14a52d8 593 sc.printf("SFF-AT\r\r\n");
cholletisaik777 0:d6e3d1e21484 594 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm; //tm is obsrs
cholletisaik777 0:d6e3d1e21484 595 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 596 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 597 }
cholletisaik777 0:d6e3d1e21484 598 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 599 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 600 }
cholletisaik777 0:d6e3d1e21484 601 break;
cholletisaik777 0:d6e3d1e21484 602 }
cholletisaik777 0:d6e3d1e21484 603 case 2:
cholletisaik777 0:d6e3d1e21484 604 {
cholletisaik777 1:f926f14a52d8 605 sc.printf("SFF-BT\r\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 606 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 607 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 608 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 609 }
cholletisaik777 0:d6e3d1e21484 610 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 611 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 612 }
cholletisaik777 0:d6e3d1e21484 613 break;
cholletisaik777 0:d6e3d1e21484 614 }
cholletisaik777 0:d6e3d1e21484 615 case 3:
cholletisaik777 0:d6e3d1e21484 616 {
cholletisaik777 1:f926f14a52d8 617 sc.printf("LOG\r\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 618 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 619 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 620 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 621 }
cholletisaik777 0:d6e3d1e21484 622 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 623 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 624 }
cholletisaik777 0:d6e3d1e21484 625 break;
cholletisaik777 0:d6e3d1e21484 626 }
cholletisaik777 0:d6e3d1e21484 627 case 4:
cholletisaik777 0:d6e3d1e21484 628 {
cholletisaik777 1:f926f14a52d8 629 sc.printf("HK_ARCHIVE\r\r\n"); //tm is obsrs
cholletisaik777 0:d6e3d1e21484 630 telemetry_type1[0]=frmseqcnt_fileheadpointer_tm;
cholletisaik777 0:d6e3d1e21484 631 for(int i=1;i<128;i++){
cholletisaik777 0:d6e3d1e21484 632 telemetry_type1[i]=multi_obsrs_tm_packets[i-1];
cholletisaik777 0:d6e3d1e21484 633 }
cholletisaik777 0:d6e3d1e21484 634 for(int i=128;i<130;i++){
cholletisaik777 0:d6e3d1e21484 635 telemetry_type1[i]=crc_tm[i-128];
cholletisaik777 0:d6e3d1e21484 636 }
cholletisaik777 0:d6e3d1e21484 637 break;
cholletisaik777 0:d6e3d1e21484 638 }
cholletisaik777 0:d6e3d1e21484 639 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 640 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 641 break;
cholletisaik777 0:d6e3d1e21484 642 }
cholletisaik777 0:d6e3d1e21484 643 }
cholletisaik777 0:d6e3d1e21484 644 break;
cholletisaik777 0:d6e3d1e21484 645 }
cholletisaik777 0:d6e3d1e21484 646 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 647 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 648 break;
cholletisaik777 0:d6e3d1e21484 649 }
cholletisaik777 0:d6e3d1e21484 650 }
cholletisaik777 0:d6e3d1e21484 651 break;
cholletisaik777 0:d6e3d1e21484 652 }
cholletisaik777 0:d6e3d1e21484 653 default:{sc.printf("INVALID TC");
cholletisaik777 0:d6e3d1e21484 654 //send invalid TC TM
cholletisaik777 0:d6e3d1e21484 655 break;
cholletisaik777 0:d6e3d1e21484 656 }
cholletisaik777 0:d6e3d1e21484 657 }
cholletisaik777 0:d6e3d1e21484 658
cholletisaik777 0:d6e3d1e21484 659 }