##// END OF EJS Templates
SPW_TXHSIZE and CCSDS_TC_PKT_MAX_SIZE modified to have a working configuration
paul -
r57:d4a9a4d748d5 default
parent child
Show More
@@ -1,893 +1,893
1 #ifndef CCSDS_TYPES_H_INCLUDED
1 #ifndef CCSDS_TYPES_H_INCLUDED
2 #define CCSDS_TYPES_H_INCLUDED
2 #define CCSDS_TYPES_H_INCLUDED
3
3
4 #define TXBDCNT 50
4 #define TXBDCNT 50
5 #define RXBDCNT 10
5 #define RXBDCNT 10
6 #define TXDATASIZE 4096
6 #define TXDATASIZE 4096
7 #define TXHDRSIZE 34
7 #define TXHDRSIZE 34
8 #define RXPKTSIZE 200
8 #define RXPKTSIZE 200
9
9
10 #define SPW_RXSIZE 228
10 #define SPW_RXSIZE 228
11 #define SPW_TXDSIZE 4096
11 #define SPW_TXDSIZE 4096
12 #define SPW_TXHSIZE 34
12 #define SPW_TXHSIZE 64
13
13
14 #define BITS_PID_0 0x07
14 #define BITS_PID_0 0x07
15 #define BITS_PID_1 0x0f
15 #define BITS_PID_1 0x0f
16 #define BITS_CAT 0x0f
16 #define BITS_CAT 0x0f
17
17
18 #define CCSDS_PROTOCOLE_EXTRA_BYTES 4
18 #define CCSDS_PROTOCOLE_EXTRA_BYTES 4
19 #define CCSDS_TC_TM_PACKET_OFFSET 7
19 #define CCSDS_TC_TM_PACKET_OFFSET 7
20 #define PROTID_RES_APP 3
20 #define PROTID_RES_APP 3
21 #define CCSDS_TELEMETRY_HEADER_LENGTH (16+4)
21 #define CCSDS_TELEMETRY_HEADER_LENGTH (16+4)
22 #define CCSDS_TM_PKT_MAX_SIZE 4412
22 #define CCSDS_TM_PKT_MAX_SIZE 4412
23 #define CCSDS_TELECOMMAND_HEADER_LENGTH (10+4)
23 #define CCSDS_TELECOMMAND_HEADER_LENGTH (10+4)
24 #define CCSDS_TC_PKT_MAX_SIZE (228+3) // => 3 is for Prot ID, Reserved and User App bytes
24 #define CCSDS_TC_PKT_MAX_SIZE 232 // (228+3) with 3 for Prot ID, Reserved and User App bytes, SHALL BE A MULTIPLE OF 4
25 #define CCSDS_TC_PKT_MIN_SIZE 16
25 #define CCSDS_TC_PKT_MIN_SIZE 16
26 #define CCSDS_PROCESS_ID 76
26 #define CCSDS_PROCESS_ID 76
27 #define CCSDS_PACKET_CATEGORY 12
27 #define CCSDS_PACKET_CATEGORY 12
28 #define CCSDS_NODE_ADDRESS 0xfe
28 #define CCSDS_NODE_ADDRESS 0xfe
29 #define CCSDS_USER_APP 0x00
29 #define CCSDS_USER_APP 0x00
30
30
31 #define DEFAULT_SPARE1_PUSVERSION_SPARE2 0x10
31 #define DEFAULT_SPARE1_PUSVERSION_SPARE2 0x10
32 #define DEFAULT_RESERVED 0x00
32 #define DEFAULT_RESERVED 0x00
33 #define DEFAULT_HKBIA 0x1e // 0001 1110
33 #define DEFAULT_HKBIA 0x1e // 0001 1110
34
34
35 // PACKET ID
35 // PACKET ID
36 #define TM_PACKET_PID_DEFAULT 76
36 #define TM_PACKET_PID_DEFAULT 76
37 #define TM_PACKET_PID_BURST_SBM1_SBM2 79
37 #define TM_PACKET_PID_BURST_SBM1_SBM2 79
38 #define APID_TM_TC_EXE 0x0cc1 // PID 76 CAT 1
38 #define APID_TM_TC_EXE 0x0cc1 // PID 76 CAT 1
39 #define APID_TM_HK 0x0cc4 // PID 76 CAT 4
39 #define APID_TM_HK 0x0cc4 // PID 76 CAT 4
40 #define APID_TM_SCIENCE_NORMAL_BURST 0x0ccc // PID 76 CAT 12
40 #define APID_TM_SCIENCE_NORMAL_BURST 0x0ccc // PID 76 CAT 12
41 #define APID_TM_SCIENCE_SBM1_SBM2 0x0cfc // PID 79 CAT 12
41 #define APID_TM_SCIENCE_SBM1_SBM2 0x0cfc // PID 79 CAT 12
42 #define APID_TM_PARAMETER_DUMP 0x0cc6 // PID 76 CAT 6
42 #define APID_TM_PARAMETER_DUMP 0x0cc6 // PID 76 CAT 6
43 #define APID_TM_KCOEFFICIENTS_DUMP 0x0cc6 // PID 76 CAT 6
43 #define APID_TM_KCOEFFICIENTS_DUMP 0x0cc6 // PID 76 CAT 6
44
44
45 // PACKET CAT
45 // PACKET CAT
46 #define TM_PACKET_CAT_TC_EXE 1
46 #define TM_PACKET_CAT_TC_EXE 1
47 #define TM_PACKET_CAT_HK 4
47 #define TM_PACKET_CAT_HK 4
48 #define TM_PACKET_CAT_SCIENCE 12
48 #define TM_PACKET_CAT_SCIENCE 12
49 #define TM_PACKET_CAT_DUMP 6
49 #define TM_PACKET_CAT_DUMP 6
50
50
51 // PACKET SEQUENCE CONTROL
51 // PACKET SEQUENCE CONTROL
52 #define TM_PACKET_SEQ_CTRL_CONTINUATION 0x00 // [0000 0000]
52 #define TM_PACKET_SEQ_CTRL_CONTINUATION 0x00 // [0000 0000]
53 #define TM_PACKET_SEQ_CTRL_FIRST 0x40 // [0100 0000]
53 #define TM_PACKET_SEQ_CTRL_FIRST 0x40 // [0100 0000]
54 #define TM_PACKET_SEQ_CTRL_LAST 0x80 // [1000 0000]
54 #define TM_PACKET_SEQ_CTRL_LAST 0x80 // [1000 0000]
55 #define TM_PACKET_SEQ_CTRL_STANDALONE 0xc0 // [1100 0000]
55 #define TM_PACKET_SEQ_CTRL_STANDALONE 0xc0 // [1100 0000]
56 #define TM_PACKET_SEQ_CNT_DEFAULT 0x00 // [0000 0000]
56 #define TM_PACKET_SEQ_CNT_DEFAULT 0x00 // [0000 0000]
57 #define TM_PACKET_SEQ_SHIFT 8
57 #define TM_PACKET_SEQ_SHIFT 8
58 #define SEQ_CNT_MAX 16383
58 #define SEQ_CNT_MAX 16383
59 #define SEQ_CNT_NB_DEST_ID 12
59 #define SEQ_CNT_NB_DEST_ID 12
60 #define SEQ_CNT_MASK 0x3fff // [0011 1111 1111 1111]
60 #define SEQ_CNT_MASK 0x3fff // [0011 1111 1111 1111]
61
61
62 // DESTINATION ID
62 // DESTINATION ID
63 #define TM_DESTINATION_ID_GROUND 0
63 #define TM_DESTINATION_ID_GROUND 0
64 #define TM_DESTINATION_ID_MISSION_TIMELINE 110
64 #define TM_DESTINATION_ID_MISSION_TIMELINE 110
65 #define TM_DESTINATION_ID_TC_SEQUENCES 111
65 #define TM_DESTINATION_ID_TC_SEQUENCES 111
66 #define TM_DESTINATION_ID_RECOVERY_ACTION_COMMAND 112
66 #define TM_DESTINATION_ID_RECOVERY_ACTION_COMMAND 112
67 #define TM_DESTINATION_ID_BACKUP_MISSION_TIMELINE 113
67 #define TM_DESTINATION_ID_BACKUP_MISSION_TIMELINE 113
68 #define TM_DESTINATION_ID_DIRECT_CMD 120
68 #define TM_DESTINATION_ID_DIRECT_CMD 120
69 #define TM_DESTINATION_ID_SPARE_GRD_SRC1 121
69 #define TM_DESTINATION_ID_SPARE_GRD_SRC1 121
70 #define TM_DESTINATION_ID_SPARE_GRD_SRC2 122
70 #define TM_DESTINATION_ID_SPARE_GRD_SRC2 122
71 #define TM_DESTINATION_ID_OBCP 15
71 #define TM_DESTINATION_ID_OBCP 15
72 #define TM_DESTINATION_ID_SYSTEM_CONTROL 14
72 #define TM_DESTINATION_ID_SYSTEM_CONTROL 14
73 #define TM_DESTINATION_ID_AOCS 11
73 #define TM_DESTINATION_ID_AOCS 11
74
74
75 //*********************************************************
75 //*********************************************************
76 //*** /!\ change CCSDS_DESTINATION_ID before flight /!\ ***
76 //*** /!\ change CCSDS_DESTINATION_ID before flight /!\ ***
77 //*********************************************************
77 //*********************************************************
78 #ifdef LPP_DPU_DESTID
78 #ifdef LPP_DPU_DESTID
79 #define CCSDS_DESTINATION_ID 32
79 #define CCSDS_DESTINATION_ID 32
80 #else
80 #else
81 #define CCSDS_DESTINATION_ID 0x01
81 #define CCSDS_DESTINATION_ID 0x01
82 #endif
82 #endif
83 #define CCSDS_PROTOCOLE_ID 0x02
83 #define CCSDS_PROTOCOLE_ID 0x02
84 #define CCSDS_RESERVED 0x00
84 #define CCSDS_RESERVED 0x00
85 #define CCSDS_USER_APP 0x00
85 #define CCSDS_USER_APP 0x00
86
86
87 #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
87 #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
88 #define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
88 #define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
89 #define SIZE_HK_PARAMETERS 112
89 #define SIZE_HK_PARAMETERS 112
90
90
91 // TC TYPES
91 // TC TYPES
92 #define TC_TYPE_GEN 181
92 #define TC_TYPE_GEN 181
93 #define TC_TYPE_TIME 9
93 #define TC_TYPE_TIME 9
94
94
95 // TC SUBTYPES
95 // TC SUBTYPES
96 #define TC_SUBTYPE_RESET 1
96 #define TC_SUBTYPE_RESET 1
97 #define TC_SUBTYPE_LOAD_COMM 11
97 #define TC_SUBTYPE_LOAD_COMM 11
98 #define TC_SUBTYPE_LOAD_NORM 13
98 #define TC_SUBTYPE_LOAD_NORM 13
99 #define TC_SUBTYPE_LOAD_BURST 19
99 #define TC_SUBTYPE_LOAD_BURST 19
100 #define TC_SUBTYPE_LOAD_SBM1 25
100 #define TC_SUBTYPE_LOAD_SBM1 25
101 #define TC_SUBTYPE_LOAD_SBM2 27
101 #define TC_SUBTYPE_LOAD_SBM2 27
102 #define TC_SUBTYPE_DUMP 31
102 #define TC_SUBTYPE_DUMP 31
103 #define TC_SUBTYPE_ENTER 41
103 #define TC_SUBTYPE_ENTER 41
104 #define TC_SUBTYPE_UPDT_INFO 51
104 #define TC_SUBTYPE_UPDT_INFO 51
105 #define TC_SUBTYPE_EN_CAL 61
105 #define TC_SUBTYPE_EN_CAL 61
106 #define TC_SUBTYPE_DIS_CAL 63
106 #define TC_SUBTYPE_DIS_CAL 63
107 #define TC_SUBTYPE_LOAD_K 93
107 #define TC_SUBTYPE_LOAD_K 93
108 #define TC_SUBTYPE_DUMP_K 95
108 #define TC_SUBTYPE_DUMP_K 95
109 #define TC_SUBTYPE_LOAD_FBINS 91
109 #define TC_SUBTYPE_LOAD_FBINS 91
110 #define TC_SUBTYPE_LOAD_FILTER_PAR 97
110 #define TC_SUBTYPE_LOAD_FILTER_PAR 97
111 #define TC_SUBTYPE_UPDT_TIME 129
111 #define TC_SUBTYPE_UPDT_TIME 129
112
112
113 // TC LEN
113 // TC LEN
114 #define TC_LEN_RESET 12
114 #define TC_LEN_RESET 12
115 #define TC_LEN_LOAD_COMM 14
115 #define TC_LEN_LOAD_COMM 14
116 #define TC_LEN_LOAD_NORM 22
116 #define TC_LEN_LOAD_NORM 22
117 #define TC_LEN_LOAD_BURST 14
117 #define TC_LEN_LOAD_BURST 14
118 #define TC_LEN_LOAD_SBM1 14
118 #define TC_LEN_LOAD_SBM1 14
119 #define TC_LEN_LOAD_SBM2 14
119 #define TC_LEN_LOAD_SBM2 14
120 #define TC_LEN_DUMP 12
120 #define TC_LEN_DUMP 12
121 #define TC_LEN_ENTER 20
121 #define TC_LEN_ENTER 20
122 #define TC_LEN_UPDT_INFO 110
122 #define TC_LEN_UPDT_INFO 110
123 #define TC_LEN_EN_CAL 12
123 #define TC_LEN_EN_CAL 12
124 #define TC_LEN_DIS_CAL 12
124 #define TC_LEN_DIS_CAL 12
125 #define TC_LEN_LOAD_K 142
125 #define TC_LEN_LOAD_K 142
126 #define TC_LEN_DUMP_K 12
126 #define TC_LEN_DUMP_K 12
127 #define TC_LEN_LOAD_FBINS 60
127 #define TC_LEN_LOAD_FBINS 60
128 #define TC_LEN_LOAD_FILTER_PAR 28
128 #define TC_LEN_LOAD_FILTER_PAR 28
129 #define TC_LEN_UPDT_TIME 18
129 #define TC_LEN_UPDT_TIME 18
130
130
131 // PACKET CODES
131 // PACKET CODES
132 #define TM_CODE_K_DUMP 0xb5600b00 // 181 (0xb5) ** 96 (0x60) ** 11 (0x0b) ** 0 (0x00)
132 #define TM_CODE_K_DUMP 0xb5600b00 // 181 (0xb5) ** 96 (0x60) ** 11 (0x0b) ** 0 (0x00)
133
133
134 // TM TYPES
134 // TM TYPES
135 #define TM_TYPE_TC_EXE 1
135 #define TM_TYPE_TC_EXE 1
136 #define TM_TYPE_HK 3
136 #define TM_TYPE_HK 3
137 #define TM_TYPE_LFR_SCIENCE 21
137 #define TM_TYPE_LFR_SCIENCE 21
138 #define TM_TYPE_PARAMETER_DUMP 181
138 #define TM_TYPE_PARAMETER_DUMP 181
139 #define TM_TYPE_K_DUMP 181
139 #define TM_TYPE_K_DUMP 181
140
140
141 // TM SUBTYPES
141 // TM SUBTYPES
142 #define TM_SUBTYPE_EXE_OK 7
142 #define TM_SUBTYPE_EXE_OK 7
143 #define TM_SUBTYPE_EXE_NOK 8
143 #define TM_SUBTYPE_EXE_NOK 8
144 #define TM_SUBTYPE_HK 25
144 #define TM_SUBTYPE_HK 25
145 #define TM_SUBTYPE_LFR_SCIENCE_3 3 // TM packets with fixed size
145 #define TM_SUBTYPE_LFR_SCIENCE_3 3 // TM packets with fixed size
146 #define TM_SUBTYPE_LFR_SCIENCE_6 6 // TM packets with variable size
146 #define TM_SUBTYPE_LFR_SCIENCE_6 6 // TM packets with variable size
147 #define TM_SUBTYPE_PARAMETER_DUMP 32
147 #define TM_SUBTYPE_PARAMETER_DUMP 32
148 #define TM_SUBTYPE_K_DUMP 96
148 #define TM_SUBTYPE_K_DUMP 96
149
149
150 // FAILURE CODES
150 // FAILURE CODES
151 #define ILLEGAL_APID 0
151 #define ILLEGAL_APID 0
152 #define WRONG_LEN_PKT 1
152 #define WRONG_LEN_PKT 1
153 #define INCOR_CHECKSUM 2
153 #define INCOR_CHECKSUM 2
154 #define ILL_TYPE 3
154 #define ILL_TYPE 3
155 #define ILL_SUBTYPE 4
155 #define ILL_SUBTYPE 4
156 #define WRONG_APP_DATA 5 // 0x00 0x05
156 #define WRONG_APP_DATA 5 // 0x00 0x05
157 #define TC_NOT_EXE 42000 // 0xa4 0x10
157 #define TC_NOT_EXE 42000 // 0xa4 0x10
158 #define WRONG_SRC_ID 42001 // 0xa4 0x11
158 #define WRONG_SRC_ID 42001 // 0xa4 0x11
159 #define FUNCT_NOT_IMPL 42002 // 0xa4 0x12
159 #define FUNCT_NOT_IMPL 42002 // 0xa4 0x12
160 #define FAIL_DETECTED 42003 // 0xa4 0x13
160 #define FAIL_DETECTED 42003 // 0xa4 0x13
161 #define NOT_ALLOWED 42004 // 0xa4 0x14
161 #define NOT_ALLOWED 42004 // 0xa4 0x14
162 #define CORRUPTED 42005 // 0xa4 0x15
162 #define CORRUPTED 42005 // 0xa4 0x15
163 #define CCSDS_TM_VALID 7
163 #define CCSDS_TM_VALID 7
164
164
165 // HK_LFR_LAST_ER_RID
165 // HK_LFR_LAST_ER_RID
166 #define RID_LE_LFR_TIME 42119
166 #define RID_LE_LFR_TIME 42119
167 #define RID_LE_LFR_DPU_SPW 42128
167 #define RID_LE_LFR_DPU_SPW 42128
168 #define RID_LE_LFR_TIMEC 42129
168 #define RID_LE_LFR_TIMEC 42129
169 #define RID_ME_LFR_DPU_SPW 42338
169 #define RID_ME_LFR_DPU_SPW 42338
170 // HK_LFR_LAST_ER_CODE
170 // HK_LFR_LAST_ER_CODE
171 #define CODE_PARITY 1
171 #define CODE_PARITY 1
172 #define CODE_DISCONNECT 2
172 #define CODE_DISCONNECT 2
173 #define CODE_ESCAPE 3
173 #define CODE_ESCAPE 3
174 #define CODE_CREDIT 4
174 #define CODE_CREDIT 4
175 #define CODE_WRITE_SYNC 5
175 #define CODE_WRITE_SYNC 5
176 #define CODE_EARLY_EOP_EEP 6
176 #define CODE_EARLY_EOP_EEP 6
177 #define CODE_INVALID_ADDRESS 7
177 #define CODE_INVALID_ADDRESS 7
178 #define CODE_EEP 8
178 #define CODE_EEP 8
179 #define CODE_RX_TOO_BIG 9
179 #define CODE_RX_TOO_BIG 9
180 #define CODE_HEADER_CRC 16
180 #define CODE_HEADER_CRC 16
181 #define CODE_DATA_CRC 17
181 #define CODE_DATA_CRC 17
182 #define CODE_ERRONEOUS 20
182 #define CODE_ERRONEOUS 20
183 #define CODE_MISSING 21
183 #define CODE_MISSING 21
184 #define CODE_INVALID 22
184 #define CODE_INVALID 22
185 #define CODE_TIMECODE_IT 24
185 #define CODE_TIMECODE_IT 24
186 #define CODE_NOT_SYNCHRO 25
186 #define CODE_NOT_SYNCHRO 25
187 #define CODE_TIMECODE_CTR 26
187 #define CODE_TIMECODE_CTR 26
188
188
189 // TC SID
189 // TC SID
190 #define SID_TC_GROUND 0
190 #define SID_TC_GROUND 0
191 #define SID_TC_MISSION_TIMELINE 110
191 #define SID_TC_MISSION_TIMELINE 110
192 #define SID_TC_TC_SEQUENCES 111
192 #define SID_TC_TC_SEQUENCES 111
193 #define SID_TC_RECOVERY_ACTION_CMD 112
193 #define SID_TC_RECOVERY_ACTION_CMD 112
194 #define SID_TC_BACKUP_MISSION_TIMELINE 113
194 #define SID_TC_BACKUP_MISSION_TIMELINE 113
195 #define SID_TC_DIRECT_CMD 120
195 #define SID_TC_DIRECT_CMD 120
196 #define SID_TC_SPARE_GRD_SRC1 121
196 #define SID_TC_SPARE_GRD_SRC1 121
197 #define SID_TC_SPARE_GRD_SRC2 122
197 #define SID_TC_SPARE_GRD_SRC2 122
198 #define SID_TC_OBCP 15
198 #define SID_TC_OBCP 15
199 #define SID_TC_SYSTEM_CONTROL 14
199 #define SID_TC_SYSTEM_CONTROL 14
200 #define SID_TC_AOCS 11
200 #define SID_TC_AOCS 11
201 #define SID_TC_RPW_INTERNAL 254
201 #define SID_TC_RPW_INTERNAL 254
202
202
203 enum apid_destid{
203 enum apid_destid{
204 GROUND,
204 GROUND,
205 MISSION_TIMELINE,
205 MISSION_TIMELINE,
206 TC_SEQUENCES,
206 TC_SEQUENCES,
207 RECOVERY_ACTION_CMD,
207 RECOVERY_ACTION_CMD,
208 BACKUP_MISSION_TIMELINE,
208 BACKUP_MISSION_TIMELINE,
209 DIRECT_CMD,
209 DIRECT_CMD,
210 SPARE_GRD_SRC1,
210 SPARE_GRD_SRC1,
211 SPARE_GRD_SRC2,
211 SPARE_GRD_SRC2,
212 OBCP,
212 OBCP,
213 SYSTEM_CONTROL,
213 SYSTEM_CONTROL,
214 AOCS,
214 AOCS,
215 RPW_INTERNAL
215 RPW_INTERNAL
216 };
216 };
217
217
218 // TM SID
218 // TM SID
219 #define SID_HK 1
219 #define SID_HK 1
220
220
221 #define SID_NORM_SWF_F0 3
221 #define SID_NORM_SWF_F0 3
222 #define SID_NORM_SWF_F1 4
222 #define SID_NORM_SWF_F1 4
223 #define SID_NORM_SWF_F2 5
223 #define SID_NORM_SWF_F2 5
224 #define SID_NORM_CWF_F3 1
224 #define SID_NORM_CWF_F3 1
225 #define SID_BURST_CWF_F2 2
225 #define SID_BURST_CWF_F2 2
226 #define SID_SBM1_CWF_F1 24
226 #define SID_SBM1_CWF_F1 24
227 #define SID_SBM2_CWF_F2 25
227 #define SID_SBM2_CWF_F2 25
228 #define SID_NORM_ASM_F0 11
228 #define SID_NORM_ASM_F0 11
229 #define SID_NORM_ASM_F1 12
229 #define SID_NORM_ASM_F1 12
230 #define SID_NORM_ASM_F2 13
230 #define SID_NORM_ASM_F2 13
231 #define SID_NORM_BP1_F0 14
231 #define SID_NORM_BP1_F0 14
232 #define SID_NORM_BP1_F1 15
232 #define SID_NORM_BP1_F1 15
233 #define SID_NORM_BP1_F2 16
233 #define SID_NORM_BP1_F2 16
234 #define SID_NORM_BP2_F0 19
234 #define SID_NORM_BP2_F0 19
235 #define SID_NORM_BP2_F1 20
235 #define SID_NORM_BP2_F1 20
236 #define SID_NORM_BP2_F2 21
236 #define SID_NORM_BP2_F2 21
237 #define SID_BURST_BP1_F0 17
237 #define SID_BURST_BP1_F0 17
238 #define SID_BURST_BP2_F0 22
238 #define SID_BURST_BP2_F0 22
239 #define SID_BURST_BP1_F1 18
239 #define SID_BURST_BP1_F1 18
240 #define SID_BURST_BP2_F1 23
240 #define SID_BURST_BP2_F1 23
241 #define SID_SBM1_BP1_F0 28
241 #define SID_SBM1_BP1_F0 28
242 #define SID_SBM1_BP2_F0 31
242 #define SID_SBM1_BP2_F0 31
243 #define SID_SBM2_BP1_F0 29
243 #define SID_SBM2_BP1_F0 29
244 #define SID_SBM2_BP2_F0 32
244 #define SID_SBM2_BP2_F0 32
245 #define SID_SBM2_BP1_F1 30
245 #define SID_SBM2_BP1_F1 30
246 #define SID_SBM2_BP2_F1 33
246 #define SID_SBM2_BP2_F1 33
247 #define SID_NORM_CWF_LONG_F3 34
247 #define SID_NORM_CWF_LONG_F3 34
248
248
249 #define SID_PARAMETER_DUMP 10
249 #define SID_PARAMETER_DUMP 10
250 #define SID_K_DUMP 11
250 #define SID_K_DUMP 11
251
251
252 // HEADER_LENGTH
252 // HEADER_LENGTH
253 //#define TM_HEADER_LEN 16
253 //#define TM_HEADER_LEN 16
254 #define HEADER_LENGTH_TM_LFR_SCIENCE_CWF 32
254 #define HEADER_LENGTH_TM_LFR_SCIENCE_CWF 32
255 #define HEADER_LENGTH_TM_LFR_SCIENCE_SWF 34
255 #define HEADER_LENGTH_TM_LFR_SCIENCE_SWF 34
256 #define HEADER_LENGTH_TM_LFR_SCIENCE_ASM 34
256 #define HEADER_LENGTH_TM_LFR_SCIENCE_ASM 34
257 // PACKET_LENGTH
257 // PACKET_LENGTH
258 #define PACKET_LENGTH_TC_EXE_SUCCESS (20 - CCSDS_TC_TM_PACKET_OFFSET)
258 #define PACKET_LENGTH_TC_EXE_SUCCESS (20 - CCSDS_TC_TM_PACKET_OFFSET)
259 #define PACKET_LENGTH_TC_EXE_INCONSISTENT (26 - CCSDS_TC_TM_PACKET_OFFSET)
259 #define PACKET_LENGTH_TC_EXE_INCONSISTENT (26 - CCSDS_TC_TM_PACKET_OFFSET)
260 #define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE (26 - CCSDS_TC_TM_PACKET_OFFSET)
260 #define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE (26 - CCSDS_TC_TM_PACKET_OFFSET)
261 #define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED (24 - CCSDS_TC_TM_PACKET_OFFSET)
261 #define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED (24 - CCSDS_TC_TM_PACKET_OFFSET)
262 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
262 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
263 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
263 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
264 #define PACKET_LENGTH_HK (136 - CCSDS_TC_TM_PACKET_OFFSET)
264 #define PACKET_LENGTH_HK (136 - CCSDS_TC_TM_PACKET_OFFSET)
265 #define PACKET_LENGTH_PARAMETER_DUMP (148 - CCSDS_TC_TM_PACKET_OFFSET)
265 #define PACKET_LENGTH_PARAMETER_DUMP (148 - CCSDS_TC_TM_PACKET_OFFSET)
266 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
266 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
267 // SCIENCE ASM
267 // SCIENCE ASM
268 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0_1 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 32 bins (32 + 32 + 24 ), 3 packets
268 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0_1 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 32 bins (32 + 32 + 24 ), 3 packets
269 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0_2 (2430 - CCSDS_TC_TM_PACKET_OFFSET) // 24 * 25 * 4 + 30 => 24 bins (32 + 32 + 24 ), 3 packets
269 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0_2 (2430 - CCSDS_TC_TM_PACKET_OFFSET) // 24 * 25 * 4 + 30 => 24 bins (32 + 32 + 24 ), 3 packets
270 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1_1 (3630 - CCSDS_TC_TM_PACKET_OFFSET) // 36 * 25 * 4 + 30 => 36 bins (36 + 36 + 32 ), 3 packets
270 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1_1 (3630 - CCSDS_TC_TM_PACKET_OFFSET) // 36 * 25 * 4 + 30 => 36 bins (36 + 36 + 32 ), 3 packets
271 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1_2 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 32 bins (36 + 36 + 32 ), 3 packets
271 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1_2 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 32 bins (36 + 36 + 32 ), 3 packets
272 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F2 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 96 bins (32 + 32 + 32 ), 3 packets
272 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F2 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 96 bins (32 + 32 + 32 ), 3 packets
273 // SCIENCE NORM
273 // SCIENCE NORM
274 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F0 (150 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 11 + 29 (1 spare byte in the header)
274 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F0 (150 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 11 + 29 (1 spare byte in the header)
275 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F1 (172 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 11 + 29 (1 spare byte in the header)
275 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F1 (172 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 11 + 29 (1 spare byte in the header)
276 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F2 (160 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 11 + 28
276 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F2 (160 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 11 + 28
277 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F0 (358 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 30 + 28
277 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F0 (358 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 30 + 28
278 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F1 (418 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 30 + 28
278 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F1 (418 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 30 + 28
279 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F2 (388 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 30 + 28
279 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F2 (388 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 30 + 28
280 // SCIENCE SBM
280 // SCIENCE SBM
281 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 (270 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 11 + 28
281 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 (270 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 11 + 28
282 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 (688 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 30 + 28
282 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 (688 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 30 + 28
283 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 (314 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 11 + 28
283 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 (314 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 11 + 28
284 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 (808 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 30 + 28
284 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 (808 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 30 + 28
285
285
286 #define PACKET_LENGTH_DELTA 11 // 7 + 4
286 #define PACKET_LENGTH_DELTA 11 // 7 + 4
287
287
288 #define SPARE1_PUSVERSION_SPARE2 0x10
288 #define SPARE1_PUSVERSION_SPARE2 0x10
289
289
290 // R3
290 // R3
291 // one snapshot = 2048 samples = 6 packets * 304 + 224
291 // one snapshot = 2048 samples = 6 packets * 304 + 224
292 #define TM_LEN_SCI_SWF_304 (3678 - CCSDS_TC_TM_PACKET_OFFSET) // 304 * 12 + 30
292 #define TM_LEN_SCI_SWF_304 (3678 - CCSDS_TC_TM_PACKET_OFFSET) // 304 * 12 + 30
293 #define TM_LEN_SCI_SWF_224 (2718 - CCSDS_TC_TM_PACKET_OFFSET) // 224 * 12 + 30
293 #define TM_LEN_SCI_SWF_224 (2718 - CCSDS_TC_TM_PACKET_OFFSET) // 224 * 12 + 30
294 // one continuous buffer = 2688 samples = 8 packets * 336
294 // one continuous buffer = 2688 samples = 8 packets * 336
295 #define TM_LEN_SCI_CWF_336 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 336 * 12 + 28
295 #define TM_LEN_SCI_CWF_336 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 336 * 12 + 28
296 #define TM_LEN_SCI_CWF_672 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 672 * 6 + 28
296 #define TM_LEN_SCI_CWF_672 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 672 * 6 + 28
297 //
297 //
298 #define PKTCNT_SWF 0x07
298 #define PKTCNT_SWF 0x07
299 #define PKTCNT_ASM 3
299 #define PKTCNT_ASM 3
300 #define BLK_NR_304 0x0130
300 #define BLK_NR_304 0x0130
301 #define BLK_NR_224 0x00e0
301 #define BLK_NR_224 0x00e0
302 #define BLK_NR_CWF 0x0150 // 336
302 #define BLK_NR_CWF 0x0150 // 336
303 #define BLK_NR_CWF_SHORT_F3 0x02a0 // 672
303 #define BLK_NR_CWF_SHORT_F3 0x02a0 // 672
304
304
305 enum TM_TYPE{
305 enum TM_TYPE{
306 TM_LFR_TC_EXE_OK,
306 TM_LFR_TC_EXE_OK,
307 TM_LFR_TC_EXE_ERR,
307 TM_LFR_TC_EXE_ERR,
308 TM_LFR_HK,
308 TM_LFR_HK,
309 TM_LFR_SCI,
309 TM_LFR_SCI,
310 TM_LFR_SCI_SBM,
310 TM_LFR_SCI_SBM,
311 TM_LFR_PAR_DUMP
311 TM_LFR_PAR_DUMP
312 };
312 };
313
313
314 #define BYTES_PER_PACKETID 2
314 #define BYTES_PER_PACKETID 2
315 #define BYTES_PER_SEQ_CTRL 2
315 #define BYTES_PER_SEQ_CTRL 2
316 #define BYTES_PER_PKT_LEN 2
316 #define BYTES_PER_PKT_LEN 2
317 #define BYTES_PER_TIME 6
317 #define BYTES_PER_TIME 6
318 #define BYTES_PER_ERR_CODE 2
318 #define BYTES_PER_ERR_CODE 2
319 #define BYTES_PER_STA_WRD 2
319 #define BYTES_PER_STA_WRD 2
320 #define BYTES_PER_CRC 2
320 #define BYTES_PER_CRC 2
321 #define BYTES_PER_BLKNR 2
321 #define BYTES_PER_BLKNR 2
322 #define BYTES_PER_SW_VER 4
322 #define BYTES_PER_SW_VER 4
323 #define BYTES_PER_VHD_VER 3
323 #define BYTES_PER_VHD_VER 3
324 #define COUNTER_2_BYTES 2
324 #define COUNTER_2_BYTES 2
325 #define BYTES_PER_TYPE 2
325 #define BYTES_PER_TYPE 2
326 #define BYTES_PER_SUBTYPE 2
326 #define BYTES_PER_SUBTYPE 2
327 #define BYTES_PER_ADDR 4
327 #define BYTES_PER_ADDR 4
328 #define BYTES_PER_TEMP 2
328 #define BYTES_PER_TEMP 2
329 #define BYTES_PER_V 2
329 #define BYTES_PER_V 2
330 #define BYTES_PER_WORD 4
330 #define BYTES_PER_WORD 4
331 #define BYTES_PER_MASK 16
331 #define BYTES_PER_MASK 16
332 #define BYTES_PER_MASKS_SET 48 // 4 * 4 * 3
332 #define BYTES_PER_MASKS_SET 48 // 4 * 4 * 3
333
333
334 #define COUNTER_2_BYTES 2
334 #define COUNTER_2_BYTES 2
335 #define PARAM_2_BYTES 2
335 #define PARAM_2_BYTES 2
336 #define PARAM_4_BYTES 4
336 #define PARAM_4_BYTES 4
337
337
338 typedef struct {
338 typedef struct {
339 unsigned char targetLogicalAddress;
339 unsigned char targetLogicalAddress;
340 unsigned char protocolIdentifier;
340 unsigned char protocolIdentifier;
341 unsigned char reserved;
341 unsigned char reserved;
342 unsigned char userApplication;
342 unsigned char userApplication;
343 // PACKET HEADER
343 // PACKET HEADER
344 unsigned char packetID[BYTES_PER_PACKETID];
344 unsigned char packetID[BYTES_PER_PACKETID];
345 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
345 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
346 unsigned char packetLength[BYTES_PER_PKT_LEN];
346 unsigned char packetLength[BYTES_PER_PKT_LEN];
347 // DATA FIELD HEADER
347 // DATA FIELD HEADER
348 unsigned char spare1_pusVersion_spare2;
348 unsigned char spare1_pusVersion_spare2;
349 unsigned char serviceType;
349 unsigned char serviceType;
350 unsigned char serviceSubType;
350 unsigned char serviceSubType;
351 unsigned char destinationID;
351 unsigned char destinationID;
352 unsigned char time[BYTES_PER_TIME];
352 unsigned char time[BYTES_PER_TIME];
353 //
353 //
354 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
354 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
355 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
355 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
356 } Packet_TM_LFR_TC_EXE_SUCCESS_t;
356 } Packet_TM_LFR_TC_EXE_SUCCESS_t;
357
357
358 typedef struct {
358 typedef struct {
359 unsigned char targetLogicalAddress;
359 unsigned char targetLogicalAddress;
360 unsigned char protocolIdentifier;
360 unsigned char protocolIdentifier;
361 unsigned char reserved;
361 unsigned char reserved;
362 unsigned char userApplication;
362 unsigned char userApplication;
363 // PACKET HEADER
363 // PACKET HEADER
364 unsigned char packetID[BYTES_PER_PACKETID];
364 unsigned char packetID[BYTES_PER_PACKETID];
365 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
365 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
366 unsigned char packetLength[BYTES_PER_PKT_LEN];
366 unsigned char packetLength[BYTES_PER_PKT_LEN];
367 // DATA FIELD HEADER
367 // DATA FIELD HEADER
368 unsigned char spare1_pusVersion_spare2;
368 unsigned char spare1_pusVersion_spare2;
369 unsigned char serviceType;
369 unsigned char serviceType;
370 unsigned char serviceSubType;
370 unsigned char serviceSubType;
371 unsigned char destinationID;
371 unsigned char destinationID;
372 unsigned char time[BYTES_PER_TIME];
372 unsigned char time[BYTES_PER_TIME];
373 //
373 //
374 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
374 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
375 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
375 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
376 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
376 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
377 unsigned char tc_service;
377 unsigned char tc_service;
378 unsigned char tc_subtype;
378 unsigned char tc_subtype;
379 unsigned char byte_position;
379 unsigned char byte_position;
380 unsigned char rcv_value;
380 unsigned char rcv_value;
381 } Packet_TM_LFR_TC_EXE_INCONSISTENT_t;
381 } Packet_TM_LFR_TC_EXE_INCONSISTENT_t;
382
382
383 typedef struct {
383 typedef struct {
384 unsigned char targetLogicalAddress;
384 unsigned char targetLogicalAddress;
385 unsigned char protocolIdentifier;
385 unsigned char protocolIdentifier;
386 unsigned char reserved;
386 unsigned char reserved;
387 unsigned char userApplication;
387 unsigned char userApplication;
388 // PACKET HEADER
388 // PACKET HEADER
389 unsigned char packetID[BYTES_PER_PACKETID];
389 unsigned char packetID[BYTES_PER_PACKETID];
390 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
390 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
391 unsigned char packetLength[BYTES_PER_PKT_LEN];
391 unsigned char packetLength[BYTES_PER_PKT_LEN];
392 // DATA FIELD HEADER
392 // DATA FIELD HEADER
393 unsigned char spare1_pusVersion_spare2;
393 unsigned char spare1_pusVersion_spare2;
394 unsigned char serviceType;
394 unsigned char serviceType;
395 unsigned char serviceSubType;
395 unsigned char serviceSubType;
396 unsigned char destinationID;
396 unsigned char destinationID;
397 unsigned char time[BYTES_PER_TIME];
397 unsigned char time[BYTES_PER_TIME];
398 //
398 //
399 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
399 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
400 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
400 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
401 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
401 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
402 unsigned char tc_service;
402 unsigned char tc_service;
403 unsigned char tc_subtype;
403 unsigned char tc_subtype;
404 unsigned char lfr_status_word[2];
404 unsigned char lfr_status_word[2];
405 } Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t;
405 } Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t;
406
406
407 typedef struct {
407 typedef struct {
408 unsigned char targetLogicalAddress;
408 unsigned char targetLogicalAddress;
409 unsigned char protocolIdentifier;
409 unsigned char protocolIdentifier;
410 unsigned char reserved;
410 unsigned char reserved;
411 unsigned char userApplication;
411 unsigned char userApplication;
412 // PACKET HEADER
412 // PACKET HEADER
413 unsigned char packetID[BYTES_PER_PACKETID];
413 unsigned char packetID[BYTES_PER_PACKETID];
414 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
414 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
415 unsigned char packetLength[BYTES_PER_PKT_LEN];
415 unsigned char packetLength[BYTES_PER_PKT_LEN];
416 // DATA FIELD HEADER
416 // DATA FIELD HEADER
417 unsigned char spare1_pusVersion_spare2;
417 unsigned char spare1_pusVersion_spare2;
418 unsigned char serviceType;
418 unsigned char serviceType;
419 unsigned char serviceSubType;
419 unsigned char serviceSubType;
420 unsigned char destinationID;
420 unsigned char destinationID;
421 unsigned char time[BYTES_PER_TIME];
421 unsigned char time[BYTES_PER_TIME];
422 //
422 //
423 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
423 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
424 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
424 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
425 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
425 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
426 unsigned char tc_service;
426 unsigned char tc_service;
427 unsigned char tc_subtype;
427 unsigned char tc_subtype;
428 } Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t;
428 } Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t;
429
429
430 typedef struct {
430 typedef struct {
431 unsigned char targetLogicalAddress;
431 unsigned char targetLogicalAddress;
432 unsigned char protocolIdentifier;
432 unsigned char protocolIdentifier;
433 unsigned char reserved;
433 unsigned char reserved;
434 unsigned char userApplication;
434 unsigned char userApplication;
435 // PACKET HEADER
435 // PACKET HEADER
436 unsigned char packetID[BYTES_PER_PACKETID];
436 unsigned char packetID[BYTES_PER_PACKETID];
437 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
437 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
438 unsigned char packetLength[BYTES_PER_PKT_LEN];
438 unsigned char packetLength[BYTES_PER_PKT_LEN];
439 // DATA FIELD HEADER
439 // DATA FIELD HEADER
440 unsigned char spare1_pusVersion_spare2;
440 unsigned char spare1_pusVersion_spare2;
441 unsigned char serviceType;
441 unsigned char serviceType;
442 unsigned char serviceSubType;
442 unsigned char serviceSubType;
443 unsigned char destinationID;
443 unsigned char destinationID;
444 unsigned char time[BYTES_PER_TIME];
444 unsigned char time[BYTES_PER_TIME];
445 //
445 //
446 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
446 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
447 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
447 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
448 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
448 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
449 unsigned char tc_service;
449 unsigned char tc_service;
450 unsigned char tc_subtype;
450 unsigned char tc_subtype;
451 } Packet_TM_LFR_TC_EXE_ERROR_t;
451 } Packet_TM_LFR_TC_EXE_ERROR_t;
452
452
453 typedef struct {
453 typedef struct {
454 unsigned char targetLogicalAddress;
454 unsigned char targetLogicalAddress;
455 unsigned char protocolIdentifier;
455 unsigned char protocolIdentifier;
456 unsigned char reserved;
456 unsigned char reserved;
457 unsigned char userApplication;
457 unsigned char userApplication;
458 // PACKET HEADER
458 // PACKET HEADER
459 unsigned char packetID[BYTES_PER_PACKETID];
459 unsigned char packetID[BYTES_PER_PACKETID];
460 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
460 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
461 unsigned char packetLength[BYTES_PER_PKT_LEN];
461 unsigned char packetLength[BYTES_PER_PKT_LEN];
462 // DATA FIELD HEADER
462 // DATA FIELD HEADER
463 unsigned char spare1_pusVersion_spare2;
463 unsigned char spare1_pusVersion_spare2;
464 unsigned char serviceType;
464 unsigned char serviceType;
465 unsigned char serviceSubType;
465 unsigned char serviceSubType;
466 unsigned char destinationID;
466 unsigned char destinationID;
467 unsigned char time[BYTES_PER_TIME];
467 unsigned char time[BYTES_PER_TIME];
468 //
468 //
469 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
469 unsigned char telecommand_pkt_id[BYTES_PER_PACKETID];
470 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
470 unsigned char pkt_seq_control[BYTES_PER_SEQ_CTRL];
471 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
471 unsigned char tc_failure_code[BYTES_PER_ERR_CODE];
472 unsigned char tc_service;
472 unsigned char tc_service;
473 unsigned char tc_subtype;
473 unsigned char tc_subtype;
474 unsigned char pkt_len_rcv_value[BYTES_PER_PKT_LEN];
474 unsigned char pkt_len_rcv_value[BYTES_PER_PKT_LEN];
475 unsigned char pkt_datafieldsize_cnt[BYTES_PER_PKT_LEN];
475 unsigned char pkt_datafieldsize_cnt[BYTES_PER_PKT_LEN];
476 unsigned char rcv_crc[BYTES_PER_CRC];
476 unsigned char rcv_crc[BYTES_PER_CRC];
477 unsigned char computed_crc[BYTES_PER_CRC];
477 unsigned char computed_crc[BYTES_PER_CRC];
478 } Packet_TM_LFR_TC_EXE_CORRUPTED_t;
478 } Packet_TM_LFR_TC_EXE_CORRUPTED_t;
479
479
480 typedef struct {
480 typedef struct {
481 unsigned char targetLogicalAddress;
481 unsigned char targetLogicalAddress;
482 unsigned char protocolIdentifier;
482 unsigned char protocolIdentifier;
483 unsigned char reserved;
483 unsigned char reserved;
484 unsigned char userApplication;
484 unsigned char userApplication;
485 unsigned char packetID[BYTES_PER_PACKETID];
485 unsigned char packetID[BYTES_PER_PACKETID];
486 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
486 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
487 unsigned char packetLength[BYTES_PER_PKT_LEN];
487 unsigned char packetLength[BYTES_PER_PKT_LEN];
488 // DATA FIELD HEADER
488 // DATA FIELD HEADER
489 unsigned char spare1_pusVersion_spare2;
489 unsigned char spare1_pusVersion_spare2;
490 unsigned char serviceType;
490 unsigned char serviceType;
491 unsigned char serviceSubType;
491 unsigned char serviceSubType;
492 unsigned char destinationID;
492 unsigned char destinationID;
493 unsigned char time[BYTES_PER_TIME];
493 unsigned char time[BYTES_PER_TIME];
494 // AUXILIARY HEADER
494 // AUXILIARY HEADER
495 unsigned char sid;
495 unsigned char sid;
496 unsigned char pa_bia_status_info;
496 unsigned char pa_bia_status_info;
497 unsigned char sy_lfr_common_parameters_spare;
497 unsigned char sy_lfr_common_parameters_spare;
498 unsigned char sy_lfr_common_parameters;
498 unsigned char sy_lfr_common_parameters;
499 unsigned char pktCnt;
499 unsigned char pktCnt;
500 unsigned char pktNr;
500 unsigned char pktNr;
501 unsigned char acquisitionTime[BYTES_PER_TIME];
501 unsigned char acquisitionTime[BYTES_PER_TIME];
502 unsigned char blkNr[BYTES_PER_BLKNR];
502 unsigned char blkNr[BYTES_PER_BLKNR];
503 } Header_TM_LFR_SCIENCE_SWF_t;
503 } Header_TM_LFR_SCIENCE_SWF_t;
504
504
505 //*******************
505 //*******************
506 // TM_LFR_SCIENCE_CWF
506 // TM_LFR_SCIENCE_CWF
507
507
508 #define CWF_BLK_SIZE 6
508 #define CWF_BLK_SIZE 6
509
509
510 typedef struct {
510 typedef struct {
511 unsigned char targetLogicalAddress;
511 unsigned char targetLogicalAddress;
512 unsigned char protocolIdentifier;
512 unsigned char protocolIdentifier;
513 unsigned char reserved;
513 unsigned char reserved;
514 unsigned char userApplication;
514 unsigned char userApplication;
515 unsigned char packetID[BYTES_PER_PACKETID];
515 unsigned char packetID[BYTES_PER_PACKETID];
516 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
516 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
517 unsigned char packetLength[BYTES_PER_PKT_LEN];
517 unsigned char packetLength[BYTES_PER_PKT_LEN];
518 // DATA FIELD HEADER
518 // DATA FIELD HEADER
519 unsigned char spare1_pusVersion_spare2;
519 unsigned char spare1_pusVersion_spare2;
520 unsigned char serviceType;
520 unsigned char serviceType;
521 unsigned char serviceSubType;
521 unsigned char serviceSubType;
522 unsigned char destinationID;
522 unsigned char destinationID;
523 unsigned char time[BYTES_PER_TIME];
523 unsigned char time[BYTES_PER_TIME];
524 // AUXILIARY DATA HEADER
524 // AUXILIARY DATA HEADER
525 unsigned char sid;
525 unsigned char sid;
526 unsigned char pa_bia_status_info;
526 unsigned char pa_bia_status_info;
527 unsigned char sy_lfr_common_parameters_spare;
527 unsigned char sy_lfr_common_parameters_spare;
528 unsigned char sy_lfr_common_parameters;
528 unsigned char sy_lfr_common_parameters;
529 unsigned char acquisitionTime[BYTES_PER_TIME];
529 unsigned char acquisitionTime[BYTES_PER_TIME];
530 unsigned char blkNr[BYTES_PER_BLKNR];
530 unsigned char blkNr[BYTES_PER_BLKNR];
531 } Header_TM_LFR_SCIENCE_CWF_t;
531 } Header_TM_LFR_SCIENCE_CWF_t;
532
532
533 typedef struct {
533 typedef struct {
534 unsigned char targetLogicalAddress;
534 unsigned char targetLogicalAddress;
535 unsigned char protocolIdentifier;
535 unsigned char protocolIdentifier;
536 unsigned char reserved;
536 unsigned char reserved;
537 unsigned char userApplication;
537 unsigned char userApplication;
538 unsigned char packetID[BYTES_PER_PACKETID];
538 unsigned char packetID[BYTES_PER_PACKETID];
539 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
539 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
540 unsigned char packetLength[BYTES_PER_PKT_LEN];
540 unsigned char packetLength[BYTES_PER_PKT_LEN];
541 // DATA FIELD HEADER
541 // DATA FIELD HEADER
542 unsigned char spare1_pusVersion_spare2;
542 unsigned char spare1_pusVersion_spare2;
543 unsigned char serviceType;
543 unsigned char serviceType;
544 unsigned char serviceSubType;
544 unsigned char serviceSubType;
545 unsigned char destinationID;
545 unsigned char destinationID;
546 unsigned char time[BYTES_PER_TIME];
546 unsigned char time[BYTES_PER_TIME];
547 // AUXILIARY HEADER
547 // AUXILIARY HEADER
548 unsigned char sid;
548 unsigned char sid;
549 unsigned char pa_bia_status_info;
549 unsigned char pa_bia_status_info;
550 unsigned char sy_lfr_common_parameters_spare;
550 unsigned char sy_lfr_common_parameters_spare;
551 unsigned char sy_lfr_common_parameters;
551 unsigned char sy_lfr_common_parameters;
552 unsigned char pa_lfr_pkt_cnt_asm;
552 unsigned char pa_lfr_pkt_cnt_asm;
553 unsigned char pa_lfr_pkt_nr_asm;
553 unsigned char pa_lfr_pkt_nr_asm;
554 unsigned char acquisitionTime[BYTES_PER_TIME];
554 unsigned char acquisitionTime[BYTES_PER_TIME];
555 unsigned char pa_lfr_asm_blk_nr[BYTES_PER_BLKNR];
555 unsigned char pa_lfr_asm_blk_nr[BYTES_PER_BLKNR];
556 } Header_TM_LFR_SCIENCE_ASM_t;
556 } Header_TM_LFR_SCIENCE_ASM_t;
557
557
558 typedef struct {
558 typedef struct {
559 unsigned char targetLogicalAddress;
559 unsigned char targetLogicalAddress;
560 unsigned char protocolIdentifier;
560 unsigned char protocolIdentifier;
561 unsigned char reserved;
561 unsigned char reserved;
562 unsigned char userApplication;
562 unsigned char userApplication;
563 unsigned char packetID[BYTES_PER_PACKETID];
563 unsigned char packetID[BYTES_PER_PACKETID];
564 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
564 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
565 unsigned char packetLength[BYTES_PER_PKT_LEN];
565 unsigned char packetLength[BYTES_PER_PKT_LEN];
566 // DATA FIELD HEADER
566 // DATA FIELD HEADER
567 unsigned char spare1_pusVersion_spare2;
567 unsigned char spare1_pusVersion_spare2;
568 unsigned char serviceType;
568 unsigned char serviceType;
569 unsigned char serviceSubType;
569 unsigned char serviceSubType;
570 unsigned char destinationID;
570 unsigned char destinationID;
571 unsigned char time[BYTES_PER_TIME];
571 unsigned char time[BYTES_PER_TIME];
572 // AUXILIARY HEADER
572 // AUXILIARY HEADER
573 unsigned char sid;
573 unsigned char sid;
574 unsigned char pa_bia_status_info;
574 unsigned char pa_bia_status_info;
575 unsigned char sy_lfr_common_parameters_spare;
575 unsigned char sy_lfr_common_parameters_spare;
576 unsigned char sy_lfr_common_parameters;
576 unsigned char sy_lfr_common_parameters;
577 unsigned char acquisitionTime[BYTES_PER_TIME];
577 unsigned char acquisitionTime[BYTES_PER_TIME];
578 unsigned char source_data_spare;
578 unsigned char source_data_spare;
579 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
579 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
580 } Header_TM_LFR_SCIENCE_BP_with_spare_t;
580 } Header_TM_LFR_SCIENCE_BP_with_spare_t;
581
581
582 typedef struct {
582 typedef struct {
583 unsigned char targetLogicalAddress;
583 unsigned char targetLogicalAddress;
584 unsigned char protocolIdentifier;
584 unsigned char protocolIdentifier;
585 unsigned char reserved;
585 unsigned char reserved;
586 unsigned char userApplication;
586 unsigned char userApplication;
587 unsigned char packetID[BYTES_PER_PACKETID];
587 unsigned char packetID[BYTES_PER_PACKETID];
588 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
588 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
589 unsigned char packetLength[BYTES_PER_PKT_LEN];
589 unsigned char packetLength[BYTES_PER_PKT_LEN];
590 // DATA FIELD HEADER
590 // DATA FIELD HEADER
591 unsigned char spare1_pusVersion_spare2;
591 unsigned char spare1_pusVersion_spare2;
592 unsigned char serviceType;
592 unsigned char serviceType;
593 unsigned char serviceSubType;
593 unsigned char serviceSubType;
594 unsigned char destinationID;
594 unsigned char destinationID;
595 unsigned char time[BYTES_PER_TIME];
595 unsigned char time[BYTES_PER_TIME];
596 // AUXILIARY HEADER
596 // AUXILIARY HEADER
597 unsigned char sid;
597 unsigned char sid;
598 unsigned char pa_bia_status_info;
598 unsigned char pa_bia_status_info;
599 unsigned char sy_lfr_common_parameters_spare;
599 unsigned char sy_lfr_common_parameters_spare;
600 unsigned char sy_lfr_common_parameters;
600 unsigned char sy_lfr_common_parameters;
601 unsigned char acquisitionTime[BYTES_PER_TIME];
601 unsigned char acquisitionTime[BYTES_PER_TIME];
602 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
602 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
603 } Header_TM_LFR_SCIENCE_BP_t;
603 } Header_TM_LFR_SCIENCE_BP_t;
604
604
605 typedef struct {
605 typedef struct {
606 // TARGET LOGICAL ADDRESS (targetLogicalAddress) IS REMOVED BY THE GRSPW MODULE
606 // TARGET LOGICAL ADDRESS (targetLogicalAddress) IS REMOVED BY THE GRSPW MODULE
607 unsigned char protocolIdentifier;
607 unsigned char protocolIdentifier;
608 unsigned char reserved;
608 unsigned char reserved;
609 unsigned char userApplication;
609 unsigned char userApplication;
610 unsigned char packetID[BYTES_PER_PACKETID];
610 unsigned char packetID[BYTES_PER_PACKETID];
611 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
611 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
612 unsigned char packetLength[BYTES_PER_PKT_LEN];
612 unsigned char packetLength[BYTES_PER_PKT_LEN];
613 // DATA FIELD HEADER
613 // DATA FIELD HEADER
614 unsigned char headerFlag_pusVersion_Ack;
614 unsigned char headerFlag_pusVersion_Ack;
615 unsigned char serviceType;
615 unsigned char serviceType;
616 unsigned char serviceSubType;
616 unsigned char serviceSubType;
617 unsigned char sourceID;
617 unsigned char sourceID;
618 unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
618 unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
619 } ccsdsTelecommandPacket_t;
619 } ccsdsTelecommandPacket_t;
620
620
621 //**********
621 //**********
622 //**********
622 //**********
623 // TM_LFR_HK
623 // TM_LFR_HK
624
624
625 #define STATUS_WORD_SC_POTENTIAL_FLAG_BIT 0x40 // [0100 0000]
625 #define STATUS_WORD_SC_POTENTIAL_FLAG_BIT 0x40 // [0100 0000]
626 #define STATUS_WORD_SC_POTENTIAL_FLAG_MASK 0xbf // [1011 1111]
626 #define STATUS_WORD_SC_POTENTIAL_FLAG_MASK 0xbf // [1011 1111]
627 #define STATUS_WORD_PAS_FILTER_ENABLED_BIT 0x20 // [0010 0000]
627 #define STATUS_WORD_PAS_FILTER_ENABLED_BIT 0x20 // [0010 0000]
628 #define STATUS_WORD_PAS_FILTER_ENABLED_MASK 0xdf // [1101 1111]
628 #define STATUS_WORD_PAS_FILTER_ENABLED_MASK 0xdf // [1101 1111]
629 #define STATUS_WORD_WATCHDOG_BIT 0x10 // [0001 0000]
629 #define STATUS_WORD_WATCHDOG_BIT 0x10 // [0001 0000]
630 #define STATUS_WORD_WATCHDOG_MASK 0xef // [1110 1111]
630 #define STATUS_WORD_WATCHDOG_MASK 0xef // [1110 1111]
631 #define STATUS_WORD_CALIB_BIT 0x08 // [0000 1000]
631 #define STATUS_WORD_CALIB_BIT 0x08 // [0000 1000]
632 #define STATUS_WORD_CALIB_MASK 0xf7 // [1111 0111]
632 #define STATUS_WORD_CALIB_MASK 0xf7 // [1111 0111]
633 #define STATUS_WORD_RESET_CAUSE_BITS 0x07 // [0000 0111]
633 #define STATUS_WORD_RESET_CAUSE_BITS 0x07 // [0000 0111]
634 #define STATUS_WORD_RESET_CAUSE_MASK 0xf8 // [1111 1000]
634 #define STATUS_WORD_RESET_CAUSE_MASK 0xf8 // [1111 1000]
635 #define STATUS_WORD_LINK_STATE_BITS 0x03 // [0000 0111]
635 #define STATUS_WORD_LINK_STATE_BITS 0x03 // [0000 0111]
636 #define STATUS_WORD_LINK_STATE_MASK 0xf8 // [1111 1000]
636 #define STATUS_WORD_LINK_STATE_MASK 0xf8 // [1111 1000]
637 #define STATUS_WORD_LFR_MODE_SHIFT 4
637 #define STATUS_WORD_LFR_MODE_SHIFT 4
638 #define STATUS_WORD_LFR_MODE_BITS 0xf0 // [1111 0000]
638 #define STATUS_WORD_LFR_MODE_BITS 0xf0 // [1111 0000]
639 #define STATUS_WORD_LFR_MODE_MASK 0x0f // [0000 1111]
639 #define STATUS_WORD_LFR_MODE_MASK 0x0f // [0000 1111]
640 #define STATUS_WORD_0_DEFAULT 0x0d // [0000 1101]
640 #define STATUS_WORD_0_DEFAULT 0x0d // [0000 1101]
641
641
642 typedef struct {
642 typedef struct {
643 unsigned char targetLogicalAddress;
643 unsigned char targetLogicalAddress;
644 unsigned char protocolIdentifier;
644 unsigned char protocolIdentifier;
645 unsigned char reserved;
645 unsigned char reserved;
646 unsigned char userApplication;
646 unsigned char userApplication;
647 unsigned char packetID[BYTES_PER_PACKETID];
647 unsigned char packetID[BYTES_PER_PACKETID];
648 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
648 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
649 unsigned char packetLength[BYTES_PER_PKT_LEN];
649 unsigned char packetLength[BYTES_PER_PKT_LEN];
650 unsigned char spare1_pusVersion_spare2;
650 unsigned char spare1_pusVersion_spare2;
651 unsigned char serviceType;
651 unsigned char serviceType;
652 unsigned char serviceSubType;
652 unsigned char serviceSubType;
653 unsigned char destinationID;
653 unsigned char destinationID;
654 unsigned char time[BYTES_PER_TIME];
654 unsigned char time[BYTES_PER_TIME];
655 unsigned char sid;
655 unsigned char sid;
656
656
657 //**************
657 //**************
658 // HK PARAMETERS
658 // HK PARAMETERS
659 unsigned char lfr_status_word[BYTES_PER_STA_WRD];
659 unsigned char lfr_status_word[BYTES_PER_STA_WRD];
660 unsigned char lfr_sw_version[BYTES_PER_SW_VER];
660 unsigned char lfr_sw_version[BYTES_PER_SW_VER];
661 unsigned char lfr_fpga_version[BYTES_PER_VHD_VER];
661 unsigned char lfr_fpga_version[BYTES_PER_VHD_VER];
662 // ressource statistics
662 // ressource statistics
663 unsigned char hk_lfr_cpu_load;
663 unsigned char hk_lfr_cpu_load;
664 unsigned char hk_lfr_cpu_load_max;
664 unsigned char hk_lfr_cpu_load_max;
665 unsigned char hk_lfr_cpu_load_aver;
665 unsigned char hk_lfr_cpu_load_aver;
666 unsigned char hk_lfr_q_sd_fifo_size_max;
666 unsigned char hk_lfr_q_sd_fifo_size_max;
667 unsigned char hk_lfr_q_sd_fifo_size;
667 unsigned char hk_lfr_q_sd_fifo_size;
668 unsigned char hk_lfr_q_rv_fifo_size_max;
668 unsigned char hk_lfr_q_rv_fifo_size_max;
669 unsigned char hk_lfr_q_rv_fifo_size;
669 unsigned char hk_lfr_q_rv_fifo_size;
670 unsigned char hk_lfr_q_p0_fifo_size_max;
670 unsigned char hk_lfr_q_p0_fifo_size_max;
671 unsigned char hk_lfr_q_p0_fifo_size;
671 unsigned char hk_lfr_q_p0_fifo_size;
672 unsigned char hk_lfr_q_p1_fifo_size_max;
672 unsigned char hk_lfr_q_p1_fifo_size_max;
673 unsigned char hk_lfr_q_p1_fifo_size;
673 unsigned char hk_lfr_q_p1_fifo_size;
674 unsigned char hk_lfr_q_p2_fifo_size_max;
674 unsigned char hk_lfr_q_p2_fifo_size_max;
675 unsigned char hk_lfr_q_p2_fifo_size;
675 unsigned char hk_lfr_q_p2_fifo_size;
676 // tc statistics
676 // tc statistics
677 unsigned char hk_lfr_update_info_tc_cnt[COUNTER_2_BYTES];
677 unsigned char hk_lfr_update_info_tc_cnt[COUNTER_2_BYTES];
678 unsigned char hk_lfr_update_time_tc_cnt[COUNTER_2_BYTES];
678 unsigned char hk_lfr_update_time_tc_cnt[COUNTER_2_BYTES];
679 unsigned char hk_lfr_exe_tc_cnt[COUNTER_2_BYTES];
679 unsigned char hk_lfr_exe_tc_cnt[COUNTER_2_BYTES];
680 unsigned char hk_lfr_rej_tc_cnt[COUNTER_2_BYTES];
680 unsigned char hk_lfr_rej_tc_cnt[COUNTER_2_BYTES];
681 unsigned char hk_lfr_last_exe_tc_id[BYTES_PER_PACKETID];
681 unsigned char hk_lfr_last_exe_tc_id[BYTES_PER_PACKETID];
682 unsigned char hk_lfr_last_exe_tc_type[BYTES_PER_TYPE];
682 unsigned char hk_lfr_last_exe_tc_type[BYTES_PER_TYPE];
683 unsigned char hk_lfr_last_exe_tc_subtype[BYTES_PER_SUBTYPE];
683 unsigned char hk_lfr_last_exe_tc_subtype[BYTES_PER_SUBTYPE];
684 unsigned char hk_lfr_last_exe_tc_time[BYTES_PER_TIME];
684 unsigned char hk_lfr_last_exe_tc_time[BYTES_PER_TIME];
685 unsigned char hk_lfr_last_rej_tc_id[BYTES_PER_PACKETID];
685 unsigned char hk_lfr_last_rej_tc_id[BYTES_PER_PACKETID];
686 unsigned char hk_lfr_last_rej_tc_type[BYTES_PER_TYPE];
686 unsigned char hk_lfr_last_rej_tc_type[BYTES_PER_TYPE];
687 unsigned char hk_lfr_last_rej_tc_subtype[BYTES_PER_SUBTYPE];
687 unsigned char hk_lfr_last_rej_tc_subtype[BYTES_PER_SUBTYPE];
688 unsigned char hk_lfr_last_rej_tc_time[BYTES_PER_TIME];
688 unsigned char hk_lfr_last_rej_tc_time[BYTES_PER_TIME];
689 // anomaly statistics
689 // anomaly statistics
690 unsigned char hk_lfr_le_cnt[COUNTER_2_BYTES];
690 unsigned char hk_lfr_le_cnt[COUNTER_2_BYTES];
691 unsigned char hk_lfr_me_cnt[COUNTER_2_BYTES];
691 unsigned char hk_lfr_me_cnt[COUNTER_2_BYTES];
692 unsigned char hk_lfr_he_cnt[COUNTER_2_BYTES];
692 unsigned char hk_lfr_he_cnt[COUNTER_2_BYTES];
693 unsigned char hk_lfr_last_er_rid[COUNTER_2_BYTES];
693 unsigned char hk_lfr_last_er_rid[COUNTER_2_BYTES];
694 unsigned char hk_lfr_last_er_code;
694 unsigned char hk_lfr_last_er_code;
695 unsigned char hk_lfr_last_er_time[BYTES_PER_TIME];
695 unsigned char hk_lfr_last_er_time[BYTES_PER_TIME];
696 // vhdl_blk_status
696 // vhdl_blk_status
697 unsigned char hk_lfr_vhdl_aa_sm;
697 unsigned char hk_lfr_vhdl_aa_sm;
698 unsigned char hk_lfr_vhdl_fft_sr;
698 unsigned char hk_lfr_vhdl_fft_sr;
699 unsigned char hk_lfr_vhdl_cic_hk;
699 unsigned char hk_lfr_vhdl_cic_hk;
700 unsigned char hk_lfr_vhdl_iir_cal;
700 unsigned char hk_lfr_vhdl_iir_cal;
701 // spacewire_if_statistics
701 // spacewire_if_statistics
702 unsigned char hk_lfr_dpu_spw_pkt_rcv_cnt[COUNTER_2_BYTES];
702 unsigned char hk_lfr_dpu_spw_pkt_rcv_cnt[COUNTER_2_BYTES];
703 unsigned char hk_lfr_dpu_spw_pkt_sent_cnt[COUNTER_2_BYTES];
703 unsigned char hk_lfr_dpu_spw_pkt_sent_cnt[COUNTER_2_BYTES];
704 unsigned char hk_lfr_dpu_spw_tick_out_cnt;
704 unsigned char hk_lfr_dpu_spw_tick_out_cnt;
705 unsigned char hk_lfr_dpu_spw_last_timc;
705 unsigned char hk_lfr_dpu_spw_last_timc;
706 // ahb error statistics
706 // ahb error statistics
707 unsigned char hk_lfr_last_fail_addr[BYTES_PER_ADDR];
707 unsigned char hk_lfr_last_fail_addr[BYTES_PER_ADDR];
708 // temperatures
708 // temperatures
709 unsigned char hk_lfr_temp_scm[BYTES_PER_TEMP];
709 unsigned char hk_lfr_temp_scm[BYTES_PER_TEMP];
710 unsigned char hk_lfr_temp_pcb[BYTES_PER_TEMP];
710 unsigned char hk_lfr_temp_pcb[BYTES_PER_TEMP];
711 unsigned char hk_lfr_temp_fpga[BYTES_PER_TEMP];
711 unsigned char hk_lfr_temp_fpga[BYTES_PER_TEMP];
712 // spacecraft potential
712 // spacecraft potential
713 unsigned char hk_lfr_sc_v_f3[BYTES_PER_V];
713 unsigned char hk_lfr_sc_v_f3[BYTES_PER_V];
714 unsigned char hk_lfr_sc_e1_f3[BYTES_PER_V];
714 unsigned char hk_lfr_sc_e1_f3[BYTES_PER_V];
715 unsigned char hk_lfr_sc_e2_f3[BYTES_PER_V];
715 unsigned char hk_lfr_sc_e2_f3[BYTES_PER_V];
716 // lfr common parameters
716 // lfr common parameters
717 unsigned char sy_lfr_common_parameters_spare;
717 unsigned char sy_lfr_common_parameters_spare;
718 unsigned char sy_lfr_common_parameters;
718 unsigned char sy_lfr_common_parameters;
719 // error counters
719 // error counters
720 unsigned char hk_lfr_dpu_spw_parity;
720 unsigned char hk_lfr_dpu_spw_parity;
721 unsigned char hk_lfr_dpu_spw_disconnect;
721 unsigned char hk_lfr_dpu_spw_disconnect;
722 unsigned char hk_lfr_dpu_spw_escape;
722 unsigned char hk_lfr_dpu_spw_escape;
723 unsigned char hk_lfr_dpu_spw_credit;
723 unsigned char hk_lfr_dpu_spw_credit;
724 unsigned char hk_lfr_dpu_spw_write_sync;
724 unsigned char hk_lfr_dpu_spw_write_sync;
725 unsigned char hk_lfr_dpu_spw_rx_ahb;
725 unsigned char hk_lfr_dpu_spw_rx_ahb;
726 unsigned char hk_lfr_dpu_spw_tx_ahb;
726 unsigned char hk_lfr_dpu_spw_tx_ahb;
727 unsigned char hk_lfr_dpu_spw_early_eop;
727 unsigned char hk_lfr_dpu_spw_early_eop;
728 unsigned char hk_lfr_dpu_spw_invalid_addr;
728 unsigned char hk_lfr_dpu_spw_invalid_addr;
729 unsigned char hk_lfr_dpu_spw_eep;
729 unsigned char hk_lfr_dpu_spw_eep;
730 unsigned char hk_lfr_dpu_spw_rx_too_big;
730 unsigned char hk_lfr_dpu_spw_rx_too_big;
731 // timecode
731 // timecode
732 unsigned char hk_lfr_timecode_erroneous;
732 unsigned char hk_lfr_timecode_erroneous;
733 unsigned char hk_lfr_timecode_missing;
733 unsigned char hk_lfr_timecode_missing;
734 unsigned char hk_lfr_timecode_invalid;
734 unsigned char hk_lfr_timecode_invalid;
735 // time
735 // time
736 unsigned char hk_lfr_time_timecode_it;
736 unsigned char hk_lfr_time_timecode_it;
737 unsigned char hk_lfr_time_not_synchro;
737 unsigned char hk_lfr_time_not_synchro;
738 unsigned char hk_lfr_time_timecode_ctr;
738 unsigned char hk_lfr_time_timecode_ctr;
739 // hk_lfr_buffer_dpu_
739 // hk_lfr_buffer_dpu_
740 unsigned char hk_lfr_buffer_dpu_tc_fifo;
740 unsigned char hk_lfr_buffer_dpu_tc_fifo;
741 unsigned char hk_lfr_buffer_dpu_tm_fifo;
741 unsigned char hk_lfr_buffer_dpu_tm_fifo;
742 // hk_lfr_ahb_
742 // hk_lfr_ahb_
743 unsigned char hk_lfr_ahb_correctable;
743 unsigned char hk_lfr_ahb_correctable;
744 unsigned char hk_lfr_ahb_uncorrectable;
744 unsigned char hk_lfr_ahb_uncorrectable;
745 // reaction wheel frequency
745 // reaction wheel frequency
746 unsigned char hk_lfr_sc_rw_f_flags;
746 unsigned char hk_lfr_sc_rw_f_flags;
747 } Packet_TM_LFR_HK_t;
747 } Packet_TM_LFR_HK_t;
748
748
749 //***************
749 //***************
750 //***************
750 //***************
751 // PARAMETER_DUMP
751 // PARAMETER_DUMP
752
752
753 #define BIT_PAS_FILTER_ENABLED 0x01
753 #define BIT_PAS_FILTER_ENABLED 0x01
754 #define BIT_CWF_LONG_F3 0x01
754 #define BIT_CWF_LONG_F3 0x01
755
755
756 typedef struct {
756 typedef struct {
757 unsigned char targetLogicalAddress;
757 unsigned char targetLogicalAddress;
758 unsigned char protocolIdentifier;
758 unsigned char protocolIdentifier;
759 unsigned char reserved;
759 unsigned char reserved;
760 unsigned char userApplication;
760 unsigned char userApplication;
761 unsigned char packetID[BYTES_PER_PACKETID];
761 unsigned char packetID[BYTES_PER_PACKETID];
762 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
762 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
763 unsigned char packetLength[BYTES_PER_PKT_LEN];
763 unsigned char packetLength[BYTES_PER_PKT_LEN];
764 // DATA FIELD HEADER
764 // DATA FIELD HEADER
765 unsigned char spare1_pusVersion_spare2;
765 unsigned char spare1_pusVersion_spare2;
766 unsigned char serviceType;
766 unsigned char serviceType;
767 unsigned char serviceSubType;
767 unsigned char serviceSubType;
768 unsigned char destinationID;
768 unsigned char destinationID;
769 unsigned char time[BYTES_PER_TIME];
769 unsigned char time[BYTES_PER_TIME];
770 unsigned char sid;
770 unsigned char sid;
771
771
772 //******************
772 //******************
773 // COMMON PARAMETERS
773 // COMMON PARAMETERS
774 unsigned char sy_lfr_common_parameters_spare;
774 unsigned char sy_lfr_common_parameters_spare;
775 unsigned char sy_lfr_common_parameters;
775 unsigned char sy_lfr_common_parameters;
776
776
777 //******************
777 //******************
778 // NORMAL PARAMETERS
778 // NORMAL PARAMETERS
779 unsigned char sy_lfr_n_swf_l[PARAM_2_BYTES];
779 unsigned char sy_lfr_n_swf_l[PARAM_2_BYTES];
780 unsigned char sy_lfr_n_swf_p[PARAM_2_BYTES];
780 unsigned char sy_lfr_n_swf_p[PARAM_2_BYTES];
781 unsigned char sy_lfr_n_asm_p[PARAM_2_BYTES];
781 unsigned char sy_lfr_n_asm_p[PARAM_2_BYTES];
782 unsigned char sy_lfr_n_bp_p0;
782 unsigned char sy_lfr_n_bp_p0;
783 unsigned char sy_lfr_n_bp_p1;
783 unsigned char sy_lfr_n_bp_p1;
784 unsigned char sy_lfr_n_cwf_long_f3;
784 unsigned char sy_lfr_n_cwf_long_f3;
785 unsigned char pa_rpw_spare8_1;
785 unsigned char pa_rpw_spare8_1;
786
786
787 //*****************
787 //*****************
788 // BURST PARAMETERS
788 // BURST PARAMETERS
789 unsigned char sy_lfr_b_bp_p0;
789 unsigned char sy_lfr_b_bp_p0;
790 unsigned char sy_lfr_b_bp_p1;
790 unsigned char sy_lfr_b_bp_p1;
791
791
792 //****************
792 //****************
793 // SBM1 PARAMETERS
793 // SBM1 PARAMETERS
794 unsigned char sy_lfr_s1_bp_p0;
794 unsigned char sy_lfr_s1_bp_p0;
795 unsigned char sy_lfr_s1_bp_p1;
795 unsigned char sy_lfr_s1_bp_p1;
796
796
797 //****************
797 //****************
798 // SBM2 PARAMETERS
798 // SBM2 PARAMETERS
799 unsigned char sy_lfr_s2_bp_p0;
799 unsigned char sy_lfr_s2_bp_p0;
800 unsigned char sy_lfr_s2_bp_p1;
800 unsigned char sy_lfr_s2_bp_p1;
801
801
802 // mask F0
802 // mask F0
803 union{
803 union{
804 struct{
804 struct{
805 unsigned char f0_word1[BYTES_PER_WORD];
805 unsigned char f0_word1[BYTES_PER_WORD];
806 unsigned char f0_word2[BYTES_PER_WORD];
806 unsigned char f0_word2[BYTES_PER_WORD];
807 unsigned char f0_word3[BYTES_PER_WORD];
807 unsigned char f0_word3[BYTES_PER_WORD];
808 unsigned char f0_word4[BYTES_PER_WORD];
808 unsigned char f0_word4[BYTES_PER_WORD];
809 // mask F1
809 // mask F1
810 unsigned char f1_word1[BYTES_PER_WORD];
810 unsigned char f1_word1[BYTES_PER_WORD];
811 unsigned char f1_word2[BYTES_PER_WORD];
811 unsigned char f1_word2[BYTES_PER_WORD];
812 unsigned char f1_word3[BYTES_PER_WORD];
812 unsigned char f1_word3[BYTES_PER_WORD];
813 unsigned char f1_word4[BYTES_PER_WORD];
813 unsigned char f1_word4[BYTES_PER_WORD];
814 // mask F2
814 // mask F2
815 unsigned char f2_word1[BYTES_PER_WORD];
815 unsigned char f2_word1[BYTES_PER_WORD];
816 unsigned char f2_word2[BYTES_PER_WORD];
816 unsigned char f2_word2[BYTES_PER_WORD];
817 unsigned char f2_word3[BYTES_PER_WORD];
817 unsigned char f2_word3[BYTES_PER_WORD];
818 unsigned char f2_word4[BYTES_PER_WORD];
818 unsigned char f2_word4[BYTES_PER_WORD];
819 } fx;
819 } fx;
820 unsigned char raw[ BYTES_PER_MASKS_SET ];
820 unsigned char raw[ BYTES_PER_MASKS_SET ];
821 } sy_lfr_fbins;
821 } sy_lfr_fbins;
822
822
823 // PAS FILTER PARAMETERS
823 // PAS FILTER PARAMETERS
824 unsigned char pa_rpw_spare8_2;
824 unsigned char pa_rpw_spare8_2;
825 unsigned char spare_sy_lfr_pas_filter_enabled;
825 unsigned char spare_sy_lfr_pas_filter_enabled;
826 unsigned char sy_lfr_pas_filter_modulus;
826 unsigned char sy_lfr_pas_filter_modulus;
827 unsigned char sy_lfr_pas_filter_tbad[PARAM_4_BYTES];
827 unsigned char sy_lfr_pas_filter_tbad[PARAM_4_BYTES];
828 unsigned char sy_lfr_pas_filter_offset;
828 unsigned char sy_lfr_pas_filter_offset;
829 unsigned char sy_lfr_pas_filter_shift[PARAM_4_BYTES];
829 unsigned char sy_lfr_pas_filter_shift[PARAM_4_BYTES];
830 unsigned char sy_lfr_sc_rw_delta_f[PARAM_4_BYTES];
830 unsigned char sy_lfr_sc_rw_delta_f[PARAM_4_BYTES];
831
831
832 // LFR_RW_MASK
832 // LFR_RW_MASK
833 union{
833 union{
834 struct{
834 struct{
835 unsigned char f0_word1[BYTES_PER_WORD];
835 unsigned char f0_word1[BYTES_PER_WORD];
836 unsigned char f0_word2[BYTES_PER_WORD];
836 unsigned char f0_word2[BYTES_PER_WORD];
837 unsigned char f0_word3[BYTES_PER_WORD];
837 unsigned char f0_word3[BYTES_PER_WORD];
838 unsigned char f0_word4[BYTES_PER_WORD];
838 unsigned char f0_word4[BYTES_PER_WORD];
839 // mask F1
839 // mask F1
840 unsigned char f1_word1[BYTES_PER_WORD];
840 unsigned char f1_word1[BYTES_PER_WORD];
841 unsigned char f1_word2[BYTES_PER_WORD];
841 unsigned char f1_word2[BYTES_PER_WORD];
842 unsigned char f1_word3[BYTES_PER_WORD];
842 unsigned char f1_word3[BYTES_PER_WORD];
843 unsigned char f1_word4[BYTES_PER_WORD];
843 unsigned char f1_word4[BYTES_PER_WORD];
844 // mask F2
844 // mask F2
845 unsigned char f2_word1[BYTES_PER_WORD];
845 unsigned char f2_word1[BYTES_PER_WORD];
846 unsigned char f2_word2[BYTES_PER_WORD];
846 unsigned char f2_word2[BYTES_PER_WORD];
847 unsigned char f2_word3[BYTES_PER_WORD];
847 unsigned char f2_word3[BYTES_PER_WORD];
848 unsigned char f2_word4[BYTES_PER_WORD];
848 unsigned char f2_word4[BYTES_PER_WORD];
849 } fx;
849 } fx;
850 unsigned char raw[ BYTES_PER_MASKS_SET ];
850 unsigned char raw[ BYTES_PER_MASKS_SET ];
851 } sy_lfr_rw_mask;
851 } sy_lfr_rw_mask;
852
852
853 // SPARE
853 // SPARE
854 unsigned char pa_rpw_spare8_3;
854 unsigned char pa_rpw_spare8_3;
855 } Packet_TM_LFR_PARAMETER_DUMP_t;
855 } Packet_TM_LFR_PARAMETER_DUMP_t;
856
856
857 //**************************
857 //**************************
858 //**************************
858 //**************************
859 // TM_LFR_KCOEFFICIENTS_DUMP
859 // TM_LFR_KCOEFFICIENTS_DUMP
860
860
861 #define KCOEFF_BLK_NR_PKT1 30
861 #define KCOEFF_BLK_NR_PKT1 30
862 #define KCOEFF_BLK_NR_PKT2 6
862 #define KCOEFF_BLK_NR_PKT2 6
863 #define KCOEFF_BLK_SIZE 130
863 #define KCOEFF_BLK_SIZE 130
864 #define KCOEFF_PKTCNT 2
864 #define KCOEFF_PKTCNT 2
865 #define PKTNR_1 1
865 #define PKTNR_1 1
866 #define PKTNR_2 2
866 #define PKTNR_2 2
867
867
868 typedef struct {
868 typedef struct {
869 unsigned char targetLogicalAddress;
869 unsigned char targetLogicalAddress;
870 unsigned char protocolIdentifier;
870 unsigned char protocolIdentifier;
871 unsigned char reserved;
871 unsigned char reserved;
872 unsigned char userApplication;
872 unsigned char userApplication;
873 unsigned char packetID[BYTES_PER_PACKETID];
873 unsigned char packetID[BYTES_PER_PACKETID];
874 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
874 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
875 unsigned char packetLength[BYTES_PER_PKT_LEN];
875 unsigned char packetLength[BYTES_PER_PKT_LEN];
876 // DATA FIELD HEADER
876 // DATA FIELD HEADER
877 unsigned char spare1_pusVersion_spare2;
877 unsigned char spare1_pusVersion_spare2;
878 unsigned char serviceType;
878 unsigned char serviceType;
879 unsigned char serviceSubType;
879 unsigned char serviceSubType;
880 unsigned char destinationID;
880 unsigned char destinationID;
881 unsigned char time[BYTES_PER_TIME];
881 unsigned char time[BYTES_PER_TIME];
882 unsigned char sid;
882 unsigned char sid;
883 unsigned char pkt_cnt;
883 unsigned char pkt_cnt;
884 unsigned char pkt_nr;
884 unsigned char pkt_nr;
885 unsigned char blk_nr;
885 unsigned char blk_nr;
886
886
887 //******************
887 //******************
888 // SOURCE DATA repeated N times with N in [0 .. PA_LFR_KCOEFF_BLK_NR]
888 // SOURCE DATA repeated N times with N in [0 .. PA_LFR_KCOEFF_BLK_NR]
889 unsigned char kcoeff_blks[3900]; // one blk is 2 + 4 * 32 = 130 bytes, 30 blks max in one packet (30 * 130 = 3900)
889 unsigned char kcoeff_blks[3900]; // one blk is 2 + 4 * 32 = 130 bytes, 30 blks max in one packet (30 * 130 = 3900)
890
890
891 } Packet_TM_LFR_KCOEFFICIENTS_DUMP_t;
891 } Packet_TM_LFR_KCOEFFICIENTS_DUMP_t;
892
892
893 #endif // CCSDS_TYPES_H_INCLUDED
893 #endif // CCSDS_TYPES_H_INCLUDED
General Comments 0
You need to be logged in to leave comments. Login now