![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
bae
Fork of telecommand_bae by
main.cpp@0:b9b1bedf49e5, 2015-05-21 (annotated)
- Committer:
- cholletisaik777
- Date:
- Thu May 21 07:13:10 2015 +0000
- Revision:
- 0:b9b1bedf49e5
bae
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cholletisaik777 | 0:b9b1bedf49e5 | 1 | funtion BAE_RLY_TMTC{ |
cholletisaik777 | 0:b9b1bedf49e5 | 2 | uint8_t los; |
cholletisaik777 | 0:b9b1bedf49e5 | 3 | uint8_t tcp[los*124+11]; |
cholletisaik777 | 0:b9b1bedf49e5 | 4 | st=(tcp[2]&0xF0)>>4; |
cholletisaik777 | 0:b9b1bedf49e5 | 5 | sst=(tcp[2]&0x0F); |
cholletisaik777 | 0:b9b1bedf49e5 | 6 | switch(st){ |
cholletisaik777 | 0:b9b1bedf49e5 | 7 | case 6:printf("memory management system\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 8 | switch(sst){ |
cholletisaik777 | 0:b9b1bedf49e5 | 9 | case 1:printf("READ FROM MEMORY\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 10 | if(tcp[3]==2){ //tcp[3] is pid |
cholletisaik777 | 0:b9b1bedf49e5 | 11 | printf("RD_L_FLASH1\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 12 | uint8_t lmb_tm[128],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 13 | uint8_t tmp[130]; |
cholletisaik777 | 0:b9b1bedf49e5 | 14 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 15 | tmp[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:b9b1bedf49e5 | 16 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 17 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 18 | tmp[i]=crc_tm[i-128]; |
cholletisaik777 | 0:b9b1bedf49e5 | 19 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 20 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 21 | else if ((tcp[3]&0xF0)==0x10){ |
cholletisaik777 | 0:b9b1bedf49e5 | 22 | printf("RD_L_FLASH2\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 23 | uint8_t lmb_tm[128],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 24 | uint8_t tmp[130]; |
cholletisaik777 | 0:b9b1bedf49e5 | 25 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 26 | tmp[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:b9b1bedf49e5 | 27 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 28 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 29 | tmp[i]=crc_tm[i-128]; |
cholletisaik777 | 0:b9b1bedf49e5 | 30 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 31 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 32 | else if (tcp[3]==0x22){ |
cholletisaik777 | 0:b9b1bedf49e5 | 33 | printf("RD_S_FLASH1\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 34 | uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,smb_tm[8],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 35 | uint8_t tmp[13]; |
cholletisaik777 | 0:b9b1bedf49e5 | 36 | tmp[0]=tmid_spr_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 37 | tmp[1]=tc_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 38 | tmp[2]=tm_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 39 | tmp[3]=ackcode_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 40 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 41 | tmp[i]=smb_tm[i-3]; |
cholletisaik777 | 0:b9b1bedf49e5 | 42 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 43 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 44 | tmp[i]=crc_tm[i-11]; |
cholletisaik777 | 0:b9b1bedf49e5 | 45 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 46 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 47 | else if ((tcp[3]&0xF0)==0x30){ |
cholletisaik777 | 0:b9b1bedf49e5 | 48 | printf("RD_S_FLASH2\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 49 | uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,smb_tm[8],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 50 | uint8_t tmp[13]; |
cholletisaik777 | 0:b9b1bedf49e5 | 51 | tmp[0]=tmid_spr_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 52 | tmp[1]=tc_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 53 | tmp[2]=tm_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 54 | tmp[3]=ackcode_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 55 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 56 | tmp[i]=smb_tm[i-3]; |
cholletisaik777 | 0:b9b1bedf49e5 | 57 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 58 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 59 | tmp[i]=crc_tm[i-11]; |
cholletisaik777 | 0:b9b1bedf49e5 | 60 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 61 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 62 | else if (tcp[3]==0x42){ |
cholletisaik777 | 0:b9b1bedf49e5 | 63 | printf("RD_L_RAM1\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 64 | uint8_t lmb_tm[128],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 65 | uint8_t tmp[130]; |
cholletisaik777 | 0:b9b1bedf49e5 | 66 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 67 | tmp[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:b9b1bedf49e5 | 68 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 69 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 70 | tmp[i]=crc_tm[i-128]; |
cholletisaik777 | 0:b9b1bedf49e5 | 71 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 72 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 73 | else if ((tcp[3]&0xF0)==0x50){ |
cholletisaik777 | 0:b9b1bedf49e5 | 74 | printf("RD_L_RAM2\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 75 | uint8_t lmb_tm[128],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 76 | uint8_t tmp[130]; |
cholletisaik777 | 0:b9b1bedf49e5 | 77 | for(int i=0;i<128;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 78 | tmp[i]=lmb_tm[i-1]; |
cholletisaik777 | 0:b9b1bedf49e5 | 79 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 80 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 81 | tmp[i]=crc_tm[i-128]; |
cholletisaik777 | 0:b9b1bedf49e5 | 82 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 83 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 84 | else if (tcp[3]==0x62){ |
cholletisaik777 | 0:b9b1bedf49e5 | 85 | printf("RD_S_RAM\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 86 | uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,smb_tm[8],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 87 | uint8_t tmp[13]; |
cholletisaik777 | 0:b9b1bedf49e5 | 88 | tmp[0]=tmid_spr_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 89 | tmp[1]=tc_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 90 | tmp[2]=tm_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 91 | tmp[3]=ackcode_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 92 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 93 | tmp[i]=smb_tm[i-3]; |
cholletisaik777 | 0:b9b1bedf49e5 | 94 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 95 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 96 | tmp[i]=crc_tm[i-11]; |
cholletisaik777 | 0:b9b1bedf49e5 | 97 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 98 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 99 | else if ((tcp[3]&0xF0)==0x70){ |
cholletisaik777 | 0:b9b1bedf49e5 | 100 | printf("RD_S_RAM2\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 101 | uint8_t tmid_spr_tm=0xC0,tc_psc_tm,tm_psc_tm,smb_tm[8],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 102 | uint8_t tmp[13]; |
cholletisaik777 | 0:b9b1bedf49e5 | 103 | tmp[0]=tmid_spr_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 104 | tmp[1]=tc_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 105 | tmp[2]=tm_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 106 | tmp[3]=ackcode_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 107 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 108 | tmp[i]=smb_tm[i-3]; |
cholletisaik777 | 0:b9b1bedf49e5 | 109 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 110 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 111 | tmp[i]=crc_tm[i-11]; |
cholletisaik777 | 0:b9b1bedf49e5 | 112 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 113 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 114 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 115 | case 5:printf("WRITE ON MEMORY\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 116 | switch(tcp[3]){ |
cholletisaik777 | 0:b9b1bedf49e5 | 117 | case 0:printf("WR_S_FLASH\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 118 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 119 | case 1:printf("WR_S_RAM\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 120 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 121 | case 16:printf("WR_L_FLASH\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 122 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 123 | case 17:printf("WR_L_RAM\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 124 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 125 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 126 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 127 | case 6:printf("WRITE FROM ONE MEMORY TO ANOTHER\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 128 | switch(tcp[3]){ |
cholletisaik777 | 0:b9b1bedf49e5 | 129 | case 0:printf("WR_S_FLASH\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 130 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 131 | case 1:printf("WR_S_RAM\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 132 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 133 | case 16:printf("WR_L_FLASH\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 134 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 135 | case 17:printf("WR_L_RAM\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 136 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 137 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 138 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 139 | case 9:printf("SEND CRC OF FLASH MEMORY\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 140 | if(tcp[3]==2){ |
cholletisaik777 | 0:b9b1bedf49e5 | 141 | printf("GET_FLASH_CRC\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 142 | uint8_t crc1_tm[2],crc2_tm[2],crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 143 | uint8_t tmp[130]; |
cholletisaik777 | 0:b9b1bedf49e5 | 144 | for(int i=0;i<2;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 145 | tmp[i]=crc1_tm[i]; |
cholletisaik777 | 0:b9b1bedf49e5 | 146 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 147 | for(int i=2;i<4;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 148 | tmp[i]=crc2_tm[i-2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 149 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 150 | for(int i=128;i<130;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 151 | tmp[i]=crc_tm[i-128]; |
cholletisaik777 | 0:b9b1bedf49e5 | 152 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 153 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 154 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 155 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 156 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 157 | case 8:printf("FUNCTION MANAGEMENT SERVICE\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 158 | if(sst==1){ |
cholletisaik777 | 0:b9b1bedf49e5 | 159 | if((tcp[3]&0xF0)==0x00){ |
cholletisaik777 | 0:b9b1bedf49e5 | 160 | printf("RUN_PRCS\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 161 | switch(tcp[3]){ |
cholletisaik777 | 0:b9b1bedf49e5 | 162 | case 1:printf("P_EPS_INIT\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 163 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 164 | case 2:printf("P_EPS_MAIN\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 165 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 166 | case 3:printf("P_ACS_INIT\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 167 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 168 | case 4:printf("P_ACS_ACQ_DATA\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 169 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 170 | case 5:printf("P_ACS_MAIN\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 171 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 172 | case 6:printf("P_BCN_INIT\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 173 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 174 | case 7:printf("P_BCN_MAIN\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 175 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 176 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 177 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 178 | else if((tcp[3]&0xF0)==0x10){ |
cholletisaik777 | 0:b9b1bedf49e5 | 179 | printf("PWR_SWCH\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 180 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 181 | else if((tcp[3]&0xF0)==0x20){ |
cholletisaik777 | 0:b9b1bedf49e5 | 182 | printf("PWR_RST\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 183 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 184 | else if((tcp[3]&0xF0)==0xE0){ |
cholletisaik777 | 0:b9b1bedf49e5 | 185 | printf("COMSN_ACS_ALGO\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 186 | uint8_t tmid_spr_tm=0xD0,tc_psc_tm,tm_psc_tm,ackcode_tm,crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 187 | uint8_t tmp[13]; |
cholletisaik777 | 0:b9b1bedf49e5 | 188 | tmp[0]=tmid_spr_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 189 | tmp[1]=tc_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 190 | tmp[2]=tm_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 191 | tmp[3]=ackcode_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 192 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 193 | tmp[i]=fms[i-3]; |
cholletisaik777 | 0:b9b1bedf49e5 | 194 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 195 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 196 | tmp[i]=crc_tm[i-11]; |
cholletisaik777 | 0:b9b1bedf49e5 | 197 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 198 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 199 | else if((tcp[3]&0xF0)==0xF0){ |
cholletisaik777 | 0:b9b1bedf49e5 | 200 | printf("COMSN_ACS_HW\n"); |
cholletisaik777 | 0:b9b1bedf49e5 | 201 | uint8_t tmid_spr_tm=0xD0,tc_psc_tm,tm_psc_tm,ackcode_tm,crc_tm[2]; |
cholletisaik777 | 0:b9b1bedf49e5 | 202 | uint8_t tmp[13]; |
cholletisaik777 | 0:b9b1bedf49e5 | 203 | tmp[0]=tmid_spr_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 204 | tmp[1]=tc_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 205 | tmp[2]=tm_psc_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 206 | tmp[3]=ackcode_tm; |
cholletisaik777 | 0:b9b1bedf49e5 | 207 | for(int i=3;i<11;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 208 | tmp[i]=fms[i-3]; |
cholletisaik777 | 0:b9b1bedf49e5 | 209 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 210 | for(int i=11;i<13;i++){ |
cholletisaik777 | 0:b9b1bedf49e5 | 211 | tmp[i]=crc_tm[i-11]; |
cholletisaik777 | 0:b9b1bedf49e5 | 212 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 213 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 214 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 215 | break; |
cholletisaik777 | 0:b9b1bedf49e5 | 216 | } |
cholletisaik777 | 0:b9b1bedf49e5 | 217 | } |