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