##// END OF EJS Templates
sync
paul -
r17:f249a97cc084 default
parent child
Show More
@@ -1,735 +1,737
1 1 #ifndef CCSDS_TYPES_H_INCLUDED
2 2 #define CCSDS_TYPES_H_INCLUDED
3 3
4 4 #define CCSDS_PROTOCOLE_EXTRA_BYTES 4
5 5 #define CCSDS_TC_TM_PACKET_OFFSET 7
6 6 #define CCSDS_TELEMETRY_HEADER_LENGTH 16+4
7 7 #define CCSDS_TM_PKT_MAX_SIZE 4412
8 8 #define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4
9 9 #define CCSDS_TC_PKT_MAX_SIZE 256
10 10 #define CCSDS_TC_PKT_MIN_SIZE 16
11 11 #define CCSDS_PROCESS_ID 76
12 12 #define CCSDS_PACKET_CATEGORY 12
13 13 #define CCSDS_NODE_ADDRESS 0xfe
14 14 #define CCSDS_USER_APP 0x00
15 15
16 16 #define DEFAULT_SPARE1_PUSVERSION_SPARE2 0x10
17 17 #define DEFAULT_RESERVED 0x00
18 18 #define DEFAULT_HKBIA 0x1e // 0001 1110
19 19
20 20 // PACKET ID
21 21 #define APID_TM_TC_EXE 0x0cc1 // PID 76 CAT 1
22 22 #define APID_TM_HK 0x0cc4 // PID 76 CAT 4
23 23 #define APID_TM_SCIENCE_NORMAL_BURST 0x0ccc // PID 76 CAT 12
24 24 #define APID_TM_SCIENCE_SBM1_SBM2 0x0cfc // PID 79 CAT 12
25 25 #define APID_TM_PARAMETER_DUMP 0x0cc6 // PID 76 CAT 6
26 26 #define APID_TM_KCOEFFICIENTS_DUMP 0x0cc6 // PID 76 CAT 6
27 27
28 28 // PACKET SEQUENCE CONTROL
29 29 #define TM_PACKET_SEQ_CTRL_CONTINUATION 0x00 // [0000 0000]
30 30 #define TM_PACKET_SEQ_CTRL_FIRST 0x40 // [0100 0000]
31 31 #define TM_PACKET_SEQ_CTRL_LAST 0x80 // [1000 0000]
32 32 #define TM_PACKET_SEQ_CTRL_STANDALONE 0xc0 // [1100 0000]
33 33 #define TM_PACKET_SEQ_CNT_DEFAULT 0x00 // [0000 0000]
34 34
35 35 // DESTINATION ID
36 36 #define TM_DESTINATION_ID_GROUND 0
37 37 #define TM_DESTINATION_ID_MISSION_TIMELINE 110
38 38 #define TM_DESTINATION_ID_TC_SEQUENCES 111
39 39 #define TM_DESTINATION_ID_RECOVERY_ACTION_COMMAND 112
40 40 #define TM_DESTINATION_ID_BACKUP_MISSION_TIMELINE 113
41 41 #define TM_DESTINATION_ID_DIRECT_CMD 120
42 42 #define TM_DESTINATION_ID_SPARE_GRD_SRC1 121
43 43 #define TM_DESTINATION_ID_SPARE_GRD_SRC2 122
44 44 #define TM_DESTINATION_ID_OBCP 15
45 45 #define TM_DESTINATION_ID_SYSTEM_CONTROL 14
46 46 #define TM_DESTINATION_ID_AOCS 11
47 47
48 48 //*********************************************************
49 49 //*** /!\ change CCSDS_DESTINATION_ID before flight /!\ ***
50 50 //*********************************************************
51 51 #ifdef LPP_DPU_DESTID
52 52 #define CCSDS_DESTINATION_ID 32
53 53 #else
54 54 #define CCSDS_DESTINATION_ID 0x01
55 55 #endif
56 56 #define CCSDS_PROTOCOLE_ID 0x02
57 57 #define CCSDS_RESERVED 0x00
58 58 #define CCSDS_USER_APP 0x00
59 59
60 60 #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
61 61 #define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
62 62 #define SIZE_HK_PARAMETERS 112
63 63
64 64 // TC TYPES
65 65 #define TC_TYPE_GEN 181
66 66 #define TC_TYPE_TIME 9
67 67
68 68 // TC SUBTYPES
69 69 #define TC_SUBTYPE_RESET 1
70 70 #define TC_SUBTYPE_LOAD_COMM 11
71 71 #define TC_SUBTYPE_LOAD_NORM 13
72 72 #define TC_SUBTYPE_LOAD_BURST 19
73 73 #define TC_SUBTYPE_LOAD_SBM1 25
74 74 #define TC_SUBTYPE_LOAD_SBM2 27
75 75 #define TC_SUBTYPE_DUMP 31
76 76 #define TC_SUBTYPE_ENTER 41
77 77 #define TC_SUBTYPE_UPDT_INFO 51
78 78 #define TC_SUBTYPE_EN_CAL 61
79 79 #define TC_SUBTYPE_DIS_CAL 63
80 80 #define TC_SUBTYPE_LOAD_K 93
81 81 #define TC_SUBTYPE_DUMP_K 95
82 82 #define TC_SUBTYPE_LOAD_FBINS 91
83 83 #define TC_SUBTYPE_UPDT_TIME 129
84 84
85 85 // TC LEN
86 86 #define TC_LEN_RESET 12
87 87 #define TC_LEN_LOAD_COMM 14
88 88 #define TC_LEN_LOAD_NORM 22
89 89 #define TC_LEN_LOAD_BURST 14
90 90 #define TC_LEN_LOAD_SBM1 14
91 91 #define TC_LEN_LOAD_SBM2 14
92 92 #define TC_LEN_DUMP 12
93 93 #define TC_LEN_ENTER 20
94 94 #define TC_LEN_UPDT_INFO 46
95 95 #define TC_LEN_EN_CAL 12
96 96 #define TC_LEN_DIS_CAL 12
97 97 #define TC_LEN_LOAD_K 142
98 98 #define TC_LEN_DUMP_K 12
99 99 #define TC_LEN_LOAD_FBINS 60
100 100 #define TC_LEN_UPDT_TIME 18
101 101
102 102 // PACKET CODES
103 103 #define TM_CODE_K_DUMP 0xb5600b00 // 181 (0xb5) ** 96 (0x60) ** 11 (0x0b) ** 0 (0x00)
104 104
105 105 // TM TYPES
106 106 #define TM_TYPE_TC_EXE 1
107 107 #define TM_TYPE_HK 3
108 108 #define TM_TYPE_LFR_SCIENCE 21
109 109 #define TM_TYPE_PARAMETER_DUMP 181
110 110 #define TM_TYPE_K_DUMP 181
111 111
112 112 // TM SUBTYPES
113 113 #define TM_SUBTYPE_EXE_OK 7
114 114 #define TM_SUBTYPE_EXE_NOK 8
115 115 #define TM_SUBTYPE_HK 25
116 116 #define TM_SUBTYPE_LFR_SCIENCE_3 3 // TM packets with fixed size
117 117 #define TM_SUBTYPE_LFR_SCIENCE_6 6 // TM packets with variable size
118 118 #define TM_SUBTYPE_PARAMETER_DUMP 32
119 119 #define TM_SUBTYPE_K_DUMP 96
120 120
121 121 // FAILURE CODES
122 122 #define ILLEGAL_APID 0
123 123 #define WRONG_LEN_PKT 1
124 124 #define INCOR_CHECKSUM 2
125 125 #define ILL_TYPE 3
126 126 #define ILL_SUBTYPE 4
127 127 #define WRONG_APP_DATA 5 // 0x00 0x05
128 128 #define TC_NOT_EXE 42000 // 0xa4 0x10
129 129 #define WRONG_SRC_ID 42001 // 0xa4 0x11
130 130 #define FUNCT_NOT_IMPL 42002 // 0xa4 0x12
131 131 #define FAIL_DETECTED 42003 // 0xa4 0x13
132 132 #define NOT_ALLOWED 42004 // 0xa4 0x14
133 133 #define CORRUPTED 42005 // 0xa4 0x15
134 134 #define CCSDS_TM_VALID 7
135 135
136 136 // TC SID
137 137 #define SID_TC_GROUND 0
138 138 #define SID_TC_MISSION_TIMELINE 110
139 139 #define SID_TC_TC_SEQUENCES 111
140 140 #define SID_TC_RECOVERY_ACTION_CMD 112
141 141 #define SID_TC_BACKUP_MISSION_TIMELINE 113
142 142 #define SID_TC_DIRECT_CMD 120
143 143 #define SID_TC_SPARE_GRD_SRC1 121
144 144 #define SID_TC_SPARE_GRD_SRC2 122
145 145 #define SID_TC_OBCP 15
146 146 #define SID_TC_SYSTEM_CONTROL 14
147 147 #define SID_TC_AOCS 11
148 148 #define SID_TC_RPW_INTERNAL 254
149 149
150 150 enum apid_destid{
151 151 GROUND,
152 152 MISSION_TIMELINE,
153 153 TC_SEQUENCES,
154 154 RECOVERY_ACTION_CMD,
155 155 BACKUP_MISSION_TIMELINE,
156 156 DIRECT_CMD,
157 157 SPARE_GRD_SRC1,
158 158 SPARE_GRD_SRC2,
159 159 OBCP,
160 160 SYSTEM_CONTROL,
161 161 AOCS,
162 162 RPW_INTERNAL
163 163 };
164 164 // SEQUENCE COUNTERS
165 165 #define SEQ_CNT_MAX 16383
166 166 #define SEQ_CNT_NB_DEST_ID 12
167 167
168 168 // TM SID
169 169 #define SID_HK 1
170 170
171 171 #define SID_NORM_SWF_F0 3
172 172 #define SID_NORM_SWF_F1 4
173 173 #define SID_NORM_SWF_F2 5
174 174 #define SID_NORM_CWF_F3 1
175 175 #define SID_BURST_CWF_F2 2
176 176 #define SID_SBM1_CWF_F1 24
177 177 #define SID_SBM2_CWF_F2 25
178 178 #define SID_NORM_ASM_F0 11
179 179 #define SID_NORM_ASM_F1 12
180 180 #define SID_NORM_ASM_F2 13
181 181 #define SID_NORM_BP1_F0 14
182 182 #define SID_NORM_BP1_F1 15
183 183 #define SID_NORM_BP1_F2 16
184 184 #define SID_NORM_BP2_F0 19
185 185 #define SID_NORM_BP2_F1 20
186 186 #define SID_NORM_BP2_F2 21
187 187 #define SID_BURST_BP1_F0 17
188 188 #define SID_BURST_BP2_F0 22
189 189 #define SID_BURST_BP1_F1 18
190 190 #define SID_BURST_BP2_F1 23
191 191 #define SID_SBM1_BP1_F0 28
192 192 #define SID_SBM1_BP2_F0 31
193 193 #define SID_SBM2_BP1_F0 29
194 194 #define SID_SBM2_BP2_F0 32
195 195 #define SID_SBM2_BP1_F1 30
196 196 #define SID_SBM2_BP2_F1 33
197 197 #define SID_NORM_CWF_LONG_F3 34
198 198
199 199 #define SID_PARAMETER_DUMP 10
200 200 #define SID_K_DUMP 11
201 201
202 202 // HEADER_LENGTH
203 203 #define TM_HEADER_LEN 16
204 204 #define HEADER_LENGTH_TM_LFR_SCIENCE_ASM 28
205 205 // PACKET_LENGTH
206 206 #define PACKET_LENGTH_TC_EXE_SUCCESS (20 - CCSDS_TC_TM_PACKET_OFFSET)
207 207 #define PACKET_LENGTH_TC_EXE_INCONSISTENT (26 - CCSDS_TC_TM_PACKET_OFFSET)
208 208 #define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE (26 - CCSDS_TC_TM_PACKET_OFFSET)
209 209 #define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED (24 - CCSDS_TC_TM_PACKET_OFFSET)
210 210 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
211 211 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
212 212 #define PACKET_LENGTH_HK (136 - CCSDS_TC_TM_PACKET_OFFSET)
213 213 #define PACKET_LENGTH_PARAMETER_DUMP (84 - CCSDS_TC_TM_PACKET_OFFSET)
214 214 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
215 215 // SCIENCE ASM
216 216 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0 (3230 - CCSDS_TC_TM_PACKET_OFFSET) // 32 * 25 * 4 + 30 => 88 bins (32 + 32 + 24 ), 3 packets
217 217 #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1 (3630 - CCSDS_TC_TM_PACKET_OFFSET) // 52 * 25 * 2 + 30 => 104 bins (36 + 36 + 32 ), 3 packets
218 218 #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
219 219 // SCIENCE NORM
220 220 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F0 (150 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 11 + 29 (1 spare byte in the header)
221 221 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F1 (172 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 11 + 29 (1 spare byte in the header)
222 222 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F2 (160 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 11 + 28
223 223 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F0 (358 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 30 + 28
224 224 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F1 (418 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 30 + 28
225 225 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F2 (388 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 30 + 28
226 226 // SCIENCE SBM
227 227 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 (270 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 11 + 28
228 228 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 (688 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 30 + 28
229 229 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 (314 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 11 + 28
230 230 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 (808 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 30 + 28
231 231
232 232 #define PACKET_LENGTH_DELTA 11 // 7 + 4
233 233
234 234 #define SPARE1_PUSVERSION_SPARE2 0x10
235 235
236 236 // R3
237 237 // one snapshot = 2048 samples = 6 packets * 304 + 224
238 238 #define TM_LEN_SCI_SWF_304 (3678 - CCSDS_TC_TM_PACKET_OFFSET) // 304 * 12 + 30
239 239 #define TM_LEN_SCI_SWF_224 (2718 - CCSDS_TC_TM_PACKET_OFFSET) // 224 * 12 + 30
240 240 // one continuous buffer = 2688 samples = 8 packets * 336
241 241 #define TM_LEN_SCI_CWF_336 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 336 * 12 + 28
242 242 #define TM_LEN_SCI_CWF_672 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 672 * 6 + 28
243 243 //
244 244 #define DEFAULT_PKTCNT 0x07
245 245 #define BLK_NR_304 0x0130
246 246 #define BLK_NR_224 0x00e0
247 247 #define BLK_NR_CWF 0x0150 // 336
248 248 #define BLK_NR_CWF_SHORT_F3 0x02a0 // 672
249 249
250 250 enum TM_TYPE{
251 251 TM_LFR_TC_EXE_OK,
252 252 TM_LFR_TC_EXE_ERR,
253 253 TM_LFR_HK,
254 254 TM_LFR_SCI,
255 255 TM_LFR_SCI_SBM,
256 256 TM_LFR_PAR_DUMP
257 257 };
258 258
259 259 typedef struct {
260 260 unsigned char targetLogicalAddress;
261 261 unsigned char protocolIdentifier;
262 262 unsigned char reserved;
263 263 unsigned char userApplication;
264 264 // PACKET HEADER
265 265 unsigned char packetID[2];
266 266 unsigned char packetSequenceControl[2];
267 267 unsigned char packetLength[2];
268 268 // DATA FIELD HEADER
269 269 unsigned char spare1_pusVersion_spare2;
270 270 unsigned char serviceType;
271 271 unsigned char serviceSubType;
272 272 unsigned char destinationID;
273 273 unsigned char time[6];
274 274 //
275 275 unsigned char telecommand_pkt_id[2];
276 276 unsigned char pkt_seq_control[2];
277 277 } Packet_TM_LFR_TC_EXE_SUCCESS_t;
278 278
279 279 typedef struct {
280 280 unsigned char targetLogicalAddress;
281 281 unsigned char protocolIdentifier;
282 282 unsigned char reserved;
283 283 unsigned char userApplication;
284 284 // PACKET HEADER
285 285 unsigned char packetID[2];
286 286 unsigned char packetSequenceControl[2];
287 287 unsigned char packetLength[2];
288 288 // DATA FIELD HEADER
289 289 unsigned char spare1_pusVersion_spare2;
290 290 unsigned char serviceType;
291 291 unsigned char serviceSubType;
292 292 unsigned char destinationID;
293 293 unsigned char time[6];
294 294 //
295 295 unsigned char tc_failure_code[2];
296 296 unsigned char telecommand_pkt_id[2];
297 297 unsigned char pkt_seq_control[2];
298 298 unsigned char tc_service;
299 299 unsigned char tc_subtype;
300 300 unsigned char byte_position;
301 301 unsigned char rcv_value;
302 302 } Packet_TM_LFR_TC_EXE_INCONSISTENT_t;
303 303
304 304 typedef struct {
305 305 unsigned char targetLogicalAddress;
306 306 unsigned char protocolIdentifier;
307 307 unsigned char reserved;
308 308 unsigned char userApplication;
309 309 // PACKET HEADER
310 310 unsigned char packetID[2];
311 311 unsigned char packetSequenceControl[2];
312 312 unsigned char packetLength[2];
313 313 // DATA FIELD HEADER
314 314 unsigned char spare1_pusVersion_spare2;
315 315 unsigned char serviceType;
316 316 unsigned char serviceSubType;
317 317 unsigned char destinationID;
318 318 unsigned char time[6];
319 319 //
320 320 unsigned char tc_failure_code[2];
321 321 unsigned char telecommand_pkt_id[2];
322 322 unsigned char pkt_seq_control[2];
323 323 unsigned char tc_service;
324 324 unsigned char tc_subtype;
325 325 unsigned char lfr_status_word[2];
326 326 } Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t;
327 327
328 328 typedef struct {
329 329 unsigned char targetLogicalAddress;
330 330 unsigned char protocolIdentifier;
331 331 unsigned char reserved;
332 332 unsigned char userApplication;
333 333 // PACKET HEADER
334 334 unsigned char packetID[2];
335 335 unsigned char packetSequenceControl[2];
336 336 unsigned char packetLength[2];
337 337 // DATA FIELD HEADER
338 338 unsigned char spare1_pusVersion_spare2;
339 339 unsigned char serviceType;
340 340 unsigned char serviceSubType;
341 341 unsigned char destinationID;
342 342 unsigned char time[6];
343 343 //
344 344 unsigned char tc_failure_code[2];
345 345 unsigned char telecommand_pkt_id[2];
346 346 unsigned char pkt_seq_control[2];
347 347 unsigned char tc_service;
348 348 unsigned char tc_subtype;
349 349 } Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t;
350 350
351 351 typedef struct {
352 352 unsigned char targetLogicalAddress;
353 353 unsigned char protocolIdentifier;
354 354 unsigned char reserved;
355 355 unsigned char userApplication;
356 356 // PACKET HEADER
357 357 unsigned char packetID[2];
358 358 unsigned char packetSequenceControl[2];
359 359 unsigned char packetLength[2];
360 360 // DATA FIELD HEADER
361 361 unsigned char spare1_pusVersion_spare2;
362 362 unsigned char serviceType;
363 363 unsigned char serviceSubType;
364 364 unsigned char destinationID;
365 365 unsigned char time[6];
366 366 //
367 367 unsigned char tc_failure_code[2];
368 368 unsigned char telecommand_pkt_id[2];
369 369 unsigned char pkt_seq_control[2];
370 370 unsigned char tc_service;
371 371 unsigned char tc_subtype;
372 372 } Packet_TM_LFR_TC_EXE_ERROR_t;
373 373
374 374 typedef struct {
375 375 unsigned char targetLogicalAddress;
376 376 unsigned char protocolIdentifier;
377 377 unsigned char reserved;
378 378 unsigned char userApplication;
379 379 // PACKET HEADER
380 380 unsigned char packetID[2];
381 381 unsigned char packetSequenceControl[2];
382 382 unsigned char packetLength[2];
383 383 // DATA FIELD HEADER
384 384 unsigned char spare1_pusVersion_spare2;
385 385 unsigned char serviceType;
386 386 unsigned char serviceSubType;
387 387 unsigned char destinationID;
388 388 unsigned char time[6];
389 389 //
390 390 unsigned char tc_failure_code[2];
391 391 unsigned char telecommand_pkt_id[2];
392 392 unsigned char pkt_seq_control[2];
393 393 unsigned char tc_service;
394 394 unsigned char tc_subtype;
395 395 unsigned char pkt_len_rcv_value[2];
396 396 unsigned char pkt_datafieldsize_cnt[2];
397 397 unsigned char rcv_crc[2];
398 398 unsigned char computed_crc[2];
399 399 } Packet_TM_LFR_TC_EXE_CORRUPTED_t;
400 400
401 401 typedef struct {
402 402 unsigned char targetLogicalAddress;
403 403 unsigned char protocolIdentifier;
404 404 unsigned char reserved;
405 405 unsigned char userApplication;
406 406 unsigned char packetID[2];
407 407 unsigned char packetSequenceControl[2];
408 408 unsigned char packetLength[2];
409 409 // DATA FIELD HEADER
410 410 unsigned char spare1_pusVersion_spare2;
411 411 unsigned char serviceType;
412 412 unsigned char serviceSubType;
413 413 unsigned char destinationID;
414 414 unsigned char time[6];
415 415 // AUXILIARY HEADER
416 416 unsigned char sid;
417 417 unsigned char hkBIA;
418 418 unsigned char sy_lfr_common_parameters_spare;
419 419 unsigned char sy_lfr_common_parameters;
420 420 unsigned char pktCnt;
421 421 unsigned char pktNr;
422 422 unsigned char acquisitionTime[6];
423 423 unsigned char blkNr[2];
424 424 } Header_TM_LFR_SCIENCE_SWF_t;
425 425
426 426 typedef struct {
427 427 unsigned char targetLogicalAddress;
428 428 unsigned char protocolIdentifier;
429 429 unsigned char reserved;
430 430 unsigned char userApplication;
431 431 unsigned char packetID[2];
432 432 unsigned char packetSequenceControl[2];
433 433 unsigned char packetLength[2];
434 434 // DATA FIELD HEADER
435 435 unsigned char spare1_pusVersion_spare2;
436 436 unsigned char serviceType;
437 437 unsigned char serviceSubType;
438 438 unsigned char destinationID;
439 439 unsigned char time[6];
440 440 // AUXILIARY DATA HEADER
441 441 unsigned char sid;
442 442 unsigned char hkBIA;
443 443 unsigned char sy_lfr_common_parameters_spare;
444 444 unsigned char sy_lfr_common_parameters;
445 445 unsigned char acquisitionTime[6];
446 446 unsigned char blkNr[2];
447 447 } Header_TM_LFR_SCIENCE_CWF_t;
448 448
449 449 typedef struct {
450 450 unsigned char targetLogicalAddress;
451 451 unsigned char protocolIdentifier;
452 452 unsigned char reserved;
453 453 unsigned char userApplication;
454 454 unsigned char packetID[2];
455 455 unsigned char packetSequenceControl[2];
456 456 unsigned char packetLength[2];
457 457 // DATA FIELD HEADER
458 458 unsigned char spare1_pusVersion_spare2;
459 459 unsigned char serviceType;
460 460 unsigned char serviceSubType;
461 461 unsigned char destinationID;
462 462 unsigned char time[6];
463 463 // AUXILIARY HEADER
464 464 unsigned char sid;
465 465 unsigned char biaStatusInfo;
466 466 unsigned char sy_lfr_common_parameters_spare;
467 467 unsigned char sy_lfr_common_parameters;
468 468 unsigned char pa_lfr_pkt_cnt_asm;
469 469 unsigned char pa_lfr_pkt_nr_asm;
470 470 unsigned char acquisitionTime[6];
471 471 unsigned char pa_lfr_asm_blk_nr[2];
472 472 } Header_TM_LFR_SCIENCE_ASM_t;
473 473
474 474 typedef struct {
475 475 unsigned char targetLogicalAddress;
476 476 unsigned char protocolIdentifier;
477 477 unsigned char reserved;
478 478 unsigned char userApplication;
479 479 unsigned char packetID[2];
480 480 unsigned char packetSequenceControl[2];
481 481 unsigned char packetLength[2];
482 482 // DATA FIELD HEADER
483 483 unsigned char spare1_pusVersion_spare2;
484 484 unsigned char serviceType;
485 485 unsigned char serviceSubType;
486 486 unsigned char destinationID;
487 487 unsigned char time[6];
488 488 // AUXILIARY HEADER
489 489 unsigned char sid;
490 490 unsigned char biaStatusInfo;
491 491 unsigned char sy_lfr_common_parameters_spare;
492 492 unsigned char sy_lfr_common_parameters;
493 493 unsigned char acquisitionTime[6];
494 494 unsigned char source_data_spare;
495 495 unsigned char pa_lfr_bp_blk_nr[2];
496 496 } Header_TM_LFR_SCIENCE_BP_with_spare_t;
497 497
498 498 typedef struct {
499 499 unsigned char targetLogicalAddress;
500 500 unsigned char protocolIdentifier;
501 501 unsigned char reserved;
502 502 unsigned char userApplication;
503 503 unsigned char packetID[2];
504 504 unsigned char packetSequenceControl[2];
505 505 unsigned char packetLength[2];
506 506 // DATA FIELD HEADER
507 507 unsigned char spare1_pusVersion_spare2;
508 508 unsigned char serviceType;
509 509 unsigned char serviceSubType;
510 510 unsigned char destinationID;
511 511 unsigned char time[6];
512 512 // AUXILIARY HEADER
513 513 unsigned char sid;
514 514 unsigned char biaStatusInfo;
515 515 unsigned char sy_lfr_common_parameters_spare;
516 516 unsigned char sy_lfr_common_parameters;
517 517 unsigned char acquisitionTime[6];
518 518 unsigned char pa_lfr_bp_blk_nr[2];
519 519 } Header_TM_LFR_SCIENCE_BP_t;
520 520
521 521 typedef struct {
522 522 //targetLogicalAddress is removed by the grspw module
523 523 unsigned char protocolIdentifier;
524 524 unsigned char reserved;
525 525 unsigned char userApplication;
526 526 unsigned char packetID[2];
527 527 unsigned char packetSequenceControl[2];
528 528 unsigned char packetLength[2];
529 529 // DATA FIELD HEADER
530 530 unsigned char headerFlag_pusVersion_Ack;
531 531 unsigned char serviceType;
532 532 unsigned char serviceSubType;
533 533 unsigned char sourceID;
534 534 unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
535 535 } ccsdsTelecommandPacket_t;
536 536
537 537 typedef struct {
538 538 unsigned char targetLogicalAddress;
539 539 unsigned char protocolIdentifier;
540 540 unsigned char reserved;
541 541 unsigned char userApplication;
542 542 unsigned char packetID[2];
543 543 unsigned char packetSequenceControl[2];
544 544 unsigned char packetLength[2];
545 545 unsigned char spare1_pusVersion_spare2;
546 546 unsigned char serviceType;
547 547 unsigned char serviceSubType;
548 548 unsigned char destinationID;
549 549 unsigned char time[6];
550 550 unsigned char sid;
551 551
552 552 //**************
553 553 // HK PARAMETERS
554 554 unsigned char lfr_status_word[2];
555 555 unsigned char lfr_sw_version[4];
556 556 unsigned char lfr_fpga_version[3];
557 557 // ressource statistics
558 558 unsigned char hk_lfr_cpu_load;
559 559 unsigned char hk_lfr_cpu_load_max;
560 560 unsigned char hk_lfr_cpu_load_aver;
561 561 unsigned char hk_lfr_q_sd_fifo_size_max;
562 562 unsigned char hk_lfr_q_sd_fifo_size;
563 563 unsigned char hk_lfr_q_rv_fifo_size_max;
564 564 unsigned char hk_lfr_q_rv_fifo_size;
565 565 unsigned char hk_lfr_q_p0_fifo_size_max;
566 566 unsigned char hk_lfr_q_p0_fifo_size;
567 567 unsigned char hk_lfr_q_p1_fifo_size_max;
568 568 unsigned char hk_lfr_q_p1_fifo_size;
569 569 unsigned char hk_lfr_q_p2_fifo_size_max;
570 570 unsigned char hk_lfr_q_p2_fifo_size;
571 571 // tc statistics
572 572 unsigned char hk_lfr_update_info_tc_cnt[2];
573 573 unsigned char hk_lfr_update_time_tc_cnt[2];
574 574 unsigned char hk_lfr_exe_tc_cnt[2];
575 575 unsigned char hk_lfr_rej_tc_cnt[2];
576 576 unsigned char hk_lfr_last_exe_tc_id[2];
577 577 unsigned char hk_lfr_last_exe_tc_type[2];
578 578 unsigned char hk_lfr_last_exe_tc_subtype[2];
579 579 unsigned char hk_lfr_last_exe_tc_time[6];
580 580 unsigned char hk_lfr_last_rej_tc_id[2];
581 581 unsigned char hk_lfr_last_rej_tc_type[2];
582 582 unsigned char hk_lfr_last_rej_tc_subtype[2];
583 583 unsigned char hk_lfr_last_rej_tc_time[6];
584 584 // anomaly statistics
585 585 unsigned char hk_lfr_le_cnt[2];
586 586 unsigned char hk_lfr_me_cnt[2];
587 587 unsigned char hk_lfr_he_cnt[2];
588 588 unsigned char hk_lfr_last_er_rid[2];
589 589 unsigned char hk_lfr_last_er_code;
590 590 unsigned char hk_lfr_last_er_time[6];
591 591 // vhdl_blk_status
592 592 unsigned char hk_lfr_vhdl_aa_sm;
593 593 unsigned char hk_lfr_vhdl_fft_sr;
594 594 unsigned char hk_lfr_vhdl_cic_hk;
595 595 unsigned char hk_lfr_vhdl_iir_cal;
596 596 // spacewire_if_statistics
597 597 unsigned char hk_lfr_dpu_spw_pkt_rcv_cnt[2];
598 598 unsigned char hk_lfr_dpu_spw_pkt_sent_cnt[2];
599 599 unsigned char hk_lfr_dpu_spw_tick_out_cnt;
600 600 unsigned char hk_lfr_dpu_spw_last_timc;
601 601 // ahb error statistics
602 602 unsigned char hk_lfr_last_fail_addr[4];
603 603 // temperatures
604 604 unsigned char hk_lfr_temp_scm[2];
605 605 unsigned char hk_lfr_temp_pcb[2];
606 606 unsigned char hk_lfr_temp_fpga[2];
607 607 // spacecraft potential
608 608 unsigned char hk_lfr_sc_v_f3[2];
609 609 unsigned char hk_lfr_sc_e1_f3[2];
610 610 unsigned char hk_lfr_sc_e2_f3[2];
611 611 // lfr common parameters
612 612 unsigned char sy_lfr_common_parameters_spare;
613 613 unsigned char sy_lfr_common_parameters;
614 614 // error counters
615 615 unsigned char hk_lfr_dpu_spw_parity;
616 616 unsigned char hk_lfr_dpu_spw_disconnect;
617 617 unsigned char hk_lfr_dpu_spw_escape;
618 618 unsigned char hk_lfr_dpu_spw_credit;
619 619 unsigned char hk_lfr_dpu_spw_write_sync;
620 620 unsigned char hk_lfr_dpu_spw_rx_ahb;
621 621 unsigned char hk_lfr_dpu_spw_tx_ahb;
622 622 unsigned char hk_lfr_dpu_spw_early_eop;
623 623 unsigned char hk_lfr_dpu_spw_invalid_addr;
624 624 unsigned char hk_lfr_dpu_spw_eep;
625 625 unsigned char hk_lfr_dpu_spw_rx_too_big;
626 626 // timecode
627 627 unsigned char hk_lfr_timecode_erroneous;
628 628 unsigned char hk_lfr_timecode_missing;
629 629 unsigned char hk_lfr_timecode_invalid;
630 630 // time
631 631 unsigned char hk_lfr_time_timecode_it;
632 632 unsigned char hk_lfr_time_not_synchro;
633 633 unsigned char hk_lfr_time_timecode_ctr;
634 634 // hk_lfr_buffer_dpu_
635 635 unsigned char hk_lfr_buffer_dpu_tc_fifo;
636 636 unsigned char hk_lfr_buffer_dpu_tm_fifo;
637 637 // hk_lfr_ahb_
638 638 unsigned char hk_lfr_ahb_correctable;
639 639 unsigned char hk_lfr_ahb_uncorrectable;
640 640 // spare
641 641 unsigned char parameters_spare;
642 642 } Packet_TM_LFR_HK_t;
643 643
644 644 typedef struct {
645 645 unsigned char targetLogicalAddress;
646 646 unsigned char protocolIdentifier;
647 647 unsigned char reserved;
648 648 unsigned char userApplication;
649 649 unsigned char packetID[2];
650 650 unsigned char packetSequenceControl[2];
651 651 unsigned char packetLength[2];
652 652 // DATA FIELD HEADER
653 653 unsigned char spare1_pusVersion_spare2;
654 654 unsigned char serviceType;
655 655 unsigned char serviceSubType;
656 656 unsigned char destinationID;
657 657 unsigned char time[6];
658 658 unsigned char sid;
659 659
660 660 //******************
661 661 // COMMON PARAMETERS
662 662 unsigned char unused0;
663 663 unsigned char sy_lfr_common_parameters;
664 664
665 665 //******************
666 666 // NORMAL PARAMETERS
667 667 unsigned char sy_lfr_n_swf_l[2];
668 668 unsigned char sy_lfr_n_swf_p[2];
669 669 unsigned char sy_lfr_n_asm_p[2];
670 670 unsigned char sy_lfr_n_bp_p0;
671 671 unsigned char sy_lfr_n_bp_p1;
672 672 unsigned char sy_lfr_n_cwf_long_f3;
673 673 unsigned char lfr_normal_parameters_spare;
674 674
675 675 //*****************
676 676 // BURST PARAMETERS
677 677 unsigned char sy_lfr_b_bp_p0;
678 678 unsigned char sy_lfr_b_bp_p1;
679 679
680 680 //****************
681 681 // SBM1 PARAMETERS
682 682 unsigned char sy_lfr_s1_bp_p0;
683 683 unsigned char sy_lfr_s1_bp_p1;
684 684
685 685 //****************
686 686 // SBM2 PARAMETERS
687 687 unsigned char sy_lfr_s2_bp_p0;
688 688 unsigned char sy_lfr_s2_bp_p1;
689 689
690 //************
691 // FBINS MASKS
690 692 // mask F0
691 unsigned int sy_lfr_fbins_f0_word1;
692 unsigned int sy_lfr_fbins_f0_word2;
693 unsigned int sy_lfr_fbins_f0_word3;
694 unsigned int sy_lfr_fbins_f0_word4;
693 unsigned char sy_lfr_fbins_f0_word1[4];
694 unsigned char sy_lfr_fbins_f0_word2[4];
695 unsigned char sy_lfr_fbins_f0_word3[4];
696 unsigned char sy_lfr_fbins_f0_word4[4];
695 697 // mask F1
696 unsigned int sy_lfr_fbins_f1_word1;
697 unsigned int sy_lfr_fbins_f1_word2;
698 unsigned int sy_lfr_fbins_f1_word3;
699 unsigned int sy_lfr_fbins_f1_word4;
698 unsigned char sy_lfr_fbins_f1_word1[4];
699 unsigned char sy_lfr_fbins_f1_word2[4];
700 unsigned char sy_lfr_fbins_f1_word3[4];
701 unsigned char sy_lfr_fbins_f1_word4[4];
700 702 // mask F2
701 unsigned int sy_lfr_fbins_f2_word1;
702 unsigned int sy_lfr_fbins_f2_word2;
703 unsigned int sy_lfr_fbins_f2_word3;
704 unsigned int sy_lfr_fbins_f2_word4;
703 unsigned char sy_lfr_fbins_f2_word1[4];
704 unsigned char sy_lfr_fbins_f2_word2[4];
705 unsigned char sy_lfr_fbins_f2_word3[4];
706 unsigned char sy_lfr_fbins_f2_word4[4];
705 707
706 708 // SPARE
707 709 unsigned char source_data_spare;
708 710 } Packet_TM_LFR_PARAMETER_DUMP_t;
709 711
710 712 typedef struct {
711 713 unsigned char targetLogicalAddress;
712 714 unsigned char protocolIdentifier;
713 715 unsigned char reserved;
714 716 unsigned char userApplication;
715 717 unsigned char packetID[2];
716 718 unsigned char packetSequenceControl[2];
717 719 unsigned char packetLength[2];
718 720 // DATA FIELD HEADER
719 721 unsigned char spare1_pusVersion_spare2;
720 722 unsigned char serviceType;
721 723 unsigned char serviceSubType;
722 724 unsigned char destinationID;
723 725 unsigned char time[6];
724 726 unsigned char sid;
725 727 unsigned char pkt_cnt;
726 728 unsigned char pkt_nr;
727 729 unsigned char blk_nr;
728 730
729 731 //******************
730 732 // SOURCE DATA repeated N times with N in [0 .. PA_LFR_KCOEFF_BLK_NR]
731 733 unsigned char kcoeff_blks[3900]; // one blk is 2 + 4 * 32 = 130 bytes, 30 blks max in one packet (30 * 130 = 3900)
732 734
733 735 } Packet_TM_LFR_KCOEFFICIENTS_DUMP_t;
734 736
735 737 #endif // CCSDS_TYPES_H_INCLUDED
@@ -1,42 +1,56
1 1 #ifndef TM_BYTE_POSITIONS_H
2 2 #define TM_BYTE_POSITIONS_H
3 3
4 4 // SEQUENCE_CNT
5 5 #define PACKET_POS_SEQUENCE_CNT 6 // 4 + 2
6 6
7 7 // TC_LFR_LOAD_COMMON_PAR
8 8
9 9 // TC_LFR_LOAD_NORMAL_PAR
10 10 #define DATAFIELD_POS_SY_LFR_N_SWF_L 0
11 11 #define DATAFIELD_POS_SY_LFR_N_SWF_P 2
12 12 #define DATAFIELD_POS_SY_LFR_N_ASM_P 4
13 13 #define DATAFIELD_POS_SY_LFR_N_BP_P0 6
14 14 #define DATAFIELD_POS_SY_LFR_N_BP_P1 7
15 15 #define DATAFIELD_POS_SY_LFR_N_CWF_LONG_F3 8
16 16
17 17 // TC_LFR_LOAD_BURST_PAR
18 18 #define DATAFIELD_POS_SY_LFR_B_BP_P0 0
19 19 #define DATAFIELD_POS_SY_LFR_B_BP_P1 1
20 20
21 21 // TC_LFR_LOAD_SBM1_PAR
22 22 #define DATAFIELD_POS_SY_LFR_S1_BP_P0 0
23 23 #define DATAFIELD_POS_SY_LFR_S1_BP_P1 1
24 24
25 25 // TC_LFR_LOAD_SBM2_PAR
26 26 #define DATAFIELD_POS_SY_LFR_S2_BP_P0 0
27 27 #define DATAFIELD_POS_SY_LFR_S2_BP_P1 1
28 28
29 29 // TC_LFR_UPDATE_INFO
30 30 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET5 34
31 31 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET6 35
32 32
33 33 // TC_LFR_ENTER_MODE
34 34 #define BYTE_POS_CP_MODE_LFR_SET 11
35 35 #define BYTE_POS_CP_LFR_ENTER_MODE_TIME 12
36 36
37 //TC_LFR_LOAD_FBINS_MASK
38 #define DATAFIELD_POS_SY_LFR_FBINS_F0_WORD1 18 // 35 - 17
39 #define DATAFIELD_POS_SY_LFR_FBINS_F0_WORD2 22
40 #define DATAFIELD_POS_SY_LFR_FBINS_F0_WORD3 26
41 #define DATAFIELD_POS_SY_LFR_FBINS_F0_WORD4 30
42 #define DATAFIELD_POS_SY_LFR_FBINS_F1_WORD1 34
43 #define DATAFIELD_POS_SY_LFR_FBINS_F1_WORD2 38
44 #define DATAFIELD_POS_SY_LFR_FBINS_F1_WORD3 42
45 #define DATAFIELD_POS_SY_LFR_FBINS_F1_WORD4 46
46 #define DATAFIELD_POS_SY_LFR_FBINS_F2_WORD1 50
47 #define DATAFIELD_POS_SY_LFR_FBINS_F2_WORD2 54
48 #define DATAFIELD_POS_SY_LFR_FBINS_F2_WORD3 58
49 #define DATAFIELD_POS_SY_LFR_FBINS_F2_WORD4 62 // 79 - 17
50
37 51 // TC_LFR_LOAD_KCOEFFICIENTS
38 52 #define NB_BYTES_PER_FLOAT 4
39 53 #define DATAFIELD_POS_SY_LFR_KCOEFF_FREQUENCY 0 // 10 - 10
40 54 #define DATAFIELD_POS_SY_LFR_KCOEFF_1 2 // 12 - 10
41 55
42 56 #endif // TM_BYTE_POSITIONS_H
General Comments 0
You need to be logged in to leave comments. Login now