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