![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TC_skeleton(CDMS)
Fork of TC_skeleton by
main.cpp@0:3ad73d285b54, 2015-05-21 (annotated)
- Committer:
- cholletisaik777
- Date:
- Thu May 21 07:11:42 2015 +0000
- Revision:
- 0:3ad73d285b54
TC_skeleton(CDMS)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cholletisaik777 | 0:3ad73d285b54 | 1 | /*all variables used---------------- |
cholletisaik777 | 0:3ad73d285b54 | 2 | In one Frame sequence - Flag -> Packet -> CRC |
cholletisaik777 | 0:3ad73d285b54 | 3 | flag |
cholletisaik777 | 0:3ad73d285b54 | 4 | {0x7E(8)} |
cholletisaik777 | 0:3ad73d285b54 | 5 | Packet - either Short or Long |
cholletisaik777 | 0:3ad73d285b54 | 6 | { |
cholletisaik777 | 0:3ad73d285b54 | 7 | psc-Packet Sequence Count(8) |
cholletisaik777 | 0:3ad73d285b54 | 8 | apid-Application Id(2) |
cholletisaik777 | 0:3ad73d285b54 | 9 | lfb-Last Frame Bit(1) |
cholletisaik777 | 0:3ad73d285b54 | 10 | los-Long or Short(1) |
cholletisaik777 | 0:3ad73d285b54 | 11 | aon-Abort on Nack(1) |
cholletisaik777 | 0:3ad73d285b54 | 12 | spr-Spare(2) |
cholletisaik777 | 0:3ad73d285b54 | 13 | ack-Acknoledge(1) |
cholletisaik777 | 0:3ad73d285b54 | 14 | st-Service type(4) |
cholletisaik777 | 0:3ad73d285b54 | 15 | sst-Service Sub Type(4) |
cholletisaik777 | 0:3ad73d285b54 | 16 | appdata-Application Data(48 or 1040) |
cholletisaik777 | 0:3ad73d285b54 | 17 | } |
cholletisaik777 | 0:3ad73d285b54 | 18 | crc-Frame Check Sequence(16) |
cholletisaik777 | 0:3ad73d285b54 | 19 | |
cholletisaik777 | 0:3ad73d285b54 | 20 | There are totally 12 bytes for short frame |
cholletisaik777 | 0:3ad73d285b54 | 21 | and 136 for long frame |
cholletisaik777 | 0:3ad73d285b54 | 22 | Short frame-12 |
cholletisaik777 | 0:3ad73d285b54 | 23 | { |
cholletisaik777 | 0:3ad73d285b54 | 24 | bytes-names |
cholletisaik777 | 0:3ad73d285b54 | 25 | 1-Flag |
cholletisaik777 | 0:3ad73d285b54 | 26 | 1-PSC |
cholletisaik777 | 0:3ad73d285b54 | 27 | 1-APID(2)+LFB(1)+LoS(1)+AoN(1)+Spr(2)+Ack(1) |
cholletisaik777 | 0:3ad73d285b54 | 28 | 1-ST(4)+SST(4) |
cholletisaik777 | 0:3ad73d285b54 | 29 | 6-Appdata |
cholletisaik777 | 0:3ad73d285b54 | 30 | 2-CRC |
cholletisaik777 | 0:3ad73d285b54 | 31 | } |
cholletisaik777 | 0:3ad73d285b54 | 32 | Long frame-136 |
cholletisaik777 | 0:3ad73d285b54 | 33 | { |
cholletisaik777 | 0:3ad73d285b54 | 34 | bytes-names |
cholletisaik777 | 0:3ad73d285b54 | 35 | 1-Flag |
cholletisaik777 | 0:3ad73d285b54 | 36 | 1-PSC |
cholletisaik777 | 0:3ad73d285b54 | 37 | 1-APID(2)+LFB(1)+LoS(1)+AoN(1)+Spr(2)+Ack(1) |
cholletisaik777 | 0:3ad73d285b54 | 38 | 1-ST(4)+SST(4) |
cholletisaik777 | 0:3ad73d285b54 | 39 | 130-Appdata |
cholletisaik777 | 0:3ad73d285b54 | 40 | 2-CRC |
cholletisaik777 | 0:3ad73d285b54 | 41 | } |
cholletisaik777 | 0:3ad73d285b54 | 42 | |
cholletisaik777 | 0:3ad73d285b54 | 43 | pid-process id |
cholletisaik777 | 0:3ad73d285b54 | 44 | sst-state id |
cholletisaik777 | 0:3ad73d285b54 | 45 | ------------------------------------*/ |
cholletisaik777 | 0:3ad73d285b54 | 46 | #include "mbed.h" |
cholletisaik777 | 0:3ad73d285b54 | 47 | |
cholletisaik777 | 0:3ad73d285b54 | 48 | Serial pc(USBTX,USBRX); |
cholletisaik777 | 0:3ad73d285b54 | 49 | |
cholletisaik777 | 0:3ad73d285b54 | 50 | uint8_t tmp2[13],tmp1[130]; |
cholletisaik777 | 0:3ad73d285b54 | 51 | uint8_t lmb_tm[128],crc_tm[2]; |
cholletisaik777 | 0:3ad73d285b54 | 52 | uint8_t fsc_fhp_tm,motp_tm[127]; |
cholletisaik777 | 0:3ad73d285b54 | 53 | uint8_t tclp1_tm[9],tclp2_tm[9]; |
cholletisaik777 | 0:3ad73d285b54 | 54 | uint8_t crc1_tm[2],crc2_tm[2]; |
cholletisaik777 | 0:3ad73d285b54 | 55 | uint8_t tmid1_spr_tm=0xA0,tc_ec_tm,tc_stat_tm,psc_tc_tm[8]; |
cholletisaik777 | 0:3ad73d285b54 | 56 | uint8_t tmid2_spr_tm=0xB0,tc_psc_tm,tm_psc_tm,ackcode_tm; |
cholletisaik777 | 0:3ad73d285b54 | 57 | uint8_t tmid3_spr_tm=0xC0,smb_tm[7]; |
cholletisaik777 | 0:3ad73d285b54 | 58 | uint8_t tmid4_spr_tm=0xD0,fms[8]; |
cholletisaik777 | 0:3ad73d285b54 | 59 | |
cholletisaik777 | 0:3ad73d285b54 | 60 | int main() |
cholletisaik777 | 0:3ad73d285b54 | 61 | { |
cholletisaik777 | 0:3ad73d285b54 | 62 | uint8_t apid_size,psc,apid,los,st,sst; //All variable used |
cholletisaik777 | 0:3ad73d285b54 | 63 | pc.scanf("%x",&psc); |
cholletisaik777 | 0:3ad73d285b54 | 64 | pc.scanf("%x",&apid_size); //Data[0] contains APID,LFB,LoS,AoN,Spr and Ack |
cholletisaik777 | 0:3ad73d285b54 | 65 | apid=(apid_size&0xC0)>>6; |
cholletisaik777 | 0:3ad73d285b54 | 66 | los=(apid_size&0x10)>>4; |
cholletisaik777 | 0:3ad73d285b54 | 67 | switch(apid) |
cholletisaik777 | 0:3ad73d285b54 | 68 | { |
cholletisaik777 | 0:3ad73d285b54 | 69 | case 1: |
cholletisaik777 | 0:3ad73d285b54 | 70 | { |
cholletisaik777 | 0:3ad73d285b54 | 71 | printf("BAE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 72 | uint8_t p_i2c_bae[los*124+11]; |
cholletisaik777 | 0:3ad73d285b54 | 73 | p_i2c_bae[0]=psc; |
cholletisaik777 | 0:3ad73d285b54 | 74 | p_i2c_bae[1]=apid_size; |
cholletisaik777 | 0:3ad73d285b54 | 75 | pc.scanf("%x",&p_i2c_bae[2]); |
cholletisaik777 | 0:3ad73d285b54 | 76 | for(int i=3;i<(los*124+11);i++){ |
cholletisaik777 | 0:3ad73d285b54 | 77 | pc.scanf("%x",&p_i2c_bae[i]); |
cholletisaik777 | 0:3ad73d285b54 | 78 | } |
cholletisaik777 | 0:3ad73d285b54 | 79 | printf("inform BAE about TC using I2C\n"); |
cholletisaik777 | 0:3ad73d285b54 | 80 | printf("send the packet + CRC to the BAE after receving i2c signal from BAE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 81 | break; |
cholletisaik777 | 0:3ad73d285b54 | 82 | } |
cholletisaik777 | 0:3ad73d285b54 | 83 | case 3: |
cholletisaik777 | 0:3ad73d285b54 | 84 | { |
cholletisaik777 | 0:3ad73d285b54 | 85 | printf("SPEED\n"); |
cholletisaik777 | 0:3ad73d285b54 | 86 | uint8_t p_i2c_speed[los*124+11]; |
cholletisaik777 | 0:3ad73d285b54 | 87 | p_i2c_speed[0]=psc; |
cholletisaik777 | 0:3ad73d285b54 | 88 | p_i2c_speed[1]=apid_size; |
cholletisaik777 | 0:3ad73d285b54 | 89 | pc.scanf("%x",&p_i2c_speed[2]); //services contains ST and SST |
cholletisaik777 | 0:3ad73d285b54 | 90 | for(int i=3;i<(los*124+11);i++){ |
cholletisaik777 | 0:3ad73d285b54 | 91 | pc.scanf("%x",&p_i2c_speed[i]); |
cholletisaik777 | 0:3ad73d285b54 | 92 | } |
cholletisaik777 | 0:3ad73d285b54 | 93 | printf("inform PL about TC using I2C\n"); |
cholletisaik777 | 0:3ad73d285b54 | 94 | printf("send the packet + CRC to the PL after receving i2c signal from PL\n"); |
cholletisaik777 | 0:3ad73d285b54 | 95 | break; |
cholletisaik777 | 0:3ad73d285b54 | 96 | } |
cholletisaik777 | 0:3ad73d285b54 | 97 | case 2: |
cholletisaik777 | 0:3ad73d285b54 | 98 | { |
cholletisaik777 | 0:3ad73d285b54 | 99 | printf("CDMS\n"); |
cholletisaik777 | 0:3ad73d285b54 | 100 | uint8_t services,appdata[los*124+6],crc[2]; |
cholletisaik777 | 0:3ad73d285b54 | 101 | pc.scanf("%x",&services); //services contains ST and SST |
cholletisaik777 | 0:3ad73d285b54 | 102 | for(int i=3;i<(los*124+6);i++){ |
cholletisaik777 | 0:3ad73d285b54 | 103 | pc.scanf("%x",&appdata[i]); |
cholletisaik777 | 0:3ad73d285b54 | 104 | } |
cholletisaik777 | 0:3ad73d285b54 | 105 | pc.scanf("%x",&crc[0]); |
cholletisaik777 | 0:3ad73d285b54 | 106 | pc.scanf("%x",&crc[1]); |
cholletisaik777 | 0:3ad73d285b54 | 107 | st=(services&0xF0)>>4; |
cholletisaik777 | 0:3ad73d285b54 | 108 | sst=(services&0x0F); |
cholletisaik777 | 0:3ad73d285b54 | 109 | switch(st){ |
cholletisaik777 | 0:3ad73d285b54 | 110 | case 6: |
cholletisaik777 | 0:3ad73d285b54 | 111 | { |
cholletisaik777 | 0:3ad73d285b54 | 112 | printf("memory management system\n"); |
cholletisaik777 | 0:3ad73d285b54 | 113 | switch(sst){ |
cholletisaik777 | 0:3ad73d285b54 | 114 | case 1: |
cholletisaik777 | 0:3ad73d285b54 | 115 | { |
cholletisaik777 | 0:3ad73d285b54 | 116 | printf("READ FROM MEMORY\n"); |
cholletisaik777 | 0:3ad73d285b54 | 117 | if(appdata[0]==2){ //appdata[0] is pid |
cholletisaik777 | 0:3ad73d285b54 | 118 | printf("RD_L_FLASH1\n"); |
cholletisaik777 | 0:3ad73d285b54 | 119 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 120 | tmp1[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 121 | } |
cholletisaik777 | 0:3ad73d285b54 | 122 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 123 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 124 | } |
cholletisaik777 | 0:3ad73d285b54 | 125 | } |
cholletisaik777 | 0:3ad73d285b54 | 126 | else if ((appdata[0]&0xF0)==0x10){ |
cholletisaik777 | 0:3ad73d285b54 | 127 | printf("RD_L_FLASH2\n"); |
cholletisaik777 | 0:3ad73d285b54 | 128 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 129 | tmp1[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 130 | } |
cholletisaik777 | 0:3ad73d285b54 | 131 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 132 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 133 | } |
cholletisaik777 | 0:3ad73d285b54 | 134 | } |
cholletisaik777 | 0:3ad73d285b54 | 135 | else if (appdata[0]==0x22){ |
cholletisaik777 | 0:3ad73d285b54 | 136 | printf("RD_S_FLASH1\n"); |
cholletisaik777 | 0:3ad73d285b54 | 137 | tmp2[0]=tmid3_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 138 | tmp2[1]=tc_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 139 | tmp2[2]=tm_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 140 | for(int i=4;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 141 | tmp2[i]=smb_tm[i-4]; |
cholletisaik777 | 0:3ad73d285b54 | 142 | } |
cholletisaik777 | 0:3ad73d285b54 | 143 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 144 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 145 | } |
cholletisaik777 | 0:3ad73d285b54 | 146 | } |
cholletisaik777 | 0:3ad73d285b54 | 147 | else if ((appdata[0]&0xF0)==0x30){ |
cholletisaik777 | 0:3ad73d285b54 | 148 | printf("RD_S_FLASH2\n"); |
cholletisaik777 | 0:3ad73d285b54 | 149 | tmp2[0]=tmid3_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 150 | tmp2[1]=tc_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 151 | tmp2[2]=tm_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 152 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 153 | tmp2[i]=smb_tm[i-3]; |
cholletisaik777 | 0:3ad73d285b54 | 154 | } |
cholletisaik777 | 0:3ad73d285b54 | 155 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 156 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 157 | } |
cholletisaik777 | 0:3ad73d285b54 | 158 | } |
cholletisaik777 | 0:3ad73d285b54 | 159 | else if (appdata[0]==0x42){ |
cholletisaik777 | 0:3ad73d285b54 | 160 | printf("RD_L_RAM1\n"); |
cholletisaik777 | 0:3ad73d285b54 | 161 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 162 | tmp1[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 163 | } |
cholletisaik777 | 0:3ad73d285b54 | 164 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 165 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 166 | } |
cholletisaik777 | 0:3ad73d285b54 | 167 | } |
cholletisaik777 | 0:3ad73d285b54 | 168 | else if ((appdata[0]&0xF0)==0x50){ |
cholletisaik777 | 0:3ad73d285b54 | 169 | printf("RD_L_RAM2\n"); |
cholletisaik777 | 0:3ad73d285b54 | 170 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 171 | tmp1[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 172 | } |
cholletisaik777 | 0:3ad73d285b54 | 173 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 174 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 175 | } |
cholletisaik777 | 0:3ad73d285b54 | 176 | } |
cholletisaik777 | 0:3ad73d285b54 | 177 | else if (appdata[0]==0x62){ |
cholletisaik777 | 0:3ad73d285b54 | 178 | printf("RD_S_RAM\n"); |
cholletisaik777 | 0:3ad73d285b54 | 179 | tmp2[0]=tmid3_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 180 | tmp2[1]=tc_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 181 | tmp2[2]=tm_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 182 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 183 | tmp2[i]=smb_tm[i-3]; |
cholletisaik777 | 0:3ad73d285b54 | 184 | } |
cholletisaik777 | 0:3ad73d285b54 | 185 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 186 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 187 | } |
cholletisaik777 | 0:3ad73d285b54 | 188 | } |
cholletisaik777 | 0:3ad73d285b54 | 189 | else if ((appdata[0]&0xF0)==0x70){ |
cholletisaik777 | 0:3ad73d285b54 | 190 | printf("RD_S_RAM2\n"); |
cholletisaik777 | 0:3ad73d285b54 | 191 | tmp2[0]=tmid3_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 192 | tmp2[1]=tc_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 193 | tmp2[2]=tm_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 194 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 195 | tmp2[i]=smb_tm[i-3]; |
cholletisaik777 | 0:3ad73d285b54 | 196 | } |
cholletisaik777 | 0:3ad73d285b54 | 197 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 198 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 199 | } |
cholletisaik777 | 0:3ad73d285b54 | 200 | } |
cholletisaik777 | 0:3ad73d285b54 | 201 | break; |
cholletisaik777 | 0:3ad73d285b54 | 202 | } |
cholletisaik777 | 0:3ad73d285b54 | 203 | case 5: |
cholletisaik777 | 0:3ad73d285b54 | 204 | { |
cholletisaik777 | 0:3ad73d285b54 | 205 | printf("WRITE ON MEMORY\n"); |
cholletisaik777 | 0:3ad73d285b54 | 206 | switch(appdata[0]){ |
cholletisaik777 | 0:3ad73d285b54 | 207 | case 0:printf("WR_S_FLASH\n"); |
cholletisaik777 | 0:3ad73d285b54 | 208 | break; |
cholletisaik777 | 0:3ad73d285b54 | 209 | case 1:printf("WR_S_RAM\n"); |
cholletisaik777 | 0:3ad73d285b54 | 210 | break; |
cholletisaik777 | 0:3ad73d285b54 | 211 | case 16:printf("WR_L_FLASH\n"); |
cholletisaik777 | 0:3ad73d285b54 | 212 | break; |
cholletisaik777 | 0:3ad73d285b54 | 213 | case 17:printf("WR_L_RAM\n"); |
cholletisaik777 | 0:3ad73d285b54 | 214 | break; |
cholletisaik777 | 0:3ad73d285b54 | 215 | } |
cholletisaik777 | 0:3ad73d285b54 | 216 | break; |
cholletisaik777 | 0:3ad73d285b54 | 217 | } |
cholletisaik777 | 0:3ad73d285b54 | 218 | case 6: |
cholletisaik777 | 0:3ad73d285b54 | 219 | { |
cholletisaik777 | 0:3ad73d285b54 | 220 | printf("WRITE FROM ONE MEMORY TO ANOTHER\n"); |
cholletisaik777 | 0:3ad73d285b54 | 221 | switch(appdata[0]){ |
cholletisaik777 | 0:3ad73d285b54 | 222 | case 0:printf("WR_S_FLASH\n"); |
cholletisaik777 | 0:3ad73d285b54 | 223 | break; |
cholletisaik777 | 0:3ad73d285b54 | 224 | case 1:printf("WR_S_RAM\n"); |
cholletisaik777 | 0:3ad73d285b54 | 225 | break; |
cholletisaik777 | 0:3ad73d285b54 | 226 | case 16:printf("WR_L_FLASH\n"); |
cholletisaik777 | 0:3ad73d285b54 | 227 | break; |
cholletisaik777 | 0:3ad73d285b54 | 228 | case 17:printf("WR_L_RAM\n"); |
cholletisaik777 | 0:3ad73d285b54 | 229 | break; |
cholletisaik777 | 0:3ad73d285b54 | 230 | } |
cholletisaik777 | 0:3ad73d285b54 | 231 | break; |
cholletisaik777 | 0:3ad73d285b54 | 232 | } |
cholletisaik777 | 0:3ad73d285b54 | 233 | case 9: |
cholletisaik777 | 0:3ad73d285b54 | 234 | { |
cholletisaik777 | 0:3ad73d285b54 | 235 | printf("SEND CRC OF FLASH MEMORY\n"); |
cholletisaik777 | 0:3ad73d285b54 | 236 | if(appdata[0]==2){ |
cholletisaik777 | 0:3ad73d285b54 | 237 | printf("GET_FLASH_CRC\n"); |
cholletisaik777 | 0:3ad73d285b54 | 238 | for(int i=0;i<2;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 239 | tmp1[i]=crc1_tm[i]; |
cholletisaik777 | 0:3ad73d285b54 | 240 | } |
cholletisaik777 | 0:3ad73d285b54 | 241 | for(int i=2;i<4;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 242 | tmp1[i]=crc2_tm[i-2]; |
cholletisaik777 | 0:3ad73d285b54 | 243 | } |
cholletisaik777 | 0:3ad73d285b54 | 244 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 245 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 246 | } |
cholletisaik777 | 0:3ad73d285b54 | 247 | } |
cholletisaik777 | 0:3ad73d285b54 | 248 | break; |
cholletisaik777 | 0:3ad73d285b54 | 249 | } |
cholletisaik777 | 0:3ad73d285b54 | 250 | } |
cholletisaik777 | 0:3ad73d285b54 | 251 | break; |
cholletisaik777 | 0:3ad73d285b54 | 252 | } |
cholletisaik777 | 0:3ad73d285b54 | 253 | case 8: |
cholletisaik777 | 0:3ad73d285b54 | 254 | { |
cholletisaik777 | 0:3ad73d285b54 | 255 | printf("FUNCTION MANAGEMENT SERVICE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 256 | if(sst==1){ |
cholletisaik777 | 0:3ad73d285b54 | 257 | if((appdata[0]&0xF0)==0x00){ |
cholletisaik777 | 0:3ad73d285b54 | 258 | printf("RUN_PRCS\n"); |
cholletisaik777 | 0:3ad73d285b54 | 259 | switch(appdata[0]){ |
cholletisaik777 | 0:3ad73d285b54 | 260 | case 1:printf("P_PL_INIT\n"); |
cholletisaik777 | 0:3ad73d285b54 | 261 | break; |
cholletisaik777 | 0:3ad73d285b54 | 262 | case 2:printf("P_PL_MNGR\n"); |
cholletisaik777 | 0:3ad73d285b54 | 263 | break; |
cholletisaik777 | 0:3ad73d285b54 | 264 | case 3:printf("P_COM_INIT\n"); |
cholletisaik777 | 0:3ad73d285b54 | 265 | break; |
cholletisaik777 | 0:3ad73d285b54 | 266 | case 4:printf("P_CDMS_HK_MNGR\n"); |
cholletisaik777 | 0:3ad73d285b54 | 267 | break; |
cholletisaik777 | 0:3ad73d285b54 | 268 | } |
cholletisaik777 | 0:3ad73d285b54 | 269 | } |
cholletisaik777 | 0:3ad73d285b54 | 270 | else if((appdata[0]&0xF0)==0x10){ |
cholletisaik777 | 0:3ad73d285b54 | 271 | printf("PWR_SWCH\n"); |
cholletisaik777 | 0:3ad73d285b54 | 272 | } |
cholletisaik777 | 0:3ad73d285b54 | 273 | else if((appdata[0]&0xF0)==0x20){ |
cholletisaik777 | 0:3ad73d285b54 | 274 | printf("PWR_RST\n"); |
cholletisaik777 | 0:3ad73d285b54 | 275 | } |
cholletisaik777 | 0:3ad73d285b54 | 276 | else if((appdata[0]&0xF0)==0xE0){ |
cholletisaik777 | 0:3ad73d285b54 | 277 | printf("RD_RTC\n"); |
cholletisaik777 | 0:3ad73d285b54 | 278 | tmp2[0]=tmid4_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 279 | tmp2[1]=tc_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 280 | tmp2[2]=tm_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 281 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 282 | tmp2[i]=fms[i-3]; |
cholletisaik777 | 0:3ad73d285b54 | 283 | } |
cholletisaik777 | 0:3ad73d285b54 | 284 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 285 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 286 | } |
cholletisaik777 | 0:3ad73d285b54 | 287 | } |
cholletisaik777 | 0:3ad73d285b54 | 288 | else if((appdata[0]&0xF0)==0xF0){ |
cholletisaik777 | 0:3ad73d285b54 | 289 | printf("SD_MNGR\n"); |
cholletisaik777 | 0:3ad73d285b54 | 290 | tmp2[0]=tmid4_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 291 | tmp2[1]=tc_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 292 | tmp2[2]=tm_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 293 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 294 | tmp2[i]=fms[i-3]; |
cholletisaik777 | 0:3ad73d285b54 | 295 | } |
cholletisaik777 | 0:3ad73d285b54 | 296 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 297 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 298 | } |
cholletisaik777 | 0:3ad73d285b54 | 299 | } |
cholletisaik777 | 0:3ad73d285b54 | 300 | } |
cholletisaik777 | 0:3ad73d285b54 | 301 | break; |
cholletisaik777 | 0:3ad73d285b54 | 302 | } |
cholletisaik777 | 0:3ad73d285b54 | 303 | case 7: |
cholletisaik777 | 0:3ad73d285b54 | 304 | { |
cholletisaik777 | 0:3ad73d285b54 | 305 | printf("PAYLOAD MANAGEMENT SERVICE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 306 | switch(sst){ |
cholletisaik777 | 0:3ad73d285b54 | 307 | case 1:printf("INSERT PL SCHEDULE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 308 | break; |
cholletisaik777 | 0:3ad73d285b54 | 309 | case 2:printf("DELETE PL SCHEDULE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 310 | break; |
cholletisaik777 | 0:3ad73d285b54 | 311 | } |
cholletisaik777 | 0:3ad73d285b54 | 312 | break; |
cholletisaik777 | 0:3ad73d285b54 | 313 | } |
cholletisaik777 | 0:3ad73d285b54 | 314 | case 11: |
cholletisaik777 | 0:3ad73d285b54 | 315 | { |
cholletisaik777 | 0:3ad73d285b54 | 316 | printf("ONBOARD OPERATIONS SCHEDULING SERVICE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 317 | switch(sst){ |
cholletisaik777 | 0:3ad73d285b54 | 318 | case 1: |
cholletisaik777 | 0:3ad73d285b54 | 319 | { |
cholletisaik777 | 0:3ad73d285b54 | 320 | printf("DISABLE RELEASE OF TCs\n"); |
cholletisaik777 | 0:3ad73d285b54 | 321 | tmp2[0]=tmid1_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 322 | tmp2[1]=tc_ec_tm; |
cholletisaik777 | 0:3ad73d285b54 | 323 | tmp2[2]=tc_stat_tm; |
cholletisaik777 | 0:3ad73d285b54 | 324 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 325 | tmp2[i]=psc_tc_tm[i-3]; |
cholletisaik777 | 0:3ad73d285b54 | 326 | } |
cholletisaik777 | 0:3ad73d285b54 | 327 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 328 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 329 | } |
cholletisaik777 | 0:3ad73d285b54 | 330 | break; |
cholletisaik777 | 0:3ad73d285b54 | 331 | } |
cholletisaik777 | 0:3ad73d285b54 | 332 | case 2: |
cholletisaik777 | 0:3ad73d285b54 | 333 | { |
cholletisaik777 | 0:3ad73d285b54 | 334 | printf("ENABLE RELEASE OF TCs\n"); |
cholletisaik777 | 0:3ad73d285b54 | 335 | break; |
cholletisaik777 | 0:3ad73d285b54 | 336 | } |
cholletisaik777 | 0:3ad73d285b54 | 337 | case 5: |
cholletisaik777 | 0:3ad73d285b54 | 338 | { |
cholletisaik777 | 0:3ad73d285b54 | 339 | printf("DELETE TELECOMMANDS\n"); |
cholletisaik777 | 0:3ad73d285b54 | 340 | break; |
cholletisaik777 | 0:3ad73d285b54 | 341 | } |
cholletisaik777 | 0:3ad73d285b54 | 342 | case 6: |
cholletisaik777 | 0:3ad73d285b54 | 343 | { |
cholletisaik777 | 0:3ad73d285b54 | 344 | printf("REPORT TC LIST IN DETAILED FORM\n"); |
cholletisaik777 | 0:3ad73d285b54 | 345 | for(int i=0;i<9;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 346 | tmp1[i]=tclp1_tm[i]; |
cholletisaik777 | 0:3ad73d285b54 | 347 | } |
cholletisaik777 | 0:3ad73d285b54 | 348 | for(int i=9;i<18;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 349 | tmp1[i]=tclp2_tm[i-9]; |
cholletisaik777 | 0:3ad73d285b54 | 350 | } |
cholletisaik777 | 0:3ad73d285b54 | 351 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 352 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 353 | } |
cholletisaik777 | 0:3ad73d285b54 | 354 | break; |
cholletisaik777 | 0:3ad73d285b54 | 355 | } |
cholletisaik777 | 0:3ad73d285b54 | 356 | case 8: |
cholletisaik777 | 0:3ad73d285b54 | 357 | { |
cholletisaik777 | 0:3ad73d285b54 | 358 | printf("REPORT STATUS OF TC LIST\n"); |
cholletisaik777 | 0:3ad73d285b54 | 359 | tmp2[0]=tmid1_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 360 | tmp2[1]=tc_ec_tm; |
cholletisaik777 | 0:3ad73d285b54 | 361 | tmp2[2]=tc_stat_tm; |
cholletisaik777 | 0:3ad73d285b54 | 362 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 363 | tmp2[i]=psc_tc_tm[i-3]; |
cholletisaik777 | 0:3ad73d285b54 | 364 | } |
cholletisaik777 | 0:3ad73d285b54 | 365 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 366 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 367 | } |
cholletisaik777 | 0:3ad73d285b54 | 368 | break; |
cholletisaik777 | 0:3ad73d285b54 | 369 | } |
cholletisaik777 | 0:3ad73d285b54 | 370 | case 15: |
cholletisaik777 | 0:3ad73d285b54 | 371 | { |
cholletisaik777 | 0:3ad73d285b54 | 372 | printf("REPORT STATUS OF LAST UNEXECUTED TC\n"); |
cholletisaik777 | 0:3ad73d285b54 | 373 | tmp2[0]=tmid2_spr_tm; |
cholletisaik777 | 0:3ad73d285b54 | 374 | tmp2[1]=tc_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 375 | tmp2[2]=tm_psc_tm; |
cholletisaik777 | 0:3ad73d285b54 | 376 | tmp2[3]=ackcode_tm; |
cholletisaik777 | 0:3ad73d285b54 | 377 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 378 | tmp2[i]=0x00; |
cholletisaik777 | 0:3ad73d285b54 | 379 | } |
cholletisaik777 | 0:3ad73d285b54 | 380 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 381 | tmp2[i]=crc_tm[i-11]; |
cholletisaik777 | 0:3ad73d285b54 | 382 | } |
cholletisaik777 | 0:3ad73d285b54 | 383 | break; |
cholletisaik777 | 0:3ad73d285b54 | 384 | } |
cholletisaik777 | 0:3ad73d285b54 | 385 | } |
cholletisaik777 | 0:3ad73d285b54 | 386 | break; |
cholletisaik777 | 0:3ad73d285b54 | 387 | } |
cholletisaik777 | 0:3ad73d285b54 | 388 | case 13: |
cholletisaik777 | 0:3ad73d285b54 | 389 | { |
cholletisaik777 | 0:3ad73d285b54 | 390 | printf("LARGE DATA TRANSFER\n"); |
cholletisaik777 | 0:3ad73d285b54 | 391 | break; |
cholletisaik777 | 0:3ad73d285b54 | 392 | } |
cholletisaik777 | 0:3ad73d285b54 | 393 | case 15: |
cholletisaik777 | 0:3ad73d285b54 | 394 | { |
cholletisaik777 | 0:3ad73d285b54 | 395 | printf("ONBOARD STORAGE AND RETRIEVAL SERVICE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 396 | switch(sst){ |
cholletisaik777 | 0:3ad73d285b54 | 397 | case 0: |
cholletisaik777 | 0:3ad73d285b54 | 398 | { |
cholletisaik777 | 0:3ad73d285b54 | 399 | printf("SCF\n"); |
cholletisaik777 | 0:3ad73d285b54 | 400 | tmp1[0]=fsc_fhp_tm; |
cholletisaik777 | 0:3ad73d285b54 | 401 | for(int i=1;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 402 | tmp1[i]=motp_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 403 | } |
cholletisaik777 | 0:3ad73d285b54 | 404 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 405 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 406 | } |
cholletisaik777 | 0:3ad73d285b54 | 407 | break; |
cholletisaik777 | 0:3ad73d285b54 | 408 | } |
cholletisaik777 | 0:3ad73d285b54 | 409 | case 1: |
cholletisaik777 | 0:3ad73d285b54 | 410 | { |
cholletisaik777 | 0:3ad73d285b54 | 411 | printf("SFF-AT\n"); |
cholletisaik777 | 0:3ad73d285b54 | 412 | tmp1[0]=fsc_fhp_tm; |
cholletisaik777 | 0:3ad73d285b54 | 413 | for(int i=1;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 414 | tmp1[i]=motp_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 415 | } |
cholletisaik777 | 0:3ad73d285b54 | 416 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 417 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 418 | } |
cholletisaik777 | 0:3ad73d285b54 | 419 | break; |
cholletisaik777 | 0:3ad73d285b54 | 420 | } |
cholletisaik777 | 0:3ad73d285b54 | 421 | case 2: |
cholletisaik777 | 0:3ad73d285b54 | 422 | { |
cholletisaik777 | 0:3ad73d285b54 | 423 | printf("SFF-BT\n"); |
cholletisaik777 | 0:3ad73d285b54 | 424 | tmp1[0]=fsc_fhp_tm; |
cholletisaik777 | 0:3ad73d285b54 | 425 | for(int i=1;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 426 | tmp1[i]=motp_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 427 | } |
cholletisaik777 | 0:3ad73d285b54 | 428 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 429 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 430 | } |
cholletisaik777 | 0:3ad73d285b54 | 431 | break; |
cholletisaik777 | 0:3ad73d285b54 | 432 | } |
cholletisaik777 | 0:3ad73d285b54 | 433 | case 3: |
cholletisaik777 | 0:3ad73d285b54 | 434 | { |
cholletisaik777 | 0:3ad73d285b54 | 435 | printf("LOG\n"); |
cholletisaik777 | 0:3ad73d285b54 | 436 | tmp1[0]=fsc_fhp_tm; |
cholletisaik777 | 0:3ad73d285b54 | 437 | for(int i=1;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 438 | tmp1[i]=motp_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 439 | } |
cholletisaik777 | 0:3ad73d285b54 | 440 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 441 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 442 | } |
cholletisaik777 | 0:3ad73d285b54 | 443 | break; |
cholletisaik777 | 0:3ad73d285b54 | 444 | } |
cholletisaik777 | 0:3ad73d285b54 | 445 | case 4: |
cholletisaik777 | 0:3ad73d285b54 | 446 | { |
cholletisaik777 | 0:3ad73d285b54 | 447 | printf("HK_ARCHIVE\n"); |
cholletisaik777 | 0:3ad73d285b54 | 448 | tmp1[0]=fsc_fhp_tm; |
cholletisaik777 | 0:3ad73d285b54 | 449 | for(int i=1;i<128;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 450 | tmp1[i]=motp_tm[i-1]; |
cholletisaik777 | 0:3ad73d285b54 | 451 | } |
cholletisaik777 | 0:3ad73d285b54 | 452 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:3ad73d285b54 | 453 | tmp1[i]=crc_tm[i-128]; |
cholletisaik777 | 0:3ad73d285b54 | 454 | } |
cholletisaik777 | 0:3ad73d285b54 | 455 | break; |
cholletisaik777 | 0:3ad73d285b54 | 456 | } |
cholletisaik777 | 0:3ad73d285b54 | 457 | } |
cholletisaik777 | 0:3ad73d285b54 | 458 | break; |
cholletisaik777 | 0:3ad73d285b54 | 459 | } |
cholletisaik777 | 0:3ad73d285b54 | 460 | } |
cholletisaik777 | 0:3ad73d285b54 | 461 | break; |
cholletisaik777 | 0:3ad73d285b54 | 462 | } |
cholletisaik777 | 0:3ad73d285b54 | 463 | } |
cholletisaik777 | 0:3ad73d285b54 | 464 | |
cholletisaik777 | 0:3ad73d285b54 | 465 | } |