##// END OF EJS Templates
comliance to ICD 4.3
paul -
r53:5cf0bac6095f default
parent child
Show More
@@ -1,796 +1,817
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 CCSDS_PROTOCOLE_EXTRA_BYTES 4
4 #define CCSDS_PROTOCOLE_EXTRA_BYTES 4
5 #define CCSDS_TC_TM_PACKET_OFFSET 7
5 #define CCSDS_TC_TM_PACKET_OFFSET 7
6 #define CCSDS_TELEMETRY_HEADER_LENGTH 16+4
6 #define CCSDS_TELEMETRY_HEADER_LENGTH 16+4
7 #define CCSDS_TM_PKT_MAX_SIZE 4412
7 #define CCSDS_TM_PKT_MAX_SIZE 4412
8 #define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4
8 #define CCSDS_TELECOMMAND_HEADER_LENGTH 10+4
9 //#define CCSDS_TC_PKT_MAX_SIZE 256
9 //#define CCSDS_TC_PKT_MAX_SIZE 256
10 #define CCSDS_TC_PKT_MAX_SIZE 2048
10 #define CCSDS_TC_PKT_MAX_SIZE 2048
11 #define CCSDS_TC_PKT_MIN_SIZE 16
11 #define CCSDS_TC_PKT_MIN_SIZE 16
12 #define CCSDS_PROCESS_ID 76
12 #define CCSDS_PROCESS_ID 76
13 #define CCSDS_PACKET_CATEGORY 12
13 #define CCSDS_PACKET_CATEGORY 12
14 #define CCSDS_NODE_ADDRESS 0xfe
14 #define CCSDS_NODE_ADDRESS 0xfe
15 #define CCSDS_USER_APP 0x00
15 #define CCSDS_USER_APP 0x00
16
16
17 #define DEFAULT_SPARE1_PUSVERSION_SPARE2 0x10
17 #define DEFAULT_SPARE1_PUSVERSION_SPARE2 0x10
18 #define DEFAULT_RESERVED 0x00
18 #define DEFAULT_RESERVED 0x00
19 #define DEFAULT_HKBIA 0x1e // 0001 1110
19 #define DEFAULT_HKBIA 0x1e // 0001 1110
20
20
21 // PACKET ID
21 // PACKET ID
22 #define TM_PACKET_PID_DEFAULT 76
22 #define TM_PACKET_PID_DEFAULT 76
23 #define TM_PACKET_PID_BURST_SBM1_SBM2 79
23 #define TM_PACKET_PID_BURST_SBM1_SBM2 79
24 #define APID_TM_TC_EXE 0x0cc1 // PID 76 CAT 1
24 #define APID_TM_TC_EXE 0x0cc1 // PID 76 CAT 1
25 #define APID_TM_HK 0x0cc4 // PID 76 CAT 4
25 #define APID_TM_HK 0x0cc4 // PID 76 CAT 4
26 #define APID_TM_SCIENCE_NORMAL_BURST 0x0ccc // PID 76 CAT 12
26 #define APID_TM_SCIENCE_NORMAL_BURST 0x0ccc // PID 76 CAT 12
27 #define APID_TM_SCIENCE_SBM1_SBM2 0x0cfc // PID 79 CAT 12
27 #define APID_TM_SCIENCE_SBM1_SBM2 0x0cfc // PID 79 CAT 12
28 #define APID_TM_PARAMETER_DUMP 0x0cc6 // PID 76 CAT 6
28 #define APID_TM_PARAMETER_DUMP 0x0cc6 // PID 76 CAT 6
29 #define APID_TM_KCOEFFICIENTS_DUMP 0x0cc6 // PID 76 CAT 6
29 #define APID_TM_KCOEFFICIENTS_DUMP 0x0cc6 // PID 76 CAT 6
30 // PACKET CAT
30 // PACKET CAT
31 #define TM_PACKET_CAT_TC_EXE 1
31 #define TM_PACKET_CAT_TC_EXE 1
32 #define TM_PACKET_CAT_HK 4
32 #define TM_PACKET_CAT_HK 4
33 #define TM_PACKET_CAT_SCIENCE 12
33 #define TM_PACKET_CAT_SCIENCE 12
34 #define TM_PACKET_CAT_DUMP 6
34 #define TM_PACKET_CAT_DUMP 6
35
35
36 // PACKET SEQUENCE CONTROL
36 // PACKET SEQUENCE CONTROL
37 #define TM_PACKET_SEQ_CTRL_CONTINUATION 0x00 // [0000 0000]
37 #define TM_PACKET_SEQ_CTRL_CONTINUATION 0x00 // [0000 0000]
38 #define TM_PACKET_SEQ_CTRL_FIRST 0x40 // [0100 0000]
38 #define TM_PACKET_SEQ_CTRL_FIRST 0x40 // [0100 0000]
39 #define TM_PACKET_SEQ_CTRL_LAST 0x80 // [1000 0000]
39 #define TM_PACKET_SEQ_CTRL_LAST 0x80 // [1000 0000]
40 #define TM_PACKET_SEQ_CTRL_STANDALONE 0xc0 // [1100 0000]
40 #define TM_PACKET_SEQ_CTRL_STANDALONE 0xc0 // [1100 0000]
41 #define TM_PACKET_SEQ_CNT_DEFAULT 0x00 // [0000 0000]
41 #define TM_PACKET_SEQ_CNT_DEFAULT 0x00 // [0000 0000]
42
42
43 // DESTINATION ID
43 // DESTINATION ID
44 #define TM_DESTINATION_ID_GROUND 0
44 #define TM_DESTINATION_ID_GROUND 0
45 #define TM_DESTINATION_ID_MISSION_TIMELINE 110
45 #define TM_DESTINATION_ID_MISSION_TIMELINE 110
46 #define TM_DESTINATION_ID_TC_SEQUENCES 111
46 #define TM_DESTINATION_ID_TC_SEQUENCES 111
47 #define TM_DESTINATION_ID_RECOVERY_ACTION_COMMAND 112
47 #define TM_DESTINATION_ID_RECOVERY_ACTION_COMMAND 112
48 #define TM_DESTINATION_ID_BACKUP_MISSION_TIMELINE 113
48 #define TM_DESTINATION_ID_BACKUP_MISSION_TIMELINE 113
49 #define TM_DESTINATION_ID_DIRECT_CMD 120
49 #define TM_DESTINATION_ID_DIRECT_CMD 120
50 #define TM_DESTINATION_ID_SPARE_GRD_SRC1 121
50 #define TM_DESTINATION_ID_SPARE_GRD_SRC1 121
51 #define TM_DESTINATION_ID_SPARE_GRD_SRC2 122
51 #define TM_DESTINATION_ID_SPARE_GRD_SRC2 122
52 #define TM_DESTINATION_ID_OBCP 15
52 #define TM_DESTINATION_ID_OBCP 15
53 #define TM_DESTINATION_ID_SYSTEM_CONTROL 14
53 #define TM_DESTINATION_ID_SYSTEM_CONTROL 14
54 #define TM_DESTINATION_ID_AOCS 11
54 #define TM_DESTINATION_ID_AOCS 11
55
55
56 //*********************************************************
56 //*********************************************************
57 //*** /!\ change CCSDS_DESTINATION_ID before flight /!\ ***
57 //*** /!\ change CCSDS_DESTINATION_ID before flight /!\ ***
58 //*********************************************************
58 //*********************************************************
59 #ifdef LPP_DPU_DESTID
59 #ifdef LPP_DPU_DESTID
60 #define CCSDS_DESTINATION_ID 32
60 #define CCSDS_DESTINATION_ID 32
61 #else
61 #else
62 #define CCSDS_DESTINATION_ID 0x01
62 #define CCSDS_DESTINATION_ID 0x01
63 #endif
63 #endif
64 #define CCSDS_PROTOCOLE_ID 0x02
64 #define CCSDS_PROTOCOLE_ID 0x02
65 #define CCSDS_RESERVED 0x00
65 #define CCSDS_RESERVED 0x00
66 #define CCSDS_USER_APP 0x00
66 #define CCSDS_USER_APP 0x00
67
67
68 #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
68 #define SIZE_TM_LFR_TC_EXE_NOT_IMPLEMENTED 24
69 #define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
69 #define SIZE_TM_LFR_TC_EXE_CORRUPTED 32
70 #define SIZE_HK_PARAMETERS 112
70 #define SIZE_HK_PARAMETERS 112
71
71
72 // TC TYPES
72 // TC TYPES
73 #define TC_TYPE_GEN 181
73 #define TC_TYPE_GEN 181
74 #define TC_TYPE_TIME 9
74 #define TC_TYPE_TIME 9
75
75
76 // TC SUBTYPES
76 // TC SUBTYPES
77 #define TC_SUBTYPE_RESET 1
77 #define TC_SUBTYPE_RESET 1
78 #define TC_SUBTYPE_LOAD_COMM 11
78 #define TC_SUBTYPE_LOAD_COMM 11
79 #define TC_SUBTYPE_LOAD_NORM 13
79 #define TC_SUBTYPE_LOAD_NORM 13
80 #define TC_SUBTYPE_LOAD_BURST 19
80 #define TC_SUBTYPE_LOAD_BURST 19
81 #define TC_SUBTYPE_LOAD_SBM1 25
81 #define TC_SUBTYPE_LOAD_SBM1 25
82 #define TC_SUBTYPE_LOAD_SBM2 27
82 #define TC_SUBTYPE_LOAD_SBM2 27
83 #define TC_SUBTYPE_DUMP 31
83 #define TC_SUBTYPE_DUMP 31
84 #define TC_SUBTYPE_ENTER 41
84 #define TC_SUBTYPE_ENTER 41
85 #define TC_SUBTYPE_UPDT_INFO 51
85 #define TC_SUBTYPE_UPDT_INFO 51
86 #define TC_SUBTYPE_EN_CAL 61
86 #define TC_SUBTYPE_EN_CAL 61
87 #define TC_SUBTYPE_DIS_CAL 63
87 #define TC_SUBTYPE_DIS_CAL 63
88 #define TC_SUBTYPE_LOAD_K 93
88 #define TC_SUBTYPE_LOAD_K 93
89 #define TC_SUBTYPE_DUMP_K 95
89 #define TC_SUBTYPE_DUMP_K 95
90 #define TC_SUBTYPE_LOAD_FBINS 91
90 #define TC_SUBTYPE_LOAD_FBINS 91
91 #define TC_SUBTYPE_LOAD_FILTER_PAR 97
91 #define TC_SUBTYPE_LOAD_FILTER_PAR 97
92 #define TC_SUBTYPE_UPDT_TIME 129
92 #define TC_SUBTYPE_UPDT_TIME 129
93
93
94 // TC LEN
94 // TC LEN
95 #define TC_LEN_RESET 12
95 #define TC_LEN_RESET 12
96 #define TC_LEN_LOAD_COMM 14
96 #define TC_LEN_LOAD_COMM 14
97 #define TC_LEN_LOAD_NORM 22
97 #define TC_LEN_LOAD_NORM 22
98 #define TC_LEN_LOAD_BURST 14
98 #define TC_LEN_LOAD_BURST 14
99 #define TC_LEN_LOAD_SBM1 14
99 #define TC_LEN_LOAD_SBM1 14
100 #define TC_LEN_LOAD_SBM2 14
100 #define TC_LEN_LOAD_SBM2 14
101 #define TC_LEN_DUMP 12
101 #define TC_LEN_DUMP 12
102 #define TC_LEN_ENTER 20
102 #define TC_LEN_ENTER 20
103 #define TC_LEN_UPDT_INFO 110
103 #define TC_LEN_UPDT_INFO 110
104 #define TC_LEN_EN_CAL 12
104 #define TC_LEN_EN_CAL 12
105 #define TC_LEN_DIS_CAL 12
105 #define TC_LEN_DIS_CAL 12
106 #define TC_LEN_LOAD_K 142
106 #define TC_LEN_LOAD_K 142
107 #define TC_LEN_DUMP_K 12
107 #define TC_LEN_DUMP_K 12
108 #define TC_LEN_LOAD_FBINS 60
108 #define TC_LEN_LOAD_FBINS 60
109 #define TC_LEN_LOAD_FILTER_PAR 28
109 #define TC_LEN_LOAD_FILTER_PAR 92
110 #define TC_LEN_UPDT_TIME 18
110 #define TC_LEN_UPDT_TIME 18
111
111
112 // PACKET CODES
112 // PACKET CODES
113 #define TM_CODE_K_DUMP 0xb5600b00 // 181 (0xb5) ** 96 (0x60) ** 11 (0x0b) ** 0 (0x00)
113 #define TM_CODE_K_DUMP 0xb5600b00 // 181 (0xb5) ** 96 (0x60) ** 11 (0x0b) ** 0 (0x00)
114
114
115 // TM TYPES
115 // TM TYPES
116 #define TM_TYPE_TC_EXE 1
116 #define TM_TYPE_TC_EXE 1
117 #define TM_TYPE_HK 3
117 #define TM_TYPE_HK 3
118 #define TM_TYPE_LFR_SCIENCE 21
118 #define TM_TYPE_LFR_SCIENCE 21
119 #define TM_TYPE_PARAMETER_DUMP 181
119 #define TM_TYPE_PARAMETER_DUMP 181
120 #define TM_TYPE_K_DUMP 181
120 #define TM_TYPE_K_DUMP 181
121
121
122 // TM SUBTYPES
122 // TM SUBTYPES
123 #define TM_SUBTYPE_EXE_OK 7
123 #define TM_SUBTYPE_EXE_OK 7
124 #define TM_SUBTYPE_EXE_NOK 8
124 #define TM_SUBTYPE_EXE_NOK 8
125 #define TM_SUBTYPE_HK 25
125 #define TM_SUBTYPE_HK 25
126 #define TM_SUBTYPE_LFR_SCIENCE_3 3 // TM packets with fixed size
126 #define TM_SUBTYPE_LFR_SCIENCE_3 3 // TM packets with fixed size
127 #define TM_SUBTYPE_LFR_SCIENCE_6 6 // TM packets with variable size
127 #define TM_SUBTYPE_LFR_SCIENCE_6 6 // TM packets with variable size
128 #define TM_SUBTYPE_PARAMETER_DUMP 32
128 #define TM_SUBTYPE_PARAMETER_DUMP 32
129 #define TM_SUBTYPE_K_DUMP 96
129 #define TM_SUBTYPE_K_DUMP 96
130
130
131 // FAILURE CODES
131 // FAILURE CODES
132 #define ILLEGAL_APID 0
132 #define ILLEGAL_APID 0
133 #define WRONG_LEN_PKT 1
133 #define WRONG_LEN_PKT 1
134 #define INCOR_CHECKSUM 2
134 #define INCOR_CHECKSUM 2
135 #define ILL_TYPE 3
135 #define ILL_TYPE 3
136 #define ILL_SUBTYPE 4
136 #define ILL_SUBTYPE 4
137 #define WRONG_APP_DATA 5 // 0x00 0x05
137 #define WRONG_APP_DATA 5 // 0x00 0x05
138 #define TC_NOT_EXE 42000 // 0xa4 0x10
138 #define TC_NOT_EXE 42000 // 0xa4 0x10
139 #define WRONG_SRC_ID 42001 // 0xa4 0x11
139 #define WRONG_SRC_ID 42001 // 0xa4 0x11
140 #define FUNCT_NOT_IMPL 42002 // 0xa4 0x12
140 #define FUNCT_NOT_IMPL 42002 // 0xa4 0x12
141 #define FAIL_DETECTED 42003 // 0xa4 0x13
141 #define FAIL_DETECTED 42003 // 0xa4 0x13
142 #define NOT_ALLOWED 42004 // 0xa4 0x14
142 #define NOT_ALLOWED 42004 // 0xa4 0x14
143 #define CORRUPTED 42005 // 0xa4 0x15
143 #define CORRUPTED 42005 // 0xa4 0x15
144 #define CCSDS_TM_VALID 7
144 #define CCSDS_TM_VALID 7
145
145
146 // HK_LFR_LAST_ER_RID
146 // HK_LFR_LAST_ER_RID
147 #define RID_LE_LFR_TIME 42119
147 #define RID_LE_LFR_TIME 42119
148 #define RID_LE_LFR_DPU_SPW 42128
148 #define RID_LE_LFR_DPU_SPW 42128
149 #define RID_LE_LFR_TIMEC 42129
149 #define RID_LE_LFR_TIMEC 42129
150 #define RID_ME_LFR_DPU_SPW 42338
150 #define RID_ME_LFR_DPU_SPW 42338
151 // HK_LFR_LAST_ER_CODE
151 // HK_LFR_LAST_ER_CODE
152 #define CODE_PARITY 1
152 #define CODE_PARITY 1
153 #define CODE_DISCONNECT 2
153 #define CODE_DISCONNECT 2
154 #define CODE_ESCAPE 3
154 #define CODE_ESCAPE 3
155 #define CODE_CREDIT 4
155 #define CODE_CREDIT 4
156 #define CODE_WRITE_SYNC 5
156 #define CODE_WRITE_SYNC 5
157 #define CODE_EARLY_EOP_EEP 6
157 #define CODE_EARLY_EOP_EEP 6
158 #define CODE_INVALID_ADDRESS 7
158 #define CODE_INVALID_ADDRESS 7
159 #define CODE_EEP 8
159 #define CODE_EEP 8
160 #define CODE_RX_TOO_BIG 9
160 #define CODE_RX_TOO_BIG 9
161 #define CODE_HEADER_CRC 16
161 #define CODE_HEADER_CRC 16
162 #define CODE_DATA_CRC 17
162 #define CODE_DATA_CRC 17
163 #define CODE_ERRONEOUS 20
163 #define CODE_ERRONEOUS 20
164 #define CODE_MISSING 21
164 #define CODE_MISSING 21
165 #define CODE_INVALID 22
165 #define CODE_INVALID 22
166 #define CODE_TIMECODE_IT 24
166 #define CODE_TIMECODE_IT 24
167 #define CODE_NOT_SYNCHRO 25
167 #define CODE_NOT_SYNCHRO 25
168 #define CODE_TIMECODE_CTR 26
168 #define CODE_TIMECODE_CTR 26
169
169
170 // TC SID
170 // TC SID
171 #define SID_TC_GROUND 0
171 #define SID_TC_GROUND 0
172 #define SID_TC_MISSION_TIMELINE 110
172 #define SID_TC_MISSION_TIMELINE 110
173 #define SID_TC_TC_SEQUENCES 111
173 #define SID_TC_TC_SEQUENCES 111
174 #define SID_TC_RECOVERY_ACTION_CMD 112
174 #define SID_TC_RECOVERY_ACTION_CMD 112
175 #define SID_TC_BACKUP_MISSION_TIMELINE 113
175 #define SID_TC_BACKUP_MISSION_TIMELINE 113
176 #define SID_TC_DIRECT_CMD 120
176 #define SID_TC_DIRECT_CMD 120
177 #define SID_TC_SPARE_GRD_SRC1 121
177 #define SID_TC_SPARE_GRD_SRC1 121
178 #define SID_TC_SPARE_GRD_SRC2 122
178 #define SID_TC_SPARE_GRD_SRC2 122
179 #define SID_TC_OBCP 15
179 #define SID_TC_OBCP 15
180 #define SID_TC_SYSTEM_CONTROL 14
180 #define SID_TC_SYSTEM_CONTROL 14
181 #define SID_TC_AOCS 11
181 #define SID_TC_AOCS 11
182 #define SID_TC_RPW_INTERNAL 254
182 #define SID_TC_RPW_INTERNAL 254
183
183
184 enum apid_destid{
184 enum apid_destid{
185 GROUND,
185 GROUND,
186 MISSION_TIMELINE,
186 MISSION_TIMELINE,
187 TC_SEQUENCES,
187 TC_SEQUENCES,
188 RECOVERY_ACTION_CMD,
188 RECOVERY_ACTION_CMD,
189 BACKUP_MISSION_TIMELINE,
189 BACKUP_MISSION_TIMELINE,
190 DIRECT_CMD,
190 DIRECT_CMD,
191 SPARE_GRD_SRC1,
191 SPARE_GRD_SRC1,
192 SPARE_GRD_SRC2,
192 SPARE_GRD_SRC2,
193 OBCP,
193 OBCP,
194 SYSTEM_CONTROL,
194 SYSTEM_CONTROL,
195 AOCS,
195 AOCS,
196 RPW_INTERNAL
196 RPW_INTERNAL
197 };
197 };
198 // SEQUENCE COUNTERS
198 // SEQUENCE COUNTERS
199 #define SEQ_CNT_MAX 16383
199 #define SEQ_CNT_MAX 16383
200 #define SEQ_CNT_NB_DEST_ID 12
200 #define SEQ_CNT_NB_DEST_ID 12
201
201
202 // TM SID
202 // TM SID
203 #define SID_HK 1
203 #define SID_HK 1
204
204
205 #define SID_NORM_SWF_F0 3
205 #define SID_NORM_SWF_F0 3
206 #define SID_NORM_SWF_F1 4
206 #define SID_NORM_SWF_F1 4
207 #define SID_NORM_SWF_F2 5
207 #define SID_NORM_SWF_F2 5
208 #define SID_NORM_CWF_F3 1
208 #define SID_NORM_CWF_F3 1
209 #define SID_BURST_CWF_F2 2
209 #define SID_BURST_CWF_F2 2
210 #define SID_SBM1_CWF_F1 24
210 #define SID_SBM1_CWF_F1 24
211 #define SID_SBM2_CWF_F2 25
211 #define SID_SBM2_CWF_F2 25
212 #define SID_NORM_ASM_F0 11
212 #define SID_NORM_ASM_F0 11
213 #define SID_NORM_ASM_F1 12
213 #define SID_NORM_ASM_F1 12
214 #define SID_NORM_ASM_F2 13
214 #define SID_NORM_ASM_F2 13
215 #define SID_NORM_BP1_F0 14
215 #define SID_NORM_BP1_F0 14
216 #define SID_NORM_BP1_F1 15
216 #define SID_NORM_BP1_F1 15
217 #define SID_NORM_BP1_F2 16
217 #define SID_NORM_BP1_F2 16
218 #define SID_NORM_BP2_F0 19
218 #define SID_NORM_BP2_F0 19
219 #define SID_NORM_BP2_F1 20
219 #define SID_NORM_BP2_F1 20
220 #define SID_NORM_BP2_F2 21
220 #define SID_NORM_BP2_F2 21
221 #define SID_BURST_BP1_F0 17
221 #define SID_BURST_BP1_F0 17
222 #define SID_BURST_BP2_F0 22
222 #define SID_BURST_BP2_F0 22
223 #define SID_BURST_BP1_F1 18
223 #define SID_BURST_BP1_F1 18
224 #define SID_BURST_BP2_F1 23
224 #define SID_BURST_BP2_F1 23
225 #define SID_SBM1_BP1_F0 28
225 #define SID_SBM1_BP1_F0 28
226 #define SID_SBM1_BP2_F0 31
226 #define SID_SBM1_BP2_F0 31
227 #define SID_SBM2_BP1_F0 29
227 #define SID_SBM2_BP1_F0 29
228 #define SID_SBM2_BP2_F0 32
228 #define SID_SBM2_BP2_F0 32
229 #define SID_SBM2_BP1_F1 30
229 #define SID_SBM2_BP1_F1 30
230 #define SID_SBM2_BP2_F1 33
230 #define SID_SBM2_BP2_F1 33
231 #define SID_NORM_CWF_LONG_F3 34
231 #define SID_NORM_CWF_LONG_F3 34
232
232
233 #define SID_PARAMETER_DUMP 10
233 #define SID_PARAMETER_DUMP 10
234 #define SID_K_DUMP 11
234 #define SID_K_DUMP 11
235
235
236 // HEADER_LENGTH
236 // HEADER_LENGTH
237 //#define TM_HEADER_LEN 16
237 //#define TM_HEADER_LEN 16
238 #define HEADER_LENGTH_TM_LFR_SCIENCE_CWF 32
238 #define HEADER_LENGTH_TM_LFR_SCIENCE_CWF 32
239 #define HEADER_LENGTH_TM_LFR_SCIENCE_SWF 34
239 #define HEADER_LENGTH_TM_LFR_SCIENCE_SWF 34
240 #define HEADER_LENGTH_TM_LFR_SCIENCE_ASM 34
240 #define HEADER_LENGTH_TM_LFR_SCIENCE_ASM 34
241 // PACKET_LENGTH
241 // PACKET_LENGTH
242 #define PACKET_LENGTH_TC_EXE_SUCCESS (20 - CCSDS_TC_TM_PACKET_OFFSET)
242 #define PACKET_LENGTH_TC_EXE_SUCCESS (20 - CCSDS_TC_TM_PACKET_OFFSET)
243 #define PACKET_LENGTH_TC_EXE_INCONSISTENT (26 - CCSDS_TC_TM_PACKET_OFFSET)
243 #define PACKET_LENGTH_TC_EXE_INCONSISTENT (26 - CCSDS_TC_TM_PACKET_OFFSET)
244 #define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE (26 - CCSDS_TC_TM_PACKET_OFFSET)
244 #define PACKET_LENGTH_TC_EXE_NOT_EXECUTABLE (26 - CCSDS_TC_TM_PACKET_OFFSET)
245 #define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED (24 - CCSDS_TC_TM_PACKET_OFFSET)
245 #define PACKET_LENGTH_TC_EXE_NOT_IMPLEMENTED (24 - CCSDS_TC_TM_PACKET_OFFSET)
246 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
246 #define PACKET_LENGTH_TC_EXE_ERROR (24 - CCSDS_TC_TM_PACKET_OFFSET)
247 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
247 #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET)
248 #define PACKET_LENGTH_HK (136 - CCSDS_TC_TM_PACKET_OFFSET)
248 #define PACKET_LENGTH_HK (136 - CCSDS_TC_TM_PACKET_OFFSET)
249 #define PACKET_LENGTH_PARAMETER_DUMP (148 - CCSDS_TC_TM_PACKET_OFFSET)
249 #define PACKET_LENGTH_PARAMETER_DUMP (212 - CCSDS_TC_TM_PACKET_OFFSET)
250 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
250 #define PACKET_LENGTH_K_DUMP (3920 - CCSDS_TC_TM_PACKET_OFFSET)
251 // SCIENCE ASM
251 // SCIENCE ASM
252 #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
252 #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
253 #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
253 #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
254 #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
254 #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
255 #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
255 #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
256 #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
256 #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
257 // SCIENCE NORM
257 // SCIENCE NORM
258 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F0 (150 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 11 + 29 (1 spare byte in the header)
258 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F0 (150 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 11 + 29 (1 spare byte in the header)
259 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F1 (172 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 11 + 29 (1 spare byte in the header)
259 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F1 (172 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 11 + 29 (1 spare byte in the header)
260 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F2 (160 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 11 + 28
260 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP1_F2 (160 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 11 + 28
261 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F0 (358 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 30 + 28
261 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F0 (358 - CCSDS_TC_TM_PACKET_OFFSET) // 11 * 30 + 28
262 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F1 (418 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 30 + 28
262 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F1 (418 - CCSDS_TC_TM_PACKET_OFFSET) // 13 * 30 + 28
263 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F2 (388 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 30 + 28
263 #define PACKET_LENGTH_TM_LFR_SCIENCE_NORM_BP2_F2 (388 - CCSDS_TC_TM_PACKET_OFFSET) // 12 * 30 + 28
264 // SCIENCE SBM
264 // SCIENCE SBM
265 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 (270 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 11 + 28
265 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 (270 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 11 + 28
266 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 (688 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 30 + 28
266 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 (688 - CCSDS_TC_TM_PACKET_OFFSET) // 22 * 30 + 28
267 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 (314 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 11 + 28
267 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 (314 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 11 + 28
268 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 (808 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 30 + 28
268 #define PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 (808 - CCSDS_TC_TM_PACKET_OFFSET) // 26 * 30 + 28
269
269
270 #define PACKET_LENGTH_DELTA 11 // 7 + 4
270 #define PACKET_LENGTH_DELTA 11 // 7 + 4
271
271
272 #define SPARE1_PUSVERSION_SPARE2 0x10
272 #define SPARE1_PUSVERSION_SPARE2 0x10
273
273
274 // R3
274 // R3
275 // one snapshot = 2048 samples = 6 packets * 304 + 224
275 // one snapshot = 2048 samples = 6 packets * 304 + 224
276 #define TM_LEN_SCI_SWF_304 (3678 - CCSDS_TC_TM_PACKET_OFFSET) // 304 * 12 + 30
276 #define TM_LEN_SCI_SWF_304 (3678 - CCSDS_TC_TM_PACKET_OFFSET) // 304 * 12 + 30
277 #define TM_LEN_SCI_SWF_224 (2718 - CCSDS_TC_TM_PACKET_OFFSET) // 224 * 12 + 30
277 #define TM_LEN_SCI_SWF_224 (2718 - CCSDS_TC_TM_PACKET_OFFSET) // 224 * 12 + 30
278 // one continuous buffer = 2688 samples = 8 packets * 336
278 // one continuous buffer = 2688 samples = 8 packets * 336
279 #define TM_LEN_SCI_CWF_336 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 336 * 12 + 28
279 #define TM_LEN_SCI_CWF_336 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 336 * 12 + 28
280 #define TM_LEN_SCI_CWF_672 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 672 * 6 + 28
280 #define TM_LEN_SCI_CWF_672 (4060 - CCSDS_TC_TM_PACKET_OFFSET) // 672 * 6 + 28
281 //
281 //
282 #define DEFAULT_PKTCNT 0x07
282 #define DEFAULT_PKTCNT 0x07
283 #define BLK_NR_304 0x0130
283 #define BLK_NR_304 0x0130
284 #define BLK_NR_224 0x00e0
284 #define BLK_NR_224 0x00e0
285 #define BLK_NR_CWF 0x0150 // 336
285 #define BLK_NR_CWF 0x0150 // 336
286 #define BLK_NR_CWF_SHORT_F3 0x02a0 // 672
286 #define BLK_NR_CWF_SHORT_F3 0x02a0 // 672
287
287
288 enum TM_TYPE{
288 enum TM_TYPE{
289 TM_LFR_TC_EXE_OK,
289 TM_LFR_TC_EXE_OK,
290 TM_LFR_TC_EXE_ERR,
290 TM_LFR_TC_EXE_ERR,
291 TM_LFR_HK,
291 TM_LFR_HK,
292 TM_LFR_SCI,
292 TM_LFR_SCI,
293 TM_LFR_SCI_SBM,
293 TM_LFR_SCI_SBM,
294 TM_LFR_PAR_DUMP
294 TM_LFR_PAR_DUMP
295 };
295 };
296
296
297 typedef struct {
297 typedef struct {
298 unsigned char targetLogicalAddress;
298 unsigned char targetLogicalAddress;
299 unsigned char protocolIdentifier;
299 unsigned char protocolIdentifier;
300 unsigned char reserved;
300 unsigned char reserved;
301 unsigned char userApplication;
301 unsigned char userApplication;
302 // PACKET HEADER
302 // PACKET HEADER
303 unsigned char packetID[2];
303 unsigned char packetID[2];
304 unsigned char packetSequenceControl[2];
304 unsigned char packetSequenceControl[2];
305 unsigned char packetLength[2];
305 unsigned char packetLength[2];
306 // DATA FIELD HEADER
306 // DATA FIELD HEADER
307 unsigned char spare1_pusVersion_spare2;
307 unsigned char spare1_pusVersion_spare2;
308 unsigned char serviceType;
308 unsigned char serviceType;
309 unsigned char serviceSubType;
309 unsigned char serviceSubType;
310 unsigned char destinationID;
310 unsigned char destinationID;
311 unsigned char time[6];
311 unsigned char time[6];
312 //
312 //
313 unsigned char telecommand_pkt_id[2];
313 unsigned char telecommand_pkt_id[2];
314 unsigned char pkt_seq_control[2];
314 unsigned char pkt_seq_control[2];
315 } Packet_TM_LFR_TC_EXE_SUCCESS_t;
315 } Packet_TM_LFR_TC_EXE_SUCCESS_t;
316
316
317 typedef struct {
317 typedef struct {
318 unsigned char targetLogicalAddress;
318 unsigned char targetLogicalAddress;
319 unsigned char protocolIdentifier;
319 unsigned char protocolIdentifier;
320 unsigned char reserved;
320 unsigned char reserved;
321 unsigned char userApplication;
321 unsigned char userApplication;
322 // PACKET HEADER
322 // PACKET HEADER
323 unsigned char packetID[2];
323 unsigned char packetID[2];
324 unsigned char packetSequenceControl[2];
324 unsigned char packetSequenceControl[2];
325 unsigned char packetLength[2];
325 unsigned char packetLength[2];
326 // DATA FIELD HEADER
326 // DATA FIELD HEADER
327 unsigned char spare1_pusVersion_spare2;
327 unsigned char spare1_pusVersion_spare2;
328 unsigned char serviceType;
328 unsigned char serviceType;
329 unsigned char serviceSubType;
329 unsigned char serviceSubType;
330 unsigned char destinationID;
330 unsigned char destinationID;
331 unsigned char time[6];
331 unsigned char time[6];
332 //
332 //
333 unsigned char telecommand_pkt_id[2];
333 unsigned char telecommand_pkt_id[2];
334 unsigned char pkt_seq_control[2];
334 unsigned char pkt_seq_control[2];
335 unsigned char tc_failure_code[2];
335 unsigned char tc_failure_code[2];
336 unsigned char tc_service;
336 unsigned char tc_service;
337 unsigned char tc_subtype;
337 unsigned char tc_subtype;
338 unsigned char byte_position;
338 unsigned char byte_position;
339 unsigned char rcv_value;
339 unsigned char rcv_value;
340 } Packet_TM_LFR_TC_EXE_INCONSISTENT_t;
340 } Packet_TM_LFR_TC_EXE_INCONSISTENT_t;
341
341
342 typedef struct {
342 typedef struct {
343 unsigned char targetLogicalAddress;
343 unsigned char targetLogicalAddress;
344 unsigned char protocolIdentifier;
344 unsigned char protocolIdentifier;
345 unsigned char reserved;
345 unsigned char reserved;
346 unsigned char userApplication;
346 unsigned char userApplication;
347 // PACKET HEADER
347 // PACKET HEADER
348 unsigned char packetID[2];
348 unsigned char packetID[2];
349 unsigned char packetSequenceControl[2];
349 unsigned char packetSequenceControl[2];
350 unsigned char packetLength[2];
350 unsigned char packetLength[2];
351 // DATA FIELD HEADER
351 // DATA FIELD HEADER
352 unsigned char spare1_pusVersion_spare2;
352 unsigned char spare1_pusVersion_spare2;
353 unsigned char serviceType;
353 unsigned char serviceType;
354 unsigned char serviceSubType;
354 unsigned char serviceSubType;
355 unsigned char destinationID;
355 unsigned char destinationID;
356 unsigned char time[6];
356 unsigned char time[6];
357 //
357 //
358 unsigned char telecommand_pkt_id[2];
358 unsigned char telecommand_pkt_id[2];
359 unsigned char pkt_seq_control[2];
359 unsigned char pkt_seq_control[2];
360 unsigned char tc_failure_code[2];
360 unsigned char tc_failure_code[2];
361 unsigned char tc_service;
361 unsigned char tc_service;
362 unsigned char tc_subtype;
362 unsigned char tc_subtype;
363 unsigned char lfr_status_word[2];
363 unsigned char lfr_status_word[2];
364 } Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t;
364 } Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t;
365
365
366 typedef struct {
366 typedef struct {
367 unsigned char targetLogicalAddress;
367 unsigned char targetLogicalAddress;
368 unsigned char protocolIdentifier;
368 unsigned char protocolIdentifier;
369 unsigned char reserved;
369 unsigned char reserved;
370 unsigned char userApplication;
370 unsigned char userApplication;
371 // PACKET HEADER
371 // PACKET HEADER
372 unsigned char packetID[2];
372 unsigned char packetID[2];
373 unsigned char packetSequenceControl[2];
373 unsigned char packetSequenceControl[2];
374 unsigned char packetLength[2];
374 unsigned char packetLength[2];
375 // DATA FIELD HEADER
375 // DATA FIELD HEADER
376 unsigned char spare1_pusVersion_spare2;
376 unsigned char spare1_pusVersion_spare2;
377 unsigned char serviceType;
377 unsigned char serviceType;
378 unsigned char serviceSubType;
378 unsigned char serviceSubType;
379 unsigned char destinationID;
379 unsigned char destinationID;
380 unsigned char time[6];
380 unsigned char time[6];
381 //
381 //
382 unsigned char telecommand_pkt_id[2];
382 unsigned char telecommand_pkt_id[2];
383 unsigned char pkt_seq_control[2];
383 unsigned char pkt_seq_control[2];
384 unsigned char tc_failure_code[2];
384 unsigned char tc_failure_code[2];
385 unsigned char tc_service;
385 unsigned char tc_service;
386 unsigned char tc_subtype;
386 unsigned char tc_subtype;
387 } Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t;
387 } Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t;
388
388
389 typedef struct {
389 typedef struct {
390 unsigned char targetLogicalAddress;
390 unsigned char targetLogicalAddress;
391 unsigned char protocolIdentifier;
391 unsigned char protocolIdentifier;
392 unsigned char reserved;
392 unsigned char reserved;
393 unsigned char userApplication;
393 unsigned char userApplication;
394 // PACKET HEADER
394 // PACKET HEADER
395 unsigned char packetID[2];
395 unsigned char packetID[2];
396 unsigned char packetSequenceControl[2];
396 unsigned char packetSequenceControl[2];
397 unsigned char packetLength[2];
397 unsigned char packetLength[2];
398 // DATA FIELD HEADER
398 // DATA FIELD HEADER
399 unsigned char spare1_pusVersion_spare2;
399 unsigned char spare1_pusVersion_spare2;
400 unsigned char serviceType;
400 unsigned char serviceType;
401 unsigned char serviceSubType;
401 unsigned char serviceSubType;
402 unsigned char destinationID;
402 unsigned char destinationID;
403 unsigned char time[6];
403 unsigned char time[6];
404 //
404 //
405 unsigned char telecommand_pkt_id[2];
405 unsigned char telecommand_pkt_id[2];
406 unsigned char pkt_seq_control[2];
406 unsigned char pkt_seq_control[2];
407 unsigned char tc_failure_code[2];
407 unsigned char tc_failure_code[2];
408 unsigned char tc_service;
408 unsigned char tc_service;
409 unsigned char tc_subtype;
409 unsigned char tc_subtype;
410 } Packet_TM_LFR_TC_EXE_ERROR_t;
410 } Packet_TM_LFR_TC_EXE_ERROR_t;
411
411
412 typedef struct {
412 typedef struct {
413 unsigned char targetLogicalAddress;
413 unsigned char targetLogicalAddress;
414 unsigned char protocolIdentifier;
414 unsigned char protocolIdentifier;
415 unsigned char reserved;
415 unsigned char reserved;
416 unsigned char userApplication;
416 unsigned char userApplication;
417 // PACKET HEADER
417 // PACKET HEADER
418 unsigned char packetID[2];
418 unsigned char packetID[2];
419 unsigned char packetSequenceControl[2];
419 unsigned char packetSequenceControl[2];
420 unsigned char packetLength[2];
420 unsigned char packetLength[2];
421 // DATA FIELD HEADER
421 // DATA FIELD HEADER
422 unsigned char spare1_pusVersion_spare2;
422 unsigned char spare1_pusVersion_spare2;
423 unsigned char serviceType;
423 unsigned char serviceType;
424 unsigned char serviceSubType;
424 unsigned char serviceSubType;
425 unsigned char destinationID;
425 unsigned char destinationID;
426 unsigned char time[6];
426 unsigned char time[6];
427 //
427 //
428 unsigned char telecommand_pkt_id[2];
428 unsigned char telecommand_pkt_id[2];
429 unsigned char pkt_seq_control[2];
429 unsigned char pkt_seq_control[2];
430 unsigned char tc_failure_code[2];
430 unsigned char tc_failure_code[2];
431 unsigned char tc_service;
431 unsigned char tc_service;
432 unsigned char tc_subtype;
432 unsigned char tc_subtype;
433 unsigned char pkt_len_rcv_value[2];
433 unsigned char pkt_len_rcv_value[2];
434 unsigned char pkt_datafieldsize_cnt[2];
434 unsigned char pkt_datafieldsize_cnt[2];
435 unsigned char rcv_crc[2];
435 unsigned char rcv_crc[2];
436 unsigned char computed_crc[2];
436 unsigned char computed_crc[2];
437 } Packet_TM_LFR_TC_EXE_CORRUPTED_t;
437 } Packet_TM_LFR_TC_EXE_CORRUPTED_t;
438
438
439 typedef struct {
439 typedef struct {
440 unsigned char targetLogicalAddress;
440 unsigned char targetLogicalAddress;
441 unsigned char protocolIdentifier;
441 unsigned char protocolIdentifier;
442 unsigned char reserved;
442 unsigned char reserved;
443 unsigned char userApplication;
443 unsigned char userApplication;
444 unsigned char packetID[2];
444 unsigned char packetID[2];
445 unsigned char packetSequenceControl[2];
445 unsigned char packetSequenceControl[2];
446 unsigned char packetLength[2];
446 unsigned char packetLength[2];
447 // DATA FIELD HEADER
447 // DATA FIELD HEADER
448 unsigned char spare1_pusVersion_spare2;
448 unsigned char spare1_pusVersion_spare2;
449 unsigned char serviceType;
449 unsigned char serviceType;
450 unsigned char serviceSubType;
450 unsigned char serviceSubType;
451 unsigned char destinationID;
451 unsigned char destinationID;
452 unsigned char time[6];
452 unsigned char time[6];
453 // AUXILIARY HEADER
453 // AUXILIARY HEADER
454 unsigned char sid;
454 unsigned char sid;
455 unsigned char pa_bia_status_info;
455 unsigned char pa_bia_status_info;
456 unsigned char sy_lfr_common_parameters_spare;
456 unsigned char sy_lfr_common_parameters_spare;
457 unsigned char sy_lfr_common_parameters;
457 unsigned char sy_lfr_common_parameters;
458 unsigned char pktCnt;
458 unsigned char pktCnt;
459 unsigned char pktNr;
459 unsigned char pktNr;
460 unsigned char acquisitionTime[6];
460 unsigned char acquisitionTime[6];
461 unsigned char blkNr[2];
461 unsigned char blkNr[2];
462 } Header_TM_LFR_SCIENCE_SWF_t;
462 } Header_TM_LFR_SCIENCE_SWF_t;
463
463
464 typedef struct {
464 typedef struct {
465 unsigned char targetLogicalAddress;
465 unsigned char targetLogicalAddress;
466 unsigned char protocolIdentifier;
466 unsigned char protocolIdentifier;
467 unsigned char reserved;
467 unsigned char reserved;
468 unsigned char userApplication;
468 unsigned char userApplication;
469 unsigned char packetID[2];
469 unsigned char packetID[2];
470 unsigned char packetSequenceControl[2];
470 unsigned char packetSequenceControl[2];
471 unsigned char packetLength[2];
471 unsigned char packetLength[2];
472 // DATA FIELD HEADER
472 // DATA FIELD HEADER
473 unsigned char spare1_pusVersion_spare2;
473 unsigned char spare1_pusVersion_spare2;
474 unsigned char serviceType;
474 unsigned char serviceType;
475 unsigned char serviceSubType;
475 unsigned char serviceSubType;
476 unsigned char destinationID;
476 unsigned char destinationID;
477 unsigned char time[6];
477 unsigned char time[6];
478 // AUXILIARY DATA HEADER
478 // AUXILIARY DATA HEADER
479 unsigned char sid;
479 unsigned char sid;
480 unsigned char pa_bia_status_info;
480 unsigned char pa_bia_status_info;
481 unsigned char sy_lfr_common_parameters_spare;
481 unsigned char sy_lfr_common_parameters_spare;
482 unsigned char sy_lfr_common_parameters;
482 unsigned char sy_lfr_common_parameters;
483 unsigned char acquisitionTime[6];
483 unsigned char acquisitionTime[6];
484 unsigned char blkNr[2];
484 unsigned char blkNr[2];
485 } Header_TM_LFR_SCIENCE_CWF_t;
485 } Header_TM_LFR_SCIENCE_CWF_t;
486
486
487 typedef struct {
487 typedef struct {
488 unsigned char targetLogicalAddress;
488 unsigned char targetLogicalAddress;
489 unsigned char protocolIdentifier;
489 unsigned char protocolIdentifier;
490 unsigned char reserved;
490 unsigned char reserved;
491 unsigned char userApplication;
491 unsigned char userApplication;
492 unsigned char packetID[2];
492 unsigned char packetID[2];
493 unsigned char packetSequenceControl[2];
493 unsigned char packetSequenceControl[2];
494 unsigned char packetLength[2];
494 unsigned char packetLength[2];
495 // DATA FIELD HEADER
495 // DATA FIELD HEADER
496 unsigned char spare1_pusVersion_spare2;
496 unsigned char spare1_pusVersion_spare2;
497 unsigned char serviceType;
497 unsigned char serviceType;
498 unsigned char serviceSubType;
498 unsigned char serviceSubType;
499 unsigned char destinationID;
499 unsigned char destinationID;
500 unsigned char time[6];
500 unsigned char time[6];
501 // AUXILIARY HEADER
501 // AUXILIARY HEADER
502 unsigned char sid;
502 unsigned char sid;
503 unsigned char pa_bia_status_info;
503 unsigned char pa_bia_status_info;
504 unsigned char sy_lfr_common_parameters_spare;
504 unsigned char sy_lfr_common_parameters_spare;
505 unsigned char sy_lfr_common_parameters;
505 unsigned char sy_lfr_common_parameters;
506 unsigned char pa_lfr_pkt_cnt_asm;
506 unsigned char pa_lfr_pkt_cnt_asm;
507 unsigned char pa_lfr_pkt_nr_asm;
507 unsigned char pa_lfr_pkt_nr_asm;
508 unsigned char acquisitionTime[6];
508 unsigned char acquisitionTime[6];
509 unsigned char pa_lfr_asm_blk_nr[2];
509 unsigned char pa_lfr_asm_blk_nr[2];
510 } Header_TM_LFR_SCIENCE_ASM_t;
510 } Header_TM_LFR_SCIENCE_ASM_t;
511
511
512 typedef struct {
512 typedef struct {
513 unsigned char targetLogicalAddress;
513 unsigned char targetLogicalAddress;
514 unsigned char protocolIdentifier;
514 unsigned char protocolIdentifier;
515 unsigned char reserved;
515 unsigned char reserved;
516 unsigned char userApplication;
516 unsigned char userApplication;
517 unsigned char packetID[2];
517 unsigned char packetID[2];
518 unsigned char packetSequenceControl[2];
518 unsigned char packetSequenceControl[2];
519 unsigned char packetLength[2];
519 unsigned char packetLength[2];
520 // DATA FIELD HEADER
520 // DATA FIELD HEADER
521 unsigned char spare1_pusVersion_spare2;
521 unsigned char spare1_pusVersion_spare2;
522 unsigned char serviceType;
522 unsigned char serviceType;
523 unsigned char serviceSubType;
523 unsigned char serviceSubType;
524 unsigned char destinationID;
524 unsigned char destinationID;
525 unsigned char time[6];
525 unsigned char time[6];
526 // AUXILIARY HEADER
526 // AUXILIARY HEADER
527 unsigned char sid;
527 unsigned char sid;
528 unsigned char pa_bia_status_info;
528 unsigned char pa_bia_status_info;
529 unsigned char sy_lfr_common_parameters_spare;
529 unsigned char sy_lfr_common_parameters_spare;
530 unsigned char sy_lfr_common_parameters;
530 unsigned char sy_lfr_common_parameters;
531 unsigned char acquisitionTime[6];
531 unsigned char acquisitionTime[6];
532 unsigned char source_data_spare;
532 unsigned char source_data_spare;
533 unsigned char pa_lfr_bp_blk_nr[2];
533 unsigned char pa_lfr_bp_blk_nr[2];
534 } Header_TM_LFR_SCIENCE_BP_with_spare_t;
534 } Header_TM_LFR_SCIENCE_BP_with_spare_t;
535
535
536 typedef struct {
536 typedef struct {
537 unsigned char targetLogicalAddress;
537 unsigned char targetLogicalAddress;
538 unsigned char protocolIdentifier;
538 unsigned char protocolIdentifier;
539 unsigned char reserved;
539 unsigned char reserved;
540 unsigned char userApplication;
540 unsigned char userApplication;
541 unsigned char packetID[2];
541 unsigned char packetID[2];
542 unsigned char packetSequenceControl[2];
542 unsigned char packetSequenceControl[2];
543 unsigned char packetLength[2];
543 unsigned char packetLength[2];
544 // DATA FIELD HEADER
544 // DATA FIELD HEADER
545 unsigned char spare1_pusVersion_spare2;
545 unsigned char spare1_pusVersion_spare2;
546 unsigned char serviceType;
546 unsigned char serviceType;
547 unsigned char serviceSubType;
547 unsigned char serviceSubType;
548 unsigned char destinationID;
548 unsigned char destinationID;
549 unsigned char time[6];
549 unsigned char time[6];
550 // AUXILIARY HEADER
550 // AUXILIARY HEADER
551 unsigned char sid;
551 unsigned char sid;
552 unsigned char pa_bia_status_info;
552 unsigned char pa_bia_status_info;
553 unsigned char sy_lfr_common_parameters_spare;
553 unsigned char sy_lfr_common_parameters_spare;
554 unsigned char sy_lfr_common_parameters;
554 unsigned char sy_lfr_common_parameters;
555 unsigned char acquisitionTime[6];
555 unsigned char acquisitionTime[6];
556 unsigned char pa_lfr_bp_blk_nr[2];
556 unsigned char pa_lfr_bp_blk_nr[2];
557 } Header_TM_LFR_SCIENCE_BP_t;
557 } Header_TM_LFR_SCIENCE_BP_t;
558
558
559 typedef struct {
559 typedef struct {
560 //targetLogicalAddress is removed by the grspw module
560 //targetLogicalAddress is removed by the grspw module
561 unsigned char protocolIdentifier;
561 unsigned char protocolIdentifier;
562 unsigned char reserved;
562 unsigned char reserved;
563 unsigned char userApplication;
563 unsigned char userApplication;
564 unsigned char packetID[2];
564 unsigned char packetID[2];
565 unsigned char packetSequenceControl[2];
565 unsigned char packetSequenceControl[2];
566 unsigned char packetLength[2];
566 unsigned char packetLength[2];
567 // DATA FIELD HEADER
567 // DATA FIELD HEADER
568 unsigned char headerFlag_pusVersion_Ack;
568 unsigned char headerFlag_pusVersion_Ack;
569 unsigned char serviceType;
569 unsigned char serviceType;
570 unsigned char serviceSubType;
570 unsigned char serviceSubType;
571 unsigned char sourceID;
571 unsigned char sourceID;
572 unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
572 unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10];
573 } ccsdsTelecommandPacket_t;
573 } ccsdsTelecommandPacket_t;
574
574
575 typedef struct {
575 typedef struct {
576 unsigned char targetLogicalAddress;
576 unsigned char targetLogicalAddress;
577 unsigned char protocolIdentifier;
577 unsigned char protocolIdentifier;
578 unsigned char reserved;
578 unsigned char reserved;
579 unsigned char userApplication;
579 unsigned char userApplication;
580 unsigned char packetID[2];
580 unsigned char packetID[2];
581 unsigned char packetSequenceControl[2];
581 unsigned char packetSequenceControl[2];
582 unsigned char packetLength[2];
582 unsigned char packetLength[2];
583 unsigned char spare1_pusVersion_spare2;
583 unsigned char spare1_pusVersion_spare2;
584 unsigned char serviceType;
584 unsigned char serviceType;
585 unsigned char serviceSubType;
585 unsigned char serviceSubType;
586 unsigned char destinationID;
586 unsigned char destinationID;
587 unsigned char time[6];
587 unsigned char time[6];
588 unsigned char sid;
588 unsigned char sid;
589
589
590 //**************
590 //**************
591 // HK PARAMETERS
591 // HK PARAMETERS
592 unsigned char lfr_status_word[2];
592 unsigned char lfr_status_word[2];
593 unsigned char lfr_sw_version[4];
593 unsigned char lfr_sw_version[4];
594 unsigned char lfr_fpga_version[3];
594 unsigned char lfr_fpga_version[3];
595 // ressource statistics
595 // ressource statistics
596 unsigned char hk_lfr_cpu_load;
596 unsigned char hk_lfr_cpu_load;
597 unsigned char hk_lfr_cpu_load_max;
597 unsigned char hk_lfr_cpu_load_max;
598 unsigned char hk_lfr_cpu_load_aver;
598 unsigned char hk_lfr_cpu_load_aver;
599 unsigned char hk_lfr_q_sd_fifo_size_max;
599 unsigned char hk_lfr_q_sd_fifo_size_max;
600 unsigned char hk_lfr_q_sd_fifo_size;
600 unsigned char hk_lfr_q_sd_fifo_size;
601 unsigned char hk_lfr_q_rv_fifo_size_max;
601 unsigned char hk_lfr_q_rv_fifo_size_max;
602 unsigned char hk_lfr_q_rv_fifo_size;
602 unsigned char hk_lfr_q_rv_fifo_size;
603 unsigned char hk_lfr_q_p0_fifo_size_max;
603 unsigned char hk_lfr_q_p0_fifo_size_max;
604 unsigned char hk_lfr_q_p0_fifo_size;
604 unsigned char hk_lfr_q_p0_fifo_size;
605 unsigned char hk_lfr_q_p1_fifo_size_max;
605 unsigned char hk_lfr_q_p1_fifo_size_max;
606 unsigned char hk_lfr_q_p1_fifo_size;
606 unsigned char hk_lfr_q_p1_fifo_size;
607 unsigned char hk_lfr_q_p2_fifo_size_max;
607 unsigned char hk_lfr_q_p2_fifo_size_max;
608 unsigned char hk_lfr_q_p2_fifo_size;
608 unsigned char hk_lfr_q_p2_fifo_size;
609 // tc statistics
609 // tc statistics
610 unsigned char hk_lfr_update_info_tc_cnt[2];
610 unsigned char hk_lfr_update_info_tc_cnt[2];
611 unsigned char hk_lfr_update_time_tc_cnt[2];
611 unsigned char hk_lfr_update_time_tc_cnt[2];
612 unsigned char hk_lfr_exe_tc_cnt[2];
612 unsigned char hk_lfr_exe_tc_cnt[2];
613 unsigned char hk_lfr_rej_tc_cnt[2];
613 unsigned char hk_lfr_rej_tc_cnt[2];
614 unsigned char hk_lfr_last_exe_tc_id[2];
614 unsigned char hk_lfr_last_exe_tc_id[2];
615 unsigned char hk_lfr_last_exe_tc_type[2];
615 unsigned char hk_lfr_last_exe_tc_type[2];
616 unsigned char hk_lfr_last_exe_tc_subtype[2];
616 unsigned char hk_lfr_last_exe_tc_subtype[2];
617 unsigned char hk_lfr_last_exe_tc_time[6];
617 unsigned char hk_lfr_last_exe_tc_time[6];
618 unsigned char hk_lfr_last_rej_tc_id[2];
618 unsigned char hk_lfr_last_rej_tc_id[2];
619 unsigned char hk_lfr_last_rej_tc_type[2];
619 unsigned char hk_lfr_last_rej_tc_type[2];
620 unsigned char hk_lfr_last_rej_tc_subtype[2];
620 unsigned char hk_lfr_last_rej_tc_subtype[2];
621 unsigned char hk_lfr_last_rej_tc_time[6];
621 unsigned char hk_lfr_last_rej_tc_time[6];
622 // anomaly statistics
622 // anomaly statistics
623 unsigned char hk_lfr_le_cnt[2];
623 unsigned char hk_lfr_le_cnt[2];
624 unsigned char hk_lfr_me_cnt[2];
624 unsigned char hk_lfr_me_cnt[2];
625 unsigned char hk_lfr_he_cnt[2];
625 unsigned char hk_lfr_he_cnt[2];
626 unsigned char hk_lfr_last_er_rid[2];
626 unsigned char hk_lfr_last_er_rid[2];
627 unsigned char hk_lfr_last_er_code;
627 unsigned char hk_lfr_last_er_code;
628 unsigned char hk_lfr_last_er_time[6];
628 unsigned char hk_lfr_last_er_time[6];
629 // vhdl_blk_status
629 // vhdl_blk_status
630 unsigned char hk_lfr_vhdl_aa_sm;
630 unsigned char hk_lfr_vhdl_aa_sm;
631 unsigned char hk_lfr_vhdl_fft_sr;
631 unsigned char hk_lfr_vhdl_fft_sr;
632 unsigned char hk_lfr_vhdl_cic_hk;
632 unsigned char hk_lfr_vhdl_cic_hk;
633 unsigned char hk_lfr_vhdl_iir_cal;
633 unsigned char hk_lfr_vhdl_iir_cal;
634 // spacewire_if_statistics
634 // spacewire_if_statistics
635 unsigned char hk_lfr_dpu_spw_pkt_rcv_cnt[2];
635 unsigned char hk_lfr_dpu_spw_pkt_rcv_cnt[2];
636 unsigned char hk_lfr_dpu_spw_pkt_sent_cnt[2];
636 unsigned char hk_lfr_dpu_spw_pkt_sent_cnt[2];
637 unsigned char hk_lfr_dpu_spw_tick_out_cnt;
637 unsigned char hk_lfr_dpu_spw_tick_out_cnt;
638 unsigned char hk_lfr_dpu_spw_last_timc;
638 unsigned char hk_lfr_dpu_spw_last_timc;
639 // ahb error statistics
639 // ahb error statistics
640 unsigned char hk_lfr_last_fail_addr[4];
640 unsigned char hk_lfr_last_fail_addr[4];
641 // temperatures
641 // temperatures
642 unsigned char hk_lfr_temp_scm[2];
642 unsigned char hk_lfr_temp_scm[2];
643 unsigned char hk_lfr_temp_pcb[2];
643 unsigned char hk_lfr_temp_pcb[2];
644 unsigned char hk_lfr_temp_fpga[2];
644 unsigned char hk_lfr_temp_fpga[2];
645 // spacecraft potential
645 // spacecraft potential
646 unsigned char hk_lfr_sc_v_f3[2];
646 unsigned char hk_lfr_sc_v_f3[2];
647 unsigned char hk_lfr_sc_e1_f3[2];
647 unsigned char hk_lfr_sc_e1_f3[2];
648 unsigned char hk_lfr_sc_e2_f3[2];
648 unsigned char hk_lfr_sc_e2_f3[2];
649 // lfr common parameters
649 // lfr common parameters
650 unsigned char sy_lfr_common_parameters_spare;
650 unsigned char sy_lfr_common_parameters_spare;
651 unsigned char sy_lfr_common_parameters;
651 unsigned char sy_lfr_common_parameters;
652 // error counters
652 // error counters
653 unsigned char hk_lfr_dpu_spw_parity;
653 unsigned char hk_lfr_dpu_spw_parity;
654 unsigned char hk_lfr_dpu_spw_disconnect;
654 unsigned char hk_lfr_dpu_spw_disconnect;
655 unsigned char hk_lfr_dpu_spw_escape;
655 unsigned char hk_lfr_dpu_spw_escape;
656 unsigned char hk_lfr_dpu_spw_credit;
656 unsigned char hk_lfr_dpu_spw_credit;
657 unsigned char hk_lfr_dpu_spw_write_sync;
657 unsigned char hk_lfr_dpu_spw_write_sync;
658 unsigned char hk_lfr_dpu_spw_rx_ahb;
658 unsigned char hk_lfr_dpu_spw_rx_ahb;
659 unsigned char hk_lfr_dpu_spw_tx_ahb;
659 unsigned char hk_lfr_dpu_spw_tx_ahb;
660 unsigned char hk_lfr_dpu_spw_early_eop;
660 unsigned char hk_lfr_dpu_spw_early_eop;
661 unsigned char hk_lfr_dpu_spw_invalid_addr;
661 unsigned char hk_lfr_dpu_spw_invalid_addr;
662 unsigned char hk_lfr_dpu_spw_eep;
662 unsigned char hk_lfr_dpu_spw_eep;
663 unsigned char hk_lfr_dpu_spw_rx_too_big;
663 unsigned char hk_lfr_dpu_spw_rx_too_big;
664 // timecode
664 // timecode
665 unsigned char hk_lfr_timecode_erroneous;
665 unsigned char hk_lfr_timecode_erroneous;
666 unsigned char hk_lfr_timecode_missing;
666 unsigned char hk_lfr_timecode_missing;
667 unsigned char hk_lfr_timecode_invalid;
667 unsigned char hk_lfr_timecode_invalid;
668 // time
668 // time
669 unsigned char hk_lfr_time_timecode_it;
669 unsigned char hk_lfr_time_timecode_it;
670 unsigned char hk_lfr_time_not_synchro;
670 unsigned char hk_lfr_time_not_synchro;
671 unsigned char hk_lfr_time_timecode_ctr;
671 unsigned char hk_lfr_time_timecode_ctr;
672 // hk_lfr_buffer_dpu_
672 // hk_lfr_buffer_dpu_
673 unsigned char hk_lfr_buffer_dpu_tc_fifo;
673 unsigned char hk_lfr_buffer_dpu_tc_fifo;
674 unsigned char hk_lfr_buffer_dpu_tm_fifo;
674 unsigned char hk_lfr_buffer_dpu_tm_fifo;
675 // hk_lfr_ahb_
675 // hk_lfr_ahb_
676 unsigned char hk_lfr_ahb_correctable;
676 unsigned char hk_lfr_ahb_correctable;
677 unsigned char hk_lfr_ahb_uncorrectable;
678 // reaction wheel frequency
677 // reaction wheel frequency
679 unsigned char hk_lfr_sc_rw_f_flags;
678 unsigned char hk_lfr_sc_rw1_rw2_f_flags;
679 unsigned char hk_lfr_sc_rw3_rw4_f_flags;
680 } Packet_TM_LFR_HK_t;
680 } Packet_TM_LFR_HK_t;
681
681
682 typedef struct {
682 typedef struct {
683 unsigned char targetLogicalAddress;
683 unsigned char targetLogicalAddress;
684 unsigned char protocolIdentifier;
684 unsigned char protocolIdentifier;
685 unsigned char reserved;
685 unsigned char reserved;
686 unsigned char userApplication;
686 unsigned char userApplication;
687 unsigned char packetID[2];
687 unsigned char packetID[2];
688 unsigned char packetSequenceControl[2];
688 unsigned char packetSequenceControl[2];
689 unsigned char packetLength[2];
689 unsigned char packetLength[2];
690 // DATA FIELD HEADER
690 // DATA FIELD HEADER
691 unsigned char spare1_pusVersion_spare2;
691 unsigned char spare1_pusVersion_spare2;
692 unsigned char serviceType;
692 unsigned char serviceType;
693 unsigned char serviceSubType;
693 unsigned char serviceSubType;
694 unsigned char destinationID;
694 unsigned char destinationID;
695 unsigned char time[6];
695 unsigned char time[6];
696 unsigned char sid;
696 unsigned char sid;
697
697
698 //******************
698 //******************
699 // COMMON PARAMETERS
699 // COMMON PARAMETERS
700 unsigned char sy_lfr_common_parameters_spare;
700 unsigned char sy_lfr_common_parameters_spare;
701 unsigned char sy_lfr_common_parameters;
701 unsigned char sy_lfr_common_parameters;
702
702
703 //******************
703 //******************
704 // NORMAL PARAMETERS
704 // NORMAL PARAMETERS
705 unsigned char sy_lfr_n_swf_l[2];
705 unsigned char sy_lfr_n_swf_l[2];
706 unsigned char sy_lfr_n_swf_p[2];
706 unsigned char sy_lfr_n_swf_p[2];
707 unsigned char sy_lfr_n_asm_p[2];
707 unsigned char sy_lfr_n_asm_p[2];
708 unsigned char sy_lfr_n_bp_p0;
708 unsigned char sy_lfr_n_bp_p0;
709 unsigned char sy_lfr_n_bp_p1;
709 unsigned char sy_lfr_n_bp_p1;
710 unsigned char sy_lfr_n_cwf_long_f3;
710 unsigned char sy_lfr_n_cwf_long_f3;
711 unsigned char pa_rpw_spare8_1;
711 unsigned char pa_rpw_spare8_1;
712
712
713 //*****************
713 //*****************
714 // BURST PARAMETERS
714 // BURST PARAMETERS
715 unsigned char sy_lfr_b_bp_p0;
715 unsigned char sy_lfr_b_bp_p0;
716 unsigned char sy_lfr_b_bp_p1;
716 unsigned char sy_lfr_b_bp_p1;
717
717
718 //****************
718 //****************
719 // SBM1 PARAMETERS
719 // SBM1 PARAMETERS
720 unsigned char sy_lfr_s1_bp_p0;
720 unsigned char sy_lfr_s1_bp_p0;
721 unsigned char sy_lfr_s1_bp_p1;
721 unsigned char sy_lfr_s1_bp_p1;
722
722
723 //****************
723 //****************
724 // SBM2 PARAMETERS
724 // SBM2 PARAMETERS
725 unsigned char sy_lfr_s2_bp_p0;
725 unsigned char sy_lfr_s2_bp_p0;
726 unsigned char sy_lfr_s2_bp_p1;
726 unsigned char sy_lfr_s2_bp_p1;
727
727
728 // mask F0
728 // mask F0
729 unsigned char sy_lfr_fbins_f0_word1[4];
729 unsigned char sy_lfr_fbins_f0_word1[4];
730 unsigned char sy_lfr_fbins_f0_word2[4];
730 unsigned char sy_lfr_fbins_f0_word2[4];
731 unsigned char sy_lfr_fbins_f0_word3[4];
731 unsigned char sy_lfr_fbins_f0_word3[4];
732 unsigned char sy_lfr_fbins_f0_word4[4];
732 unsigned char sy_lfr_fbins_f0_word4[4];
733 // mask F1
733 // mask F1
734 unsigned char sy_lfr_fbins_f1_word1[4];
734 unsigned char sy_lfr_fbins_f1_word1[4];
735 unsigned char sy_lfr_fbins_f1_word2[4];
735 unsigned char sy_lfr_fbins_f1_word2[4];
736 unsigned char sy_lfr_fbins_f1_word3[4];
736 unsigned char sy_lfr_fbins_f1_word3[4];
737 unsigned char sy_lfr_fbins_f1_word4[4];
737 unsigned char sy_lfr_fbins_f1_word4[4];
738 // mask F2
738 // mask F2
739 unsigned char sy_lfr_fbins_f2_word1[4];
739 unsigned char sy_lfr_fbins_f2_word1[4];
740 unsigned char sy_lfr_fbins_f2_word2[4];
740 unsigned char sy_lfr_fbins_f2_word2[4];
741 unsigned char sy_lfr_fbins_f2_word3[4];
741 unsigned char sy_lfr_fbins_f2_word3[4];
742 unsigned char sy_lfr_fbins_f2_word4[4];
742 unsigned char sy_lfr_fbins_f2_word4[4];
743
743
744 // PAS FILTER PARAMETERS
744 // PAS FILTER PARAMETERS
745 unsigned char pa_rpw_spare8_2;
745 unsigned char pa_rpw_spare8_2;
746 unsigned char spare_sy_lfr_pas_filter_enabled;
746 unsigned char spare_sy_lfr_pas_filter_enabled;
747 unsigned char sy_lfr_pas_filter_modulus;
747 unsigned char sy_lfr_pas_filter_modulus;
748 unsigned char sy_lfr_pas_filter_tbad[4];
748 unsigned char sy_lfr_pas_filter_tbad[4];
749 unsigned char sy_lfr_pas_filter_offset;
749 unsigned char sy_lfr_pas_filter_offset;
750 unsigned char sy_lfr_pas_filter_shift[4];
750 unsigned char sy_lfr_pas_filter_shift[4];
751 unsigned char sy_lfr_sc_rw_delta_f[4];
751 unsigned char sy_lfr_sc_rw_delta_f[4];
752
752
753 // RW1_K
754 unsigned char sy_lfr_rw1_k1[4];
755 unsigned char sy_lfr_rw1_k2[4];
756 unsigned char sy_lfr_rw1_k3[4];
757 unsigned char sy_lfr_rw1_k4[4];
758 // RW2_K
759 unsigned char sy_lfr_rw2_k1[4];
760 unsigned char sy_lfr_rw2_k2[4];
761 unsigned char sy_lfr_rw2_k3[4];
762 unsigned char sy_lfr_rw2_k4[4];
763 // RW3_K
764 unsigned char sy_lfr_rw3_k1[4];
765 unsigned char sy_lfr_rw3_k2[4];
766 unsigned char sy_lfr_rw3_k3[4];
767 unsigned char sy_lfr_rw3_k4[4];
768 // RW4_K
769 unsigned char sy_lfr_rw4_k1[4];
770 unsigned char sy_lfr_rw4_k2[4];
771 unsigned char sy_lfr_rw4_k3[4];
772 unsigned char sy_lfr_rw4_k4[4];
773
753 // LFR_RW_MASK
774 // LFR_RW_MASK
754 unsigned char sy_lfr_rw_mask_f0_word1[4];
775 unsigned char sy_lfr_rw_mask_f0_word1[4];
755 unsigned char sy_lfr_rw_mask_f0_word2[4];
776 unsigned char sy_lfr_rw_mask_f0_word2[4];
756 unsigned char sy_lfr_rw_mask_f0_word3[4];
777 unsigned char sy_lfr_rw_mask_f0_word3[4];
757 unsigned char sy_lfr_rw_mask_f0_word4[4];
778 unsigned char sy_lfr_rw_mask_f0_word4[4];
758 unsigned char sy_lfr_rw_mask_f1_word1[4];
779 unsigned char sy_lfr_rw_mask_f1_word1[4];
759 unsigned char sy_lfr_rw_mask_f1_word2[4];
780 unsigned char sy_lfr_rw_mask_f1_word2[4];
760 unsigned char sy_lfr_rw_mask_f1_word3[4];
781 unsigned char sy_lfr_rw_mask_f1_word3[4];
761 unsigned char sy_lfr_rw_mask_f1_word4[4];
782 unsigned char sy_lfr_rw_mask_f1_word4[4];
762 unsigned char sy_lfr_rw_mask_f2_word1[4];
783 unsigned char sy_lfr_rw_mask_f2_word1[4];
763 unsigned char sy_lfr_rw_mask_f2_word2[4];
784 unsigned char sy_lfr_rw_mask_f2_word2[4];
764 unsigned char sy_lfr_rw_mask_f2_word3[4];
785 unsigned char sy_lfr_rw_mask_f2_word3[4];
765 unsigned char sy_lfr_rw_mask_f2_word4[4];
786 unsigned char sy_lfr_rw_mask_f2_word4[4];
766
787
767 // SPARE
788 // SPARE
768 unsigned char pa_rpw_spare8_3;
789 unsigned char pa_rpw_spare8_3;
769 } Packet_TM_LFR_PARAMETER_DUMP_t;
790 } Packet_TM_LFR_PARAMETER_DUMP_t;
770
791
771 typedef struct {
792 typedef struct {
772 unsigned char targetLogicalAddress;
793 unsigned char targetLogicalAddress;
773 unsigned char protocolIdentifier;
794 unsigned char protocolIdentifier;
774 unsigned char reserved;
795 unsigned char reserved;
775 unsigned char userApplication;
796 unsigned char userApplication;
776 unsigned char packetID[2];
797 unsigned char packetID[2];
777 unsigned char packetSequenceControl[2];
798 unsigned char packetSequenceControl[2];
778 unsigned char packetLength[2];
799 unsigned char packetLength[2];
779 // DATA FIELD HEADER
800 // DATA FIELD HEADER
780 unsigned char spare1_pusVersion_spare2;
801 unsigned char spare1_pusVersion_spare2;
781 unsigned char serviceType;
802 unsigned char serviceType;
782 unsigned char serviceSubType;
803 unsigned char serviceSubType;
783 unsigned char destinationID;
804 unsigned char destinationID;
784 unsigned char time[6];
805 unsigned char time[6];
785 unsigned char sid;
806 unsigned char sid;
786 unsigned char pkt_cnt;
807 unsigned char pkt_cnt;
787 unsigned char pkt_nr;
808 unsigned char pkt_nr;
788 unsigned char blk_nr;
809 unsigned char blk_nr;
789
810
790 //******************
811 //******************
791 // SOURCE DATA repeated N times with N in [0 .. PA_LFR_KCOEFF_BLK_NR]
812 // SOURCE DATA repeated N times with N in [0 .. PA_LFR_KCOEFF_BLK_NR]
792 unsigned char kcoeff_blks[3900]; // one blk is 2 + 4 * 32 = 130 bytes, 30 blks max in one packet (30 * 130 = 3900)
813 unsigned char kcoeff_blks[3900]; // one blk is 2 + 4 * 32 = 130 bytes, 30 blks max in one packet (30 * 130 = 3900)
793
814
794 } Packet_TM_LFR_KCOEFFICIENTS_DUMP_t;
815 } Packet_TM_LFR_KCOEFFICIENTS_DUMP_t;
795
816
796 #endif // CCSDS_TYPES_H_INCLUDED
817 #endif // CCSDS_TYPES_H_INCLUDED
@@ -1,304 +1,351
1 #ifndef FSW_PARAMS_H_INCLUDED
1 #ifndef FSW_PARAMS_H_INCLUDED
2 #define FSW_PARAMS_H_INCLUDED
2 #define FSW_PARAMS_H_INCLUDED
3
3
4 #include "fsw_params_processing.h"
4 #include "fsw_params_processing.h"
5 #include "fsw_params_nb_bytes.h"
5 #include "fsw_params_nb_bytes.h"
6 #include "tm_byte_positions.h"
6 #include "tm_byte_positions.h"
7 #include "ccsds_types.h"
7 #include "ccsds_types.h"
8
8
9 #define GRSPW_DEVICE_NAME "/dev/grspw0"
9 #define GRSPW_DEVICE_NAME "/dev/grspw0"
10 #define UART_DEVICE_NAME "/dev/console"
10 #define UART_DEVICE_NAME "/dev/console"
11
11
12 enum lfr_transition_type_t{
12 enum lfr_transition_type_t{
13 TRANSITION_NOT_SPECIFIC,
13 TRANSITION_NOT_SPECIFIC,
14 TRANSITION_NORM_TO_S1,
14 TRANSITION_NORM_TO_S1,
15 TRANSITION_NORM_TO_S2,
15 TRANSITION_NORM_TO_S2,
16 TRANSITION_S1_TO_NORM,
16 TRANSITION_S1_TO_NORM,
17 TRANSITION_S2_TO_NORM,
17 TRANSITION_S2_TO_NORM,
18 TRANSITION_S1_TO_S2,
18 TRANSITION_S1_TO_S2,
19 TRANSITION_S2_TO_S1
19 TRANSITION_S2_TO_S1
20 };
20 };
21
21
22 typedef struct ring_node
22 typedef struct ring_node
23 {
23 {
24 struct ring_node *previous;
24 struct ring_node *previous;
25 struct ring_node *next;
25 struct ring_node *next;
26 unsigned int sid;
26 unsigned int sid;
27 unsigned int coarseTime;
27 unsigned int coarseTime;
28 unsigned int fineTime;
28 unsigned int fineTime;
29 int buffer_address;
29 int buffer_address;
30 unsigned int status;
30 unsigned int status;
31 } ring_node;
31 } ring_node;
32
32
33 //************************
33 //************************
34 // flight software version
34 // flight software version
35 // this parameters is handled by the Qt project options
35 // this parameters is handled by the Qt project options
36
36
37 #define NB_PACKETS_PER_GROUP_OF_CWF 8 // 8 packets containing 336 blk
37 #define NB_PACKETS_PER_GROUP_OF_CWF 8 // 8 packets containing 336 blk
38 #define NB_PACKETS_PER_GROUP_OF_CWF_LIGHT 4 // 4 packets containing 672 blk
38 #define NB_PACKETS_PER_GROUP_OF_CWF_LIGHT 4 // 4 packets containing 672 blk
39 #define NB_SAMPLES_PER_SNAPSHOT 2688 // 336 * 8 = 672 * 4 = 2688
39 #define NB_SAMPLES_PER_SNAPSHOT 2688 // 336 * 8 = 672 * 4 = 2688
40 #define TIME_OFFSET 2
40 #define TIME_OFFSET 2
41 #define TIME_OFFSET_IN_BYTES 8
41 #define TIME_OFFSET_IN_BYTES 8
42 //#define WAVEFORM_EXTENDED_HEADER_OFFSET 22
42 //#define WAVEFORM_EXTENDED_HEADER_OFFSET 22
43 #define NB_BYTES_SWF_BLK (2 * 6)
43 #define NB_BYTES_SWF_BLK (2 * 6)
44 #define NB_WORDS_SWF_BLK 3
44 #define NB_WORDS_SWF_BLK 3
45 #define NB_BYTES_CWF3_LIGHT_BLK 6
45 #define NB_BYTES_CWF3_LIGHT_BLK 6
46 //#define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
46 //#define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
47 #define NB_RING_NODES_F0 3 // AT LEAST 3
47 #define NB_RING_NODES_F0 3 // AT LEAST 3
48 #define NB_RING_NODES_F1 5 // AT LEAST 3
48 #define NB_RING_NODES_F1 5 // AT LEAST 3
49 #define NB_RING_NODES_F2 5 // AT LEAST 3
49 #define NB_RING_NODES_F2 5 // AT LEAST 3
50 #define NB_RING_NODES_F3 3 // AT LEAST 3
50 #define NB_RING_NODES_F3 3 // AT LEAST 3
51
51
52 //**********
52 //**********
53 // LFR MODES
53 // LFR MODES
54 #define LFR_MODE_STANDBY 0
54 #define LFR_MODE_STANDBY 0
55 #define LFR_MODE_NORMAL 1
55 #define LFR_MODE_NORMAL 1
56 #define LFR_MODE_BURST 2
56 #define LFR_MODE_BURST 2
57 #define LFR_MODE_SBM1 3
57 #define LFR_MODE_SBM1 3
58 #define LFR_MODE_SBM2 4
58 #define LFR_MODE_SBM2 4
59
59
60 #define TDS_MODE_LFM 5
60 #define TDS_MODE_LFM 5
61 #define TDS_MODE_STANDBY 0
61 #define TDS_MODE_STANDBY 0
62 #define TDS_MODE_NORMAL 1
62 #define TDS_MODE_NORMAL 1
63 #define TDS_MODE_BURST 2
63 #define TDS_MODE_BURST 2
64 #define TDS_MODE_SBM1 3
64 #define TDS_MODE_SBM1 3
65 #define TDS_MODE_SBM2 4
65 #define TDS_MODE_SBM2 4
66
66
67 #define THR_MODE_STANDBY 0
67 #define THR_MODE_STANDBY 0
68 #define THR_MODE_NORMAL 1
68 #define THR_MODE_NORMAL 1
69 #define THR_MODE_BURST 2
69 #define THR_MODE_BURST 2
70
70
71 #define RTEMS_EVENT_MODE_STANDBY RTEMS_EVENT_0
71 #define RTEMS_EVENT_MODE_STANDBY RTEMS_EVENT_0
72 #define RTEMS_EVENT_MODE_NORMAL RTEMS_EVENT_1
72 #define RTEMS_EVENT_MODE_NORMAL RTEMS_EVENT_1
73 #define RTEMS_EVENT_MODE_BURST RTEMS_EVENT_2
73 #define RTEMS_EVENT_MODE_BURST RTEMS_EVENT_2
74 #define RTEMS_EVENT_MODE_SBM1 RTEMS_EVENT_3
74 #define RTEMS_EVENT_MODE_SBM1 RTEMS_EVENT_3
75 #define RTEMS_EVENT_MODE_SBM2 RTEMS_EVENT_4
75 #define RTEMS_EVENT_MODE_SBM2 RTEMS_EVENT_4
76 #define RTEMS_EVENT_MODE_NORM_S1_S2 RTEMS_EVENT_5
76 #define RTEMS_EVENT_MODE_NORM_S1_S2 RTEMS_EVENT_5
77 #define RTEMS_EVENT_NORM_BP1_F0 RTEMS_EVENT_6
77 #define RTEMS_EVENT_NORM_BP1_F0 RTEMS_EVENT_6
78 #define RTEMS_EVENT_NORM_BP2_F0 RTEMS_EVENT_7
78 #define RTEMS_EVENT_NORM_BP2_F0 RTEMS_EVENT_7
79 #define RTEMS_EVENT_NORM_ASM_F0 RTEMS_EVENT_8 // ASM only in NORM mode
79 #define RTEMS_EVENT_NORM_ASM_F0 RTEMS_EVENT_8 // ASM only in NORM mode
80 #define RTEMS_EVENT_NORM_BP1_F1 RTEMS_EVENT_9
80 #define RTEMS_EVENT_NORM_BP1_F1 RTEMS_EVENT_9
81 #define RTEMS_EVENT_NORM_BP2_F1 RTEMS_EVENT_10
81 #define RTEMS_EVENT_NORM_BP2_F1 RTEMS_EVENT_10
82 #define RTEMS_EVENT_NORM_ASM_F1 RTEMS_EVENT_11 // ASM only in NORM mode
82 #define RTEMS_EVENT_NORM_ASM_F1 RTEMS_EVENT_11 // ASM only in NORM mode
83 #define RTEMS_EVENT_NORM_BP1_F2 RTEMS_EVENT_12
83 #define RTEMS_EVENT_NORM_BP1_F2 RTEMS_EVENT_12
84 #define RTEMS_EVENT_NORM_BP2_F2 RTEMS_EVENT_13
84 #define RTEMS_EVENT_NORM_BP2_F2 RTEMS_EVENT_13
85 #define RTEMS_EVENT_NORM_ASM_F2 RTEMS_EVENT_14 // ASM only in NORM mode
85 #define RTEMS_EVENT_NORM_ASM_F2 RTEMS_EVENT_14 // ASM only in NORM mode
86 #define RTEMS_EVENT_SBM_BP1_F0 RTEMS_EVENT_15
86 #define RTEMS_EVENT_SBM_BP1_F0 RTEMS_EVENT_15
87 #define RTEMS_EVENT_SBM_BP2_F0 RTEMS_EVENT_16
87 #define RTEMS_EVENT_SBM_BP2_F0 RTEMS_EVENT_16
88 #define RTEMS_EVENT_SBM_BP1_F1 RTEMS_EVENT_17
88 #define RTEMS_EVENT_SBM_BP1_F1 RTEMS_EVENT_17
89 #define RTEMS_EVENT_SBM_BP2_F1 RTEMS_EVENT_18
89 #define RTEMS_EVENT_SBM_BP2_F1 RTEMS_EVENT_18
90 #define RTEMS_EVENT_BURST_BP1_F0 RTEMS_EVENT_19
90 #define RTEMS_EVENT_BURST_BP1_F0 RTEMS_EVENT_19
91 #define RTEMS_EVENT_BURST_BP2_F0 RTEMS_EVENT_20
91 #define RTEMS_EVENT_BURST_BP2_F0 RTEMS_EVENT_20
92 #define RTEMS_EVENT_BURST_BP1_F1 RTEMS_EVENT_21
92 #define RTEMS_EVENT_BURST_BP1_F1 RTEMS_EVENT_21
93 #define RTEMS_EVENT_BURST_BP2_F1 RTEMS_EVENT_22
93 #define RTEMS_EVENT_BURST_BP2_F1 RTEMS_EVENT_22
94 #define RTEMS_EVENT_SWF_RESYNCH RTEMS_EVENT_23
94 #define RTEMS_EVENT_SWF_RESYNCH RTEMS_EVENT_23
95
95
96 //****************************
96 //****************************
97 // LFR DEFAULT MODE PARAMETERS
97 // LFR DEFAULT MODE PARAMETERS
98 #define DEFAULT_LAST_VALID_TRANSITION_DATE 0xffffffff
98 #define DEFAULT_LAST_VALID_TRANSITION_DATE 0xffffffff
99 // COMMON
99 // COMMON
100 #define DEFAULT_SY_LFR_COMMON0 0x00
100 #define DEFAULT_SY_LFR_COMMON0 0x00
101 #define DEFAULT_SY_LFR_COMMON1 0x20 // default value bw sp0 sp1 r0 r1 r2 = 1 0 0 0 0 0
101 #define DEFAULT_SY_LFR_COMMON1 0x20 // default value bw sp0 sp1 r0 r1 r2 = 1 0 0 0 0 0
102 // NORM
102 // NORM
103 #define DFLT_SY_LFR_N_SWF_L 2048 // nb sample
103 #define DFLT_SY_LFR_N_SWF_L 2048 // nb sample
104 #define DFLT_SY_LFR_N_SWF_P 300 // sec
104 #define DFLT_SY_LFR_N_SWF_P 300 // sec
105 #define DFLT_SY_LFR_N_ASM_P 3600 // sec
105 #define DFLT_SY_LFR_N_ASM_P 3600 // sec
106 #define DFLT_SY_LFR_N_BP_P0 4 // sec
106 #define DFLT_SY_LFR_N_BP_P0 4 // sec
107 #define DFLT_SY_LFR_N_BP_P1 20 // sec
107 #define DFLT_SY_LFR_N_BP_P1 20 // sec
108 #define DFLT_SY_LFR_N_CWF_LONG_F3 0 // 0 => production of light continuous waveforms at f3
108 #define DFLT_SY_LFR_N_CWF_LONG_F3 0 // 0 => production of light continuous waveforms at f3
109 #define MIN_DELTA_SNAPSHOT 16 // sec
109 #define MIN_DELTA_SNAPSHOT 16 // sec
110 // BURST
110 // BURST
111 #define DEFAULT_SY_LFR_B_BP_P0 1 // sec
111 #define DEFAULT_SY_LFR_B_BP_P0 1 // sec
112 #define DEFAULT_SY_LFR_B_BP_P1 5 // sec
112 #define DEFAULT_SY_LFR_B_BP_P1 5 // sec
113 // SBM1
113 // SBM1
114 #define DEFAULT_SY_LFR_S1_BP_P0 1 // sec
114 #define DEFAULT_SY_LFR_S1_BP_P0 1 // sec
115 #define DEFAULT_SY_LFR_S1_BP_P1 1 // sec
115 #define DEFAULT_SY_LFR_S1_BP_P1 1 // sec
116 // SBM2
116 // SBM2
117 #define DEFAULT_SY_LFR_S2_BP_P0 1 // sec
117 #define DEFAULT_SY_LFR_S2_BP_P0 1 // sec
118 #define DEFAULT_SY_LFR_S2_BP_P1 5 // sec
118 #define DEFAULT_SY_LFR_S2_BP_P1 5 // sec
119 // ADDITIONAL PARAMETERS
119 // ADDITIONAL PARAMETERS
120 #define TIME_BETWEEN_TWO_SWF_PACKETS 30 // nb x 10 ms => 300 ms
120 #define TIME_BETWEEN_TWO_SWF_PACKETS 30 // nb x 10 ms => 300 ms
121 #define TIME_BETWEEN_TWO_CWF3_PACKETS 1000 // nb x 10 ms => 10 s
121 #define TIME_BETWEEN_TWO_CWF3_PACKETS 1000 // nb x 10 ms => 10 s
122 // STATUS WORD
122 // STATUS WORD
123 #define DEFAULT_STATUS_WORD_BYTE0 0x0d // [0000] [1] [101] mode 4 bits / SPW enabled 1 bit / state is run 3 bits
123 #define DEFAULT_STATUS_WORD_BYTE0 0x0d // [0000] [1] [101] mode 4 bits / SPW enabled 1 bit / state is run 3 bits
124 #define DEFAULT_STATUS_WORD_BYTE1 0x00
124 #define DEFAULT_STATUS_WORD_BYTE1 0x00
125 //
125 //
126 #define SY_LFR_DPU_CONNECT_TIMEOUT 100 // 100 * 10 ms = 1 s
126 #define SY_LFR_DPU_CONNECT_TIMEOUT 100 // 100 * 10 ms = 1 s
127 #define SY_LFR_DPU_CONNECT_ATTEMPT 3
127 #define SY_LFR_DPU_CONNECT_ATTEMPT 3
128 //****************************
128 //****************************
129
129
130 //*****************************
130 //*****************************
131 // APB REGISTERS BASE ADDRESSES
131 // APB REGISTERS BASE ADDRESSES
132 #define REGS_ADDR_APBUART 0x80000100
132 #define REGS_ADDR_APBUART 0x80000100
133 #define REGS_ADDR_GPTIMER 0x80000300
133 #define REGS_ADDR_GPTIMER 0x80000300
134 #define REGS_ADDR_GRSPW 0x80000500
134 #define REGS_ADDR_GRSPW 0x80000500
135 #define APB_OFFSET_GRSPW_STATUS_REGISTER 0x04
135 #define APB_OFFSET_GRSPW_STATUS_REGISTER 0x04
136 #define APB_OFFSET_GRSPW_TIME_REGISTER 0x14
136 #define APB_OFFSET_GRSPW_TIME_REGISTER 0x14
137 #define REGS_ADDR_TIME_MANAGEMENT 0x80000600
137 #define REGS_ADDR_TIME_MANAGEMENT 0x80000600
138 #define REGS_ADDR_GRGPIO 0x80000b00
138 #define REGS_ADDR_GRGPIO 0x80000b00
139
139
140 #define REGS_ADDR_SPECTRAL_MATRIX 0x80000f00
140 #define REGS_ADDR_SPECTRAL_MATRIX 0x80000f00
141 #define REGS_ADDR_WAVEFORM_PICKER 0x80000f54 // PDB >= 0.1.28
141 #define REGS_ADDR_WAVEFORM_PICKER 0x80000f54 // PDB >= 0.1.28
142 #define REGS_ADDR_VHDL_VERSION 0x80000ff0
142 #define REGS_ADDR_VHDL_VERSION 0x80000ff0
143
143
144 #define APBUART_CTRL_REG_MASK_DB 0xfffff7ff
144 #define APBUART_CTRL_REG_MASK_DB 0xfffff7ff
145 #define APBUART_CTRL_REG_MASK_TE 0x00000002
145 #define APBUART_CTRL_REG_MASK_TE 0x00000002
146 // scaler value = system_clock_frequency / ( baud_rate * 8 ) - 1
146 // scaler value = system_clock_frequency / ( baud_rate * 8 ) - 1
147 #define APBUART_SCALER_RELOAD_VALUE 0x00000050 // 25 MHz => about 38400
147 #define APBUART_SCALER_RELOAD_VALUE 0x00000050 // 25 MHz => about 38400
148
148
149 //**********
149 //**********
150 // IRQ LINES
150 // IRQ LINES
151 #define IRQ_GPTIMER_WATCHDOG 9
151 #define IRQ_GPTIMER_WATCHDOG 9
152 #define IRQ_SPARC_GPTIMER_WATCHDOG 0x19 // see sparcv8.pdf p.76 for interrupt levels
152 #define IRQ_SPARC_GPTIMER_WATCHDOG 0x19 // see sparcv8.pdf p.76 for interrupt levels
153 #define IRQ_WAVEFORM_PICKER 14
153 #define IRQ_WAVEFORM_PICKER 14
154 #define IRQ_SPARC_WAVEFORM_PICKER 0x1e // see sparcv8.pdf p.76 for interrupt levels
154 #define IRQ_SPARC_WAVEFORM_PICKER 0x1e // see sparcv8.pdf p.76 for interrupt levels
155 #define IRQ_SPECTRAL_MATRIX 6
155 #define IRQ_SPECTRAL_MATRIX 6
156 #define IRQ_SPARC_SPECTRAL_MATRIX 0x16 // see sparcv8.pdf p.76 for interrupt levels
156 #define IRQ_SPARC_SPECTRAL_MATRIX 0x16 // see sparcv8.pdf p.76 for interrupt levels
157
157
158 //*****
158 //*****
159 // TIME
159 // TIME
160 #define CLKDIV_WATCHDOG (10000000 - 1) // 10.0s => 10 000 000
160 #define CLKDIV_WATCHDOG (10000000 - 1) // 10.0s => 10 000 000
161 #define TIMER_WATCHDOG 1
161 #define TIMER_WATCHDOG 1
162 #define WATCHDOG_PERIOD 100 // 1s
162 #define WATCHDOG_PERIOD 100 // 1s
163 #define HK_PERIOD 100 // 100 * 10ms => 1s
163 #define HK_PERIOD 100 // 100 * 10ms => 1s
164 #define AVGV_PERIOD 6 // 6 * 10ms => 60ms (1 / 16 = 62.5ms)
164 #define AVGV_PERIOD 6 // 6 * 10ms => 60ms (1 / 16 = 62.5ms)
165 #define SY_LFR_TIME_SYN_TIMEOUT_in_ticks 200 // 200 * 10 ms = 2 s
165 #define SY_LFR_TIME_SYN_TIMEOUT_in_ticks 200 // 200 * 10 ms = 2 s
166 #define TIMECODE_TIMER_TIMEOUT 120 // 120 * 10 ms = 1.2 s
166 #define TIMECODE_TIMER_TIMEOUT 120 // 120 * 10 ms = 1.2 s
167 #define TIMECODE_TIMER_TIMEOUT_INIT 200 // 200 * 10 ms = 2.0 s
167 #define TIMECODE_TIMER_TIMEOUT_INIT 200 // 200 * 10 ms = 2.0 s
168 #define TIMECODE_MASK 0x3f // 0011 1111
168 #define TIMECODE_MASK 0x3f // 0011 1111
169
169
170 //**********
170 //**********
171 // LPP CODES
171 // LPP CODES
172 #define LFR_SUCCESSFUL 0
172 #define LFR_SUCCESSFUL 0
173 #define LFR_DEFAULT 1
173 #define LFR_DEFAULT 1
174 #define LFR_EXE_ERROR 2
174 #define LFR_EXE_ERROR 2
175
175
176 //******
176 //******
177 // RTEMS
177 // RTEMS
178 #define TASKID_AVGV 0
178 #define TASKID_AVGV 0
179 #define TASKID_RECV 1
179 #define TASKID_RECV 1
180 #define TASKID_ACTN 2
180 #define TASKID_ACTN 2
181 #define TASKID_SPIQ 3
181 #define TASKID_SPIQ 3
182 #define TASKID_LOAD 4
182 #define TASKID_LOAD 4
183 #define TASKID_AVF0 5
183 #define TASKID_AVF0 5
184 #define TASKID_SWBD 6
184 #define TASKID_SWBD 6
185 #define TASKID_WFRM 7
185 #define TASKID_WFRM 7
186 #define TASKID_DUMB 8
186 #define TASKID_DUMB 8
187 #define TASKID_HOUS 9
187 #define TASKID_HOUS 9
188 #define TASKID_PRC0 10
188 #define TASKID_PRC0 10
189 #define TASKID_CWF3 11
189 #define TASKID_CWF3 11
190 #define TASKID_CWF2 12
190 #define TASKID_CWF2 12
191 #define TASKID_CWF1 13
191 #define TASKID_CWF1 13
192 #define TASKID_SEND 14
192 #define TASKID_SEND 14
193 #define TASKID_LINK 15
193 #define TASKID_LINK 15
194 #define TASKID_AVF1 16
194 #define TASKID_AVF1 16
195 #define TASKID_PRC1 17
195 #define TASKID_PRC1 17
196 #define TASKID_AVF2 18
196 #define TASKID_AVF2 18
197 #define TASKID_PRC2 19
197 #define TASKID_PRC2 19
198
198
199 #define TASK_PRIORITY_SPIQ 5
199 #define TASK_PRIORITY_SPIQ 5
200 #define TASK_PRIORITY_LINK 20
200 #define TASK_PRIORITY_LINK 20
201 #define TASK_PRIORITY_AVGV 25
201 #define TASK_PRIORITY_AVGV 25
202 #define TASK_PRIORITY_HOUS 30
202 #define TASK_PRIORITY_HOUS 30
203 #define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together
203 #define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together
204 #define TASK_PRIORITY_CWF2 35 //
204 #define TASK_PRIORITY_CWF2 35 //
205 #define TASK_PRIORITY_SWBD 37 // SWBD has a lower priority than WFRM, this is to extract the snapshot before sending it
205 #define TASK_PRIORITY_SWBD 37 // SWBD has a lower priority than WFRM, this is to extract the snapshot before sending it
206 #define TASK_PRIORITY_WFRM 40
206 #define TASK_PRIORITY_WFRM 40
207 #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1
207 #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1
208 #define TASK_PRIORITY_SEND 45
208 #define TASK_PRIORITY_SEND 45
209 #define TASK_PRIORITY_RECV 50
209 #define TASK_PRIORITY_RECV 50
210 #define TASK_PRIORITY_ACTN 50
210 #define TASK_PRIORITY_ACTN 50
211 #define TASK_PRIORITY_AVF0 60
211 #define TASK_PRIORITY_AVF0 60
212 #define TASK_PRIORITY_AVF1 70
212 #define TASK_PRIORITY_AVF1 70
213 #define TASK_PRIORITY_PRC0 100
213 #define TASK_PRIORITY_PRC0 100
214 #define TASK_PRIORITY_PRC1 100
214 #define TASK_PRIORITY_PRC1 100
215 #define TASK_PRIORITY_AVF2 110
215 #define TASK_PRIORITY_AVF2 110
216 #define TASK_PRIORITY_PRC2 110
216 #define TASK_PRIORITY_PRC2 110
217 #define TASK_PRIORITY_LOAD 190
217 #define TASK_PRIORITY_LOAD 190
218 #define TASK_PRIORITY_DUMB 200
218 #define TASK_PRIORITY_DUMB 200
219
219
220 #define MSG_QUEUE_COUNT_RECV 10
220 #define MSG_QUEUE_COUNT_RECV 10
221 #define MSG_QUEUE_COUNT_SEND 50
221 #define MSG_QUEUE_COUNT_SEND 50
222 #define MSG_QUEUE_COUNT_PRC0 10
222 #define MSG_QUEUE_COUNT_PRC0 10
223 #define MSG_QUEUE_COUNT_PRC1 10
223 #define MSG_QUEUE_COUNT_PRC1 10
224 #define MSG_QUEUE_COUNT_PRC2 5
224 #define MSG_QUEUE_COUNT_PRC2 5
225 #define MSG_QUEUE_SIZE_SEND 812 // 808 + 4 => TM_LFR_SCIENCE_BURST_BP2_F1
225 #define MSG_QUEUE_SIZE_SEND 812 // 808 + 4 => TM_LFR_SCIENCE_BURST_BP2_F1
226 #define ACTION_MSG_SPW_IOCTL_SEND_SIZE 24 // hlen *hdr dlen *data sent options
226 #define ACTION_MSG_SPW_IOCTL_SEND_SIZE 24 // hlen *hdr dlen *data sent options
227 #define MSG_QUEUE_SIZE_PRC0 36 // two pointers, one rtems_event + 6 integers
227 #define MSG_QUEUE_SIZE_PRC0 36 // two pointers, one rtems_event + 6 integers
228 #define MSG_QUEUE_SIZE_PRC1 36 // two pointers, one rtems_event + 6 integers
228 #define MSG_QUEUE_SIZE_PRC1 36 // two pointers, one rtems_event + 6 integers
229 #define MSG_QUEUE_SIZE_PRC2 36 // two pointers, one rtems_event + 6 integers
229 #define MSG_QUEUE_SIZE_PRC2 36 // two pointers, one rtems_event + 6 integers
230
230
231 #define QUEUE_RECV 0
231 #define QUEUE_RECV 0
232 #define QUEUE_SEND 1
232 #define QUEUE_SEND 1
233 #define QUEUE_PRC0 2
233 #define QUEUE_PRC0 2
234 #define QUEUE_PRC1 3
234 #define QUEUE_PRC1 3
235 #define QUEUE_PRC2 4
235 #define QUEUE_PRC2 4
236
236
237 //*******
237 //*******
238 // MACROS
238 // MACROS
239 #ifdef PRINT_MESSAGES_ON_CONSOLE
239 #ifdef PRINT_MESSAGES_ON_CONSOLE
240 #define PRINTF(x) printf(x);
240 #define PRINTF(x) printf(x);
241 #define PRINTF1(x,y) printf(x,y);
241 #define PRINTF1(x,y) printf(x,y);
242 #define PRINTF2(x,y,z) printf(x,y,z);
242 #define PRINTF2(x,y,z) printf(x,y,z);
243 #else
243 #else
244 #define PRINTF(x) ;
244 #define PRINTF(x) ;
245 #define PRINTF1(x,y) ;
245 #define PRINTF1(x,y) ;
246 #define PRINTF2(x,y,z) ;
246 #define PRINTF2(x,y,z) ;
247 #endif
247 #endif
248
248
249 #ifdef BOOT_MESSAGES
249 #ifdef BOOT_MESSAGES
250 #define BOOT_PRINTF(x) printf(x);
250 #define BOOT_PRINTF(x) printf(x);
251 #define BOOT_PRINTF1(x,y) printf(x,y);
251 #define BOOT_PRINTF1(x,y) printf(x,y);
252 #define BOOT_PRINTF2(x,y,z) printf(x,y,z);
252 #define BOOT_PRINTF2(x,y,z) printf(x,y,z);
253 #else
253 #else
254 #define BOOT_PRINTF(x) ;
254 #define BOOT_PRINTF(x) ;
255 #define BOOT_PRINTF1(x,y) ;
255 #define BOOT_PRINTF1(x,y) ;
256 #define BOOT_PRINTF2(x,y,z) ;
256 #define BOOT_PRINTF2(x,y,z) ;
257 #endif
257 #endif
258
258
259 #ifdef DEBUG_MESSAGES
259 #ifdef DEBUG_MESSAGES
260 #define DEBUG_PRINTF(x) printf(x);
260 #define DEBUG_PRINTF(x) printf(x);
261 #define DEBUG_PRINTF1(x,y) printf(x,y);
261 #define DEBUG_PRINTF1(x,y) printf(x,y);
262 #define DEBUG_PRINTF2(x,y,z) printf(x,y,z);
262 #define DEBUG_PRINTF2(x,y,z) printf(x,y,z);
263 #else
263 #else
264 #define DEBUG_PRINTF(x) ;
264 #define DEBUG_PRINTF(x) ;
265 #define DEBUG_PRINTF1(x,y) ;
265 #define DEBUG_PRINTF1(x,y) ;
266 #define DEBUG_PRINTF2(x,y,z) ;
266 #define DEBUG_PRINTF2(x,y,z) ;
267 #endif
267 #endif
268
268
269 #define CPU_USAGE_REPORT_PERIOD 6 // * 10 s = period
269 #define CPU_USAGE_REPORT_PERIOD 6 // * 10 s = period
270
270
271 struct param_local_str{
271 struct param_local_str{
272 unsigned int local_sbm1_nb_cwf_sent;
272 unsigned int local_sbm1_nb_cwf_sent;
273 unsigned int local_sbm1_nb_cwf_max;
273 unsigned int local_sbm1_nb_cwf_max;
274 unsigned int local_sbm2_nb_cwf_sent;
274 unsigned int local_sbm2_nb_cwf_sent;
275 unsigned int local_sbm2_nb_cwf_max;
275 unsigned int local_sbm2_nb_cwf_max;
276 };
276 };
277
277
278 typedef struct {
278 typedef struct {
279 unsigned char merged_fbins_mask_f0[16];
279 unsigned char merged_fbins_mask_f0[16];
280 unsigned char merged_fbins_mask_f1[16];
280 unsigned char merged_fbins_mask_f1[16];
281 unsigned char merged_fbins_mask_f2[16];
281 unsigned char merged_fbins_mask_f2[16];
282 } fbins_masks_t;
282 } fbins_masks_t;
283
283
284 #define DEFAULT_SY_LFR_PAS_FILTER_ENABLED 0
284 #define DEFAULT_SY_LFR_PAS_FILTER_ENABLED 0
285 #define DEFAULT_SY_LFR_PAS_FILTER_MODULUS 4
285 #define DEFAULT_SY_LFR_PAS_FILTER_MODULUS 4
286 #define DEFAULT_SY_LFR_PAS_FILTER_TBAD 1.0
286 #define DEFAULT_SY_LFR_PAS_FILTER_TBAD 1.0
287 #define DEFAULT_SY_LFR_PAS_FILTER_OFFSET 0
287 #define DEFAULT_SY_LFR_PAS_FILTER_OFFSET 0
288 #define DEFAULT_SY_LFR_PAS_FILTER_SHIFT 0.5
288 #define DEFAULT_SY_LFR_PAS_FILTER_SHIFT 0.5
289 #define DEFAULT_SY_LFR_SC_RW_DELTA_F 0.025
289 #define DEFAULT_SY_LFR_SC_RW_DELTA_F 0.025
290 #define DEFAULT_SY_LFR_RW_K1 1.
291 #define DEFAULT_SY_LFR_RW_K2 8.
292 #define DEFAULT_SY_LFR_RW_K3 24.
293 #define DEFAULT_SY_LFR_RW_K4 48.
290
294
291 typedef struct{
295 typedef struct{
292 unsigned char spare_sy_lfr_pas_filter_enabled;
296 unsigned char spare_sy_lfr_pas_filter_enabled;
293 unsigned char sy_lfr_pas_filter_modulus;
297 unsigned char sy_lfr_pas_filter_modulus;
294 float sy_lfr_pas_filter_tbad;
298 float sy_lfr_pas_filter_tbad;
295 unsigned char sy_lfr_pas_filter_offset;
299 unsigned char sy_lfr_pas_filter_offset;
296 float sy_lfr_pas_filter_shift;
300 float sy_lfr_pas_filter_shift;
297 float sy_lfr_sc_rw_delta_f;
301 float sy_lfr_sc_rw_delta_f;
302 // rw1_k
303 float sy_lfr_rw1_k1;
304 float sy_lfr_rw1_k2;
305 float sy_lfr_rw1_k3;
306 float sy_lfr_rw1_k4;
307 // rw2_k
308 float sy_lfr_rw2_k1;
309 float sy_lfr_rw2_k2;
310 float sy_lfr_rw2_k3;
311 float sy_lfr_rw2_k4;
312 // rw3_k
313 float sy_lfr_rw3_k1;
314 float sy_lfr_rw3_k2;
315 float sy_lfr_rw3_k3;
316 float sy_lfr_rw3_k4;
317 // rw4_k
318 float sy_lfr_rw4_k1;
319 float sy_lfr_rw4_k2;
320 float sy_lfr_rw4_k3;
321 float sy_lfr_rw4_k4;
298 } filterPar_t;
322 } filterPar_t;
299
323
324 typedef struct{
325 // rw1_f
326 float cp_rpw_sc_rw1_f1;
327 float cp_rpw_sc_rw1_f2;
328 float cp_rpw_sc_rw1_f3;
329 float cp_rpw_sc_rw1_f4;
330 // rw2_f
331 float cp_rpw_sc_rw2_f1;
332 float cp_rpw_sc_rw2_f2;
333 float cp_rpw_sc_rw2_f3;
334 float cp_rpw_sc_rw2_f4;
335 // rw3_f
336 float cp_rpw_sc_rw3_f1;
337 float cp_rpw_sc_rw3_f2;
338 float cp_rpw_sc_rw3_f3;
339 float cp_rpw_sc_rw3_f4;
340 // rw4_f
341 float cp_rpw_sc_rw4_f1;
342 float cp_rpw_sc_rw4_f2;
343 float cp_rpw_sc_rw4_f3;
344 float cp_rpw_sc_rw4_f4;
345 } rw_f_t;
346
300 #define ACQUISITION_DURATION_F0 683 // 256 / 24576 * 65536
347 #define ACQUISITION_DURATION_F0 683 // 256 / 24576 * 65536
301 #define ACQUISITION_DURATION_F1 4096 // 256 / 4096 * 65536
348 #define ACQUISITION_DURATION_F1 4096 // 256 / 4096 * 65536
302 #define ACQUISITION_DURATION_F2 65536 // 256 / 256 * 65536
349 #define ACQUISITION_DURATION_F2 65536 // 256 / 256 * 65536
303
350
304 #endif // FSW_PARAMS_H_INCLUDED
351 #endif // FSW_PARAMS_H_INCLUDED
@@ -1,68 +1,97
1 #ifndef TM_BYTE_POSITIONS_H
1 #ifndef TM_BYTE_POSITIONS_H
2 #define TM_BYTE_POSITIONS_H
2 #define TM_BYTE_POSITIONS_H
3
3
4 #define PACKET_POS_SEQUENCE_CNT 6 // 4 + 2
4 #define PACKET_POS_SEQUENCE_CNT 6 // 4 + 2
5 #define PACKET_POS_PA_LFR_SID_PKT 20 // 4 + 16
5 #define PACKET_POS_PA_LFR_SID_PKT 20 // 4 + 16
6 #define PACKET_POS_SERVICE_TYPE 11 // 4 + 7
6 #define PACKET_POS_SERVICE_TYPE 11 // 4 + 7
7
7
8 // TC_LFR_LOAD_COMMON_PAR
8 // TC_LFR_LOAD_COMMON_PAR
9
9
10 // TC_LFR_LOAD_NORMAL_PAR
10 // TC_LFR_LOAD_NORMAL_PAR
11 #define DATAFIELD_POS_SY_LFR_N_SWF_L 0
11 #define DATAFIELD_POS_SY_LFR_N_SWF_L 0
12 #define DATAFIELD_POS_SY_LFR_N_SWF_P 2
12 #define DATAFIELD_POS_SY_LFR_N_SWF_P 2
13 #define DATAFIELD_POS_SY_LFR_N_ASM_P 4
13 #define DATAFIELD_POS_SY_LFR_N_ASM_P 4
14 #define DATAFIELD_POS_SY_LFR_N_BP_P0 6
14 #define DATAFIELD_POS_SY_LFR_N_BP_P0 6
15 #define DATAFIELD_POS_SY_LFR_N_BP_P1 7
15 #define DATAFIELD_POS_SY_LFR_N_BP_P1 7
16 #define DATAFIELD_POS_SY_LFR_N_CWF_LONG_F3 8
16 #define DATAFIELD_POS_SY_LFR_N_CWF_LONG_F3 8
17
17
18 // TC_LFR_LOAD_BURST_PAR
18 // TC_LFR_LOAD_BURST_PAR
19 #define DATAFIELD_POS_SY_LFR_B_BP_P0 0
19 #define DATAFIELD_POS_SY_LFR_B_BP_P0 0
20 #define DATAFIELD_POS_SY_LFR_B_BP_P1 1
20 #define DATAFIELD_POS_SY_LFR_B_BP_P1 1
21
21
22 // TC_LFR_LOAD_SBM1_PAR
22 // TC_LFR_LOAD_SBM1_PAR
23 #define DATAFIELD_POS_SY_LFR_S1_BP_P0 0
23 #define DATAFIELD_POS_SY_LFR_S1_BP_P0 0
24 #define DATAFIELD_POS_SY_LFR_S1_BP_P1 1
24 #define DATAFIELD_POS_SY_LFR_S1_BP_P1 1
25
25
26 // TC_LFR_LOAD_SBM2_PAR
26 // TC_LFR_LOAD_SBM2_PAR
27 #define DATAFIELD_POS_SY_LFR_S2_BP_P0 0
27 #define DATAFIELD_POS_SY_LFR_S2_BP_P0 0
28 #define DATAFIELD_POS_SY_LFR_S2_BP_P1 1
28 #define DATAFIELD_POS_SY_LFR_S2_BP_P1 1
29
29
30 // TC_LFR_UPDATE_INFO
30 // TC_LFR_UPDATE_INFO
31 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET1 10
31 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET1 10
32 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET2 11
32 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET2 11
33 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET5 34
33 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET5 34
34 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET6 35
34 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET6 35
35 // RW1
35 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F1 44
36 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F1 44
36 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F2 48
37 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F2 48
37 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F1 52
38 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F3 52
38 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F2 56
39 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW1_F4 56
39 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F1 60
40 // RW2
40 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F2 64
41 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F1 60
41 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F1 68
42 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F2 64
42 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F2 72
43 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F3 68
43 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW_F_FLAGS 77
44 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW2_F4 72
45 // RW3
46 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F1 76
47 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F2 80
48 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F3 84
49 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW3_F4 88
50 // RW4
51 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F1 92
52 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F2 96
53 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F3 100
54 #define BYTE_POS_UPDATE_INFO_CP_RPW_SC_RW4_F4 104
44
55
45 // TC_LFR_ENTER_MODE
56 // TC_LFR_ENTER_MODE
46 #define BYTE_POS_CP_MODE_LFR_SET 11
57 #define BYTE_POS_CP_MODE_LFR_SET 11
47 #define BYTE_POS_CP_LFR_ENTER_MODE_TIME 12
58 #define BYTE_POS_CP_LFR_ENTER_MODE_TIME 12
48
59
49 //TC_LFR_LOAD_FBINS_MASK
60 //TC_LFR_LOAD_FBINS_MASK
50 #define NB_FBINS_MASKS 12
61 #define NB_FBINS_MASKS 12
51 #define NB_BYTES_PER_FREQ_MASK 16
62 #define NB_BYTES_PER_FREQ_MASK 16
52 #define NB_BYTES_PER_FBINS_MASK 4
63 #define NB_BYTES_PER_FBINS_MASK 4
53
64
54 // TC_LFR_LOAD_FILTER_PAR
65 // TC_LFR_LOAD_FILTER_PAR
66 #define NB_RW_K_COEFFS 16
67 #define NB_BYTES_PER_RW_K_COEFF 4
55 #define DATAFIELD_POS_PA_RPW_SPARE8_2 0 // 8 bits
68 #define DATAFIELD_POS_PA_RPW_SPARE8_2 0 // 8 bits
56 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_ENABLED 1 // 8 bits
69 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_ENABLED 1 // 8 bits
57 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_MODULUS 2 // 8 bits
70 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_MODULUS 2 // 8 bits
58 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_TBAD 3 // 32 bits
71 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_TBAD 3 // 32 bits
59 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_OFFSET 7 // 8 bits
72 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_OFFSET 7 // 8 bits
60 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_SHIFT 8 // 32 bits
73 #define DATAFIELD_POS_SY_LFR_PAS_FILTER_SHIFT 8 // 32 bits
61 #define DATAFIELD_POS_SY_LFR_SC_RW_DELTA_F 12 // 32 bits
74 #define DATAFIELD_POS_SY_LFR_SC_RW_DELTA_F 12 // 32 bits
75 #define DATAFIELD_POS_SY_LFR_RW1_K1 16 // 32 bits
76 #define DATAFIELD_POS_SY_LFR_RW1_K2 20 // 32 bits
77 #define DATAFIELD_POS_SY_LFR_RW1_K3 24 // 32 bits
78 #define DATAFIELD_POS_SY_LFR_RW1_K4 28 // 32 bits
79 #define DATAFIELD_POS_SY_LFR_RW2_K1 32 // 32 bits
80 #define DATAFIELD_POS_SY_LFR_RW2_K2 36 // 32 bits
81 #define DATAFIELD_POS_SY_LFR_RW2_K3 40 // 32 bits
82 #define DATAFIELD_POS_SY_LFR_RW2_K4 44 // 32 bits
83 #define DATAFIELD_POS_SY_LFR_RW3_K1 48 // 32 bits
84 #define DATAFIELD_POS_SY_LFR_RW3_K2 52 // 32 bits
85 #define DATAFIELD_POS_SY_LFR_RW3_K3 56 // 32 bits
86 #define DATAFIELD_POS_SY_LFR_RW3_K4 60 // 32 bits
87 #define DATAFIELD_POS_SY_LFR_RW4_K1 64 // 32 bits
88 #define DATAFIELD_POS_SY_LFR_RW4_K2 68 // 32 bits
89 #define DATAFIELD_POS_SY_LFR_RW4_K3 72 // 32 bits
90 #define DATAFIELD_POS_SY_LFR_RW4_K4 76 // 32 bits
62
91
63 // TC_LFR_LOAD_KCOEFFICIENTS
92 // TC_LFR_LOAD_KCOEFFICIENTS
64 #define NB_BYTES_PER_FLOAT 4
93 #define NB_BYTES_PER_FLOAT 4
65 #define DATAFIELD_POS_SY_LFR_KCOEFF_FREQUENCY 0 // 10 - 10
94 #define DATAFIELD_POS_SY_LFR_KCOEFF_FREQUENCY 0 // 10 - 10
66 #define DATAFIELD_POS_SY_LFR_KCOEFF_1 2 // 12 - 10
95 #define DATAFIELD_POS_SY_LFR_KCOEFF_1 2 // 12 - 10
67
96
68 #endif // TM_BYTE_POSITIONS_H
97 #endif // TM_BYTE_POSITIONS_H
General Comments 0
You need to be logged in to leave comments. Login now