##// END OF EJS Templates
reaction wheels filtering implemented
paul -
r286:1a92544dda46 R3_plus draft
parent child
Show More
@@ -1,2 +1,2
1 3081d1f9bb20b2b64a192585337a292a9804e0c5 LFR_basic-parameters
1 3081d1f9bb20b2b64a192585337a292a9804e0c5 LFR_basic-parameters
2 d867fbc1a62231ed43bdda3e91b3f45f45806c3d header/lfr_common_headers
2 dad8371a5549f3395f975fddc33098b05fd829f4 header/lfr_common_headers
@@ -1,63 +1,64
1 #ifndef FSW_INIT_H_INCLUDED
1 #ifndef FSW_INIT_H_INCLUDED
2 #define FSW_INIT_H_INCLUDED
2 #define FSW_INIT_H_INCLUDED
3
3
4 #include <rtems.h>
4 #include <rtems.h>
5 #include <leon.h>
5 #include <leon.h>
6
6
7 #include "fsw_params.h"
7 #include "fsw_params.h"
8 #include "fsw_misc.h"
8 #include "fsw_misc.h"
9 #include "fsw_processing.h"
9 #include "fsw_processing.h"
10
10
11 #include "tc_handler.h"
11 #include "tc_handler.h"
12 #include "wf_handler.h"
12 #include "wf_handler.h"
13 #include "fsw_spacewire.h"
13 #include "fsw_spacewire.h"
14
14
15 #include "avf0_prc0.h"
15 #include "avf0_prc0.h"
16 #include "avf1_prc1.h"
16 #include "avf1_prc1.h"
17 #include "avf2_prc2.h"
17 #include "avf2_prc2.h"
18
18
19 extern rtems_name Task_name[20]; /* array of task names */
19 extern rtems_name Task_name[20]; /* array of task names */
20 extern rtems_id Task_id[20]; /* array of task ids */
20 extern rtems_id Task_id[20]; /* array of task ids */
21 extern rtems_name timecode_timer_name;
21 extern rtems_name timecode_timer_name;
22 extern rtems_id timecode_timer_id;
22 extern rtems_id timecode_timer_id;
23 extern unsigned char pa_bia_status_info;
23 extern unsigned char pa_bia_status_info;
24 extern unsigned char cp_rpw_sc_rw_f_flags;
24 extern unsigned char cp_rpw_sc_rw_f_flags;
25 extern float cp_rpw_sc_rw1_f1;
25 extern float cp_rpw_sc_rw1_f1;
26 extern float cp_rpw_sc_rw1_f2;
26 extern float cp_rpw_sc_rw1_f2;
27 extern float cp_rpw_sc_rw2_f1;
27 extern float cp_rpw_sc_rw2_f1;
28 extern float cp_rpw_sc_rw2_f2;
28 extern float cp_rpw_sc_rw2_f2;
29 extern float cp_rpw_sc_rw3_f1;
29 extern float cp_rpw_sc_rw3_f1;
30 extern float cp_rpw_sc_rw3_f2;
30 extern float cp_rpw_sc_rw3_f2;
31 extern float cp_rpw_sc_rw4_f1;
31 extern float cp_rpw_sc_rw4_f1;
32 extern float cp_rpw_sc_rw4_f2;
32 extern float cp_rpw_sc_rw4_f2;
33 extern float sy_lfr_sc_rw_delta_f;
33
34
34 // RTEMS TASKS
35 // RTEMS TASKS
35 rtems_task Init( rtems_task_argument argument);
36 rtems_task Init( rtems_task_argument argument);
36
37
37 // OTHER functions
38 // OTHER functions
38 void create_names( void );
39 void create_names( void );
39 int create_all_tasks( void );
40 int create_all_tasks( void );
40 int start_all_tasks( void );
41 int start_all_tasks( void );
41 //
42 //
42 rtems_status_code create_message_queues( void );
43 rtems_status_code create_message_queues( void );
43 rtems_status_code create_timecode_timer( void );
44 rtems_status_code create_timecode_timer( void );
44 rtems_status_code get_message_queue_id_send( rtems_id *queue_id );
45 rtems_status_code get_message_queue_id_send( rtems_id *queue_id );
45 rtems_status_code get_message_queue_id_recv( rtems_id *queue_id );
46 rtems_status_code get_message_queue_id_recv( rtems_id *queue_id );
46 rtems_status_code get_message_queue_id_prc0( rtems_id *queue_id );
47 rtems_status_code get_message_queue_id_prc0( rtems_id *queue_id );
47 rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id );
48 rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id );
48 rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id );
49 rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id );
49 void update_queue_max_count( rtems_id queue_id, unsigned char*fifo_size_max );
50 void update_queue_max_count( rtems_id queue_id, unsigned char*fifo_size_max );
50 void init_ring(ring_node ring[], unsigned char nbNodes, volatile int buffer[], unsigned int bufferSize );
51 void init_ring(ring_node ring[], unsigned char nbNodes, volatile int buffer[], unsigned int bufferSize );
51 //
52 //
52 int start_recv_send_tasks( void );
53 int start_recv_send_tasks( void );
53 //
54 //
54 void init_local_mode_parameters( void );
55 void init_local_mode_parameters( void );
55 void reset_local_time( void );
56 void reset_local_time( void );
56
57
57 extern void rtems_cpu_usage_report( void );
58 extern void rtems_cpu_usage_report( void );
58 extern void rtems_cpu_usage_reset( void );
59 extern void rtems_cpu_usage_reset( void );
59 extern void rtems_stack_checker_report_usage( void );
60 extern void rtems_stack_checker_report_usage( void );
60
61
61 extern int sched_yield( void );
62 extern int sched_yield( void );
62
63
63 #endif // FSW_INIT_H_INCLUDED
64 #endif // FSW_INIT_H_INCLUDED
@@ -1,138 +1,138
1 #ifndef GRLIB_REGS_H_INCLUDED
1 #ifndef GRLIB_REGS_H_INCLUDED
2 #define GRLIB_REGS_H_INCLUDED
2 #define GRLIB_REGS_H_INCLUDED
3
3
4 #define NB_GPTIMER 3
4 #define NB_GPTIMER 3
5
5
6 struct apbuart_regs_str{
6 struct apbuart_regs_str{
7 volatile unsigned int data;
7 volatile unsigned int data;
8 volatile unsigned int status;
8 volatile unsigned int status;
9 volatile unsigned int ctrl;
9 volatile unsigned int ctrl;
10 volatile unsigned int scaler;
10 volatile unsigned int scaler;
11 volatile unsigned int fifoDebug;
11 volatile unsigned int fifoDebug;
12 };
12 };
13
13
14 struct grgpio_regs_str{
14 struct grgpio_regs_str{
15 volatile int io_port_data_register;
15 volatile int io_port_data_register;
16 int io_port_output_register;
16 int io_port_output_register;
17 int io_port_direction_register;
17 int io_port_direction_register;
18 int interrupt_mak_register;
18 int interrupt_mak_register;
19 int interrupt_polarity_register;
19 int interrupt_polarity_register;
20 int interrupt_edge_register;
20 int interrupt_edge_register;
21 int bypass_register;
21 int bypass_register;
22 int reserved;
22 int reserved;
23 // 0x20-0x3c interrupt map register(s)
23 // 0x20-0x3c interrupt map register(s)
24 };
24 };
25
25
26 typedef struct {
26 typedef struct {
27 volatile unsigned int counter;
27 volatile unsigned int counter;
28 volatile unsigned int reload;
28 volatile unsigned int reload;
29 volatile unsigned int ctrl;
29 volatile unsigned int ctrl;
30 volatile unsigned int unused;
30 volatile unsigned int unused;
31 } timer_regs_t;
31 } timer_regs_t;
32
32
33 typedef struct {
33 typedef struct {
34 volatile unsigned int scaler_value;
34 volatile unsigned int scaler_value;
35 volatile unsigned int scaler_reload;
35 volatile unsigned int scaler_reload;
36 volatile unsigned int conf;
36 volatile unsigned int conf;
37 volatile unsigned int unused0;
37 volatile unsigned int unused0;
38 timer_regs_t timer[NB_GPTIMER];
38 timer_regs_t timer[NB_GPTIMER];
39 } gptimer_regs_t;
39 } gptimer_regs_t;
40
40
41 typedef struct {
41 typedef struct {
42 volatile int ctrl; // bit 0 forces the load of the coarse_time_load value and resets the fine_time
42 volatile int ctrl; // bit 0 forces the load of the coarse_time_load value and resets the fine_time
43 // bit 1 is the soft reset for the time management module
43 // bit 1 is the soft reset for the time management module
44 // bit 2 is the soft reset for the waveform picker and the spectral matrix modules, set to 1 after HW reset
44 // bit 2 is the soft reset for the waveform picker and the spectral matrix modules, set to 1 after HW reset
45 volatile int coarse_time_load;
45 volatile int coarse_time_load;
46 volatile int coarse_time;
46 volatile int coarse_time;
47 volatile int fine_time;
47 volatile int fine_time;
48 // TEMPERATURES
48 // TEMPERATURES
49 volatile int temp_pcb; // SEL1 = 0 SEL0 = 0
49 volatile int temp_pcb; // SEL1 = 0 SEL0 = 0
50 volatile int temp_fpga; // SEL1 = 0 SEL0 = 1
50 volatile int temp_fpga; // SEL1 = 0 SEL0 = 1
51 volatile int temp_scm; // SEL1 = 1 SEL0 = 0
51 volatile int temp_scm; // SEL1 = 1 SEL0 = 0
52 // CALIBRATION
52 // CALIBRATION
53 volatile unsigned int calDACCtrl;
53 volatile unsigned int calDACCtrl;
54 volatile unsigned int calPrescaler;
54 volatile unsigned int calPrescaler;
55 volatile unsigned int calDivisor;
55 volatile unsigned int calDivisor;
56 volatile unsigned int calDataPtr;
56 volatile unsigned int calDataPtr;
57 volatile unsigned int calData;
57 volatile unsigned int calData;
58 } time_management_regs_t;
58 } time_management_regs_t;
59
59
60 // PDB >= 0.1.28, 0x80000f54
60 // PDB >= 0.1.28, 0x80000f54
61 typedef struct{
61 typedef struct{
62 int data_shaping; // 0x00 00 *** R1 R0 SP1 SP0 BW
62 int data_shaping; // 0x00 00 *** R2 R1 R0 SP1 SP0 BW
63 int run_burst_enable; // 0x04 01 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
63 int run_burst_enable; // 0x04 01 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
64 int addr_data_f0_0; // 0x08
64 int addr_data_f0_0; // 0x08
65 int addr_data_f0_1; // 0x0c
65 int addr_data_f0_1; // 0x0c
66 int addr_data_f1_0; // 0x10
66 int addr_data_f1_0; // 0x10
67 int addr_data_f1_1; // 0x14
67 int addr_data_f1_1; // 0x14
68 int addr_data_f2_0; // 0x18
68 int addr_data_f2_0; // 0x18
69 int addr_data_f2_1; // 0x1c
69 int addr_data_f2_1; // 0x1c
70 int addr_data_f3_0; // 0x20
70 int addr_data_f3_0; // 0x20
71 int addr_data_f3_1; // 0x24
71 int addr_data_f3_1; // 0x24
72 volatile int status; // 0x28
72 volatile int status; // 0x28
73 volatile int delta_snapshot; // 0x2c
73 volatile int delta_snapshot; // 0x2c
74 int delta_f0; // 0x30
74 int delta_f0; // 0x30
75 int delta_f0_2; // 0x34
75 int delta_f0_2; // 0x34
76 int delta_f1; // 0x38
76 int delta_f1; // 0x38
77 int delta_f2; // 0x3c
77 int delta_f2; // 0x3c
78 int nb_data_by_buffer; // 0x40 number of samples in a buffer = 2688
78 int nb_data_by_buffer; // 0x40 number of samples in a buffer = 2688
79 int snapshot_param; // 0x44
79 int snapshot_param; // 0x44
80 int start_date; // 0x48
80 int start_date; // 0x48
81 //
81 //
82 volatile unsigned int f0_0_coarse_time; // 0x4c
82 volatile unsigned int f0_0_coarse_time; // 0x4c
83 volatile unsigned int f0_0_fine_time; // 0x50
83 volatile unsigned int f0_0_fine_time; // 0x50
84 volatile unsigned int f0_1_coarse_time; // 0x54
84 volatile unsigned int f0_1_coarse_time; // 0x54
85 volatile unsigned int f0_1_fine_time; // 0x58
85 volatile unsigned int f0_1_fine_time; // 0x58
86 //
86 //
87 volatile unsigned int f1_0_coarse_time; // 0x5c
87 volatile unsigned int f1_0_coarse_time; // 0x5c
88 volatile unsigned int f1_0_fine_time; // 0x60
88 volatile unsigned int f1_0_fine_time; // 0x60
89 volatile unsigned int f1_1_coarse_time; // 0x64
89 volatile unsigned int f1_1_coarse_time; // 0x64
90 volatile unsigned int f1_1_fine_time; // 0x68
90 volatile unsigned int f1_1_fine_time; // 0x68
91 //
91 //
92 volatile unsigned int f2_0_coarse_time; // 0x6c
92 volatile unsigned int f2_0_coarse_time; // 0x6c
93 volatile unsigned int f2_0_fine_time; // 0x70
93 volatile unsigned int f2_0_fine_time; // 0x70
94 volatile unsigned int f2_1_coarse_time; // 0x74
94 volatile unsigned int f2_1_coarse_time; // 0x74
95 volatile unsigned int f2_1_fine_time; // 0x78
95 volatile unsigned int f2_1_fine_time; // 0x78
96 //
96 //
97 volatile unsigned int f3_0_coarse_time; // 0x7c => 0x7c + 0xf54 = 0xd0
97 volatile unsigned int f3_0_coarse_time; // 0x7c => 0x7c + 0xf54 = 0xd0
98 volatile unsigned int f3_0_fine_time; // 0x80
98 volatile unsigned int f3_0_fine_time; // 0x80
99 volatile unsigned int f3_1_coarse_time; // 0x84
99 volatile unsigned int f3_1_coarse_time; // 0x84
100 volatile unsigned int f3_1_fine_time; // 0x88
100 volatile unsigned int f3_1_fine_time; // 0x88
101 //
101 //
102 unsigned int buffer_length; // 0x8c = buffer length in burst 2688 / 16 = 168
102 unsigned int buffer_length; // 0x8c = buffer length in burst 2688 / 16 = 168
103 //
103 //
104 volatile unsigned int v; // 0x90
104 volatile unsigned int v; // 0x90
105 volatile unsigned int e1; // 0x94
105 volatile unsigned int e1; // 0x94
106 volatile unsigned int e2; // 0x98
106 volatile unsigned int e2; // 0x98
107 } waveform_picker_regs_0_1_18_t;
107 } waveform_picker_regs_0_1_18_t;
108
108
109 typedef struct {
109 typedef struct {
110 volatile int config; // 0x00
110 volatile int config; // 0x00
111 volatile int status; // 0x04
111 volatile int status; // 0x04
112 volatile int f0_0_address; // 0x08
112 volatile int f0_0_address; // 0x08
113 volatile int f0_1_address; // 0x0C
113 volatile int f0_1_address; // 0x0C
114 //
114 //
115 volatile int f1_0_address; // 0x10
115 volatile int f1_0_address; // 0x10
116 volatile int f1_1_address; // 0x14
116 volatile int f1_1_address; // 0x14
117 volatile int f2_0_address; // 0x18
117 volatile int f2_0_address; // 0x18
118 volatile int f2_1_address; // 0x1C
118 volatile int f2_1_address; // 0x1C
119 //
119 //
120 volatile unsigned int f0_0_coarse_time; // 0x20
120 volatile unsigned int f0_0_coarse_time; // 0x20
121 volatile unsigned int f0_0_fine_time; // 0x24
121 volatile unsigned int f0_0_fine_time; // 0x24
122 volatile unsigned int f0_1_coarse_time; // 0x28
122 volatile unsigned int f0_1_coarse_time; // 0x28
123 volatile unsigned int f0_1_fine_time; // 0x2C
123 volatile unsigned int f0_1_fine_time; // 0x2C
124 //
124 //
125 volatile unsigned int f1_0_coarse_time; // 0x30
125 volatile unsigned int f1_0_coarse_time; // 0x30
126 volatile unsigned int f1_0_fine_time; // 0x34
126 volatile unsigned int f1_0_fine_time; // 0x34
127 volatile unsigned int f1_1_coarse_time; // 0x38
127 volatile unsigned int f1_1_coarse_time; // 0x38
128 volatile unsigned int f1_1_fine_time; // 0x3C
128 volatile unsigned int f1_1_fine_time; // 0x3C
129 //
129 //
130 volatile unsigned int f2_0_coarse_time; // 0x40
130 volatile unsigned int f2_0_coarse_time; // 0x40
131 volatile unsigned int f2_0_fine_time; // 0x44
131 volatile unsigned int f2_0_fine_time; // 0x44
132 volatile unsigned int f2_1_coarse_time; // 0x48
132 volatile unsigned int f2_1_coarse_time; // 0x48
133 volatile unsigned int f2_1_fine_time; // 0x4C
133 volatile unsigned int f2_1_fine_time; // 0x4C
134 //
134 //
135 unsigned int matrix_length; // 0x50, length of a spectral matrix in burst 3200 / 16 = 200 = 0xc8
135 unsigned int matrix_length; // 0x50, length of a spectral matrix in burst 3200 / 16 = 200 = 0xc8
136 } spectral_matrix_regs_t;
136 } spectral_matrix_regs_t;
137
137
138 #endif // GRLIB_REGS_H_INCLUDED
138 #endif // GRLIB_REGS_H_INCLUDED
@@ -1,335 +1,338
1 #ifndef FSW_PROCESSING_H_INCLUDED
1 #ifndef FSW_PROCESSING_H_INCLUDED
2 #define FSW_PROCESSING_H_INCLUDED
2 #define FSW_PROCESSING_H_INCLUDED
3
3
4 #include <rtems.h>
4 #include <rtems.h>
5 #include <grspw.h>
5 #include <grspw.h>
6 #include <math.h>
6 #include <math.h>
7 #include <stdlib.h> // abs() is in the stdlib
7 #include <stdlib.h> // abs() is in the stdlib
8 #include <stdio.h>
8 #include <stdio.h>
9 #include <math.h>
9 #include <math.h>
10 #include <grlib_regs.h>
10 #include <grlib_regs.h>
11
11
12 #include "fsw_params.h"
12 #include "fsw_params.h"
13
13
14 typedef struct ring_node_asm
14 typedef struct ring_node_asm
15 {
15 {
16 struct ring_node_asm *next;
16 struct ring_node_asm *next;
17 float matrix[ TOTAL_SIZE_SM ];
17 float matrix[ TOTAL_SIZE_SM ];
18 unsigned int status;
18 unsigned int status;
19 } ring_node_asm;
19 } ring_node_asm;
20
20
21 typedef struct
21 typedef struct
22 {
22 {
23 unsigned char targetLogicalAddress;
23 unsigned char targetLogicalAddress;
24 unsigned char protocolIdentifier;
24 unsigned char protocolIdentifier;
25 unsigned char reserved;
25 unsigned char reserved;
26 unsigned char userApplication;
26 unsigned char userApplication;
27 unsigned char packetID[2];
27 unsigned char packetID[2];
28 unsigned char packetSequenceControl[2];
28 unsigned char packetSequenceControl[2];
29 unsigned char packetLength[2];
29 unsigned char packetLength[2];
30 // DATA FIELD HEADER
30 // DATA FIELD HEADER
31 unsigned char spare1_pusVersion_spare2;
31 unsigned char spare1_pusVersion_spare2;
32 unsigned char serviceType;
32 unsigned char serviceType;
33 unsigned char serviceSubType;
33 unsigned char serviceSubType;
34 unsigned char destinationID;
34 unsigned char destinationID;
35 unsigned char time[6];
35 unsigned char time[6];
36 // AUXILIARY HEADER
36 // AUXILIARY HEADER
37 unsigned char sid;
37 unsigned char sid;
38 unsigned char pa_bia_status_info;
38 unsigned char pa_bia_status_info;
39 unsigned char sy_lfr_common_parameters_spare;
39 unsigned char sy_lfr_common_parameters_spare;
40 unsigned char sy_lfr_common_parameters;
40 unsigned char sy_lfr_common_parameters;
41 unsigned char acquisitionTime[6];
41 unsigned char acquisitionTime[6];
42 unsigned char pa_lfr_bp_blk_nr[2];
42 unsigned char pa_lfr_bp_blk_nr[2];
43 // SOURCE DATA
43 // SOURCE DATA
44 unsigned char data[ 780 ]; // MAX size is 26 bins * 30 Bytes [TM_LFR_SCIENCE_BURST_BP2_F1]
44 unsigned char data[ 780 ]; // MAX size is 26 bins * 30 Bytes [TM_LFR_SCIENCE_BURST_BP2_F1]
45 } bp_packet;
45 } bp_packet;
46
46
47 typedef struct
47 typedef struct
48 {
48 {
49 unsigned char targetLogicalAddress;
49 unsigned char targetLogicalAddress;
50 unsigned char protocolIdentifier;
50 unsigned char protocolIdentifier;
51 unsigned char reserved;
51 unsigned char reserved;
52 unsigned char userApplication;
52 unsigned char userApplication;
53 unsigned char packetID[2];
53 unsigned char packetID[2];
54 unsigned char packetSequenceControl[2];
54 unsigned char packetSequenceControl[2];
55 unsigned char packetLength[2];
55 unsigned char packetLength[2];
56 // DATA FIELD HEADER
56 // DATA FIELD HEADER
57 unsigned char spare1_pusVersion_spare2;
57 unsigned char spare1_pusVersion_spare2;
58 unsigned char serviceType;
58 unsigned char serviceType;
59 unsigned char serviceSubType;
59 unsigned char serviceSubType;
60 unsigned char destinationID;
60 unsigned char destinationID;
61 unsigned char time[6];
61 unsigned char time[6];
62 // AUXILIARY HEADER
62 // AUXILIARY HEADER
63 unsigned char sid;
63 unsigned char sid;
64 unsigned char pa_bia_status_info;
64 unsigned char pa_bia_status_info;
65 unsigned char sy_lfr_common_parameters_spare;
65 unsigned char sy_lfr_common_parameters_spare;
66 unsigned char sy_lfr_common_parameters;
66 unsigned char sy_lfr_common_parameters;
67 unsigned char acquisitionTime[6];
67 unsigned char acquisitionTime[6];
68 unsigned char source_data_spare;
68 unsigned char source_data_spare;
69 unsigned char pa_lfr_bp_blk_nr[2];
69 unsigned char pa_lfr_bp_blk_nr[2];
70 // SOURCE DATA
70 // SOURCE DATA
71 unsigned char data[ 143 ]; // 13 bins * 11 Bytes
71 unsigned char data[ 143 ]; // 13 bins * 11 Bytes
72 } bp_packet_with_spare; // only for TM_LFR_SCIENCE_NORMAL_BP1_F0 and F1
72 } bp_packet_with_spare; // only for TM_LFR_SCIENCE_NORMAL_BP1_F0 and F1
73
73
74 typedef struct asm_msg
74 typedef struct asm_msg
75 {
75 {
76 ring_node_asm *norm;
76 ring_node_asm *norm;
77 ring_node_asm *burst_sbm;
77 ring_node_asm *burst_sbm;
78 rtems_event_set event;
78 rtems_event_set event;
79 unsigned int coarseTimeNORM;
79 unsigned int coarseTimeNORM;
80 unsigned int fineTimeNORM;
80 unsigned int fineTimeNORM;
81 unsigned int coarseTimeSBM;
81 unsigned int coarseTimeSBM;
82 unsigned int fineTimeSBM;
82 unsigned int fineTimeSBM;
83 } asm_msg;
83 } asm_msg;
84
84
85 extern unsigned char thisIsAnASMRestart;
85 extern unsigned char thisIsAnASMRestart;
86
86
87 extern volatile int sm_f0[ ];
87 extern volatile int sm_f0[ ];
88 extern volatile int sm_f1[ ];
88 extern volatile int sm_f1[ ];
89 extern volatile int sm_f2[ ];
89 extern volatile int sm_f2[ ];
90
90
91 // parameters
91 // parameters
92 extern struct param_local_str param_local;
92 extern struct param_local_str param_local;
93 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
93 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
94 extern unsigned char rw_fbins_mask_f0[16];
94 extern unsigned char rw_fbins_mask_f0[16];
95 extern unsigned char rw_fbins_mask_f1[16];
95 extern unsigned char rw_fbins_mask_f1[16];
96 extern unsigned char rw_fbins_mask_f2[16];
96 extern unsigned char rw_fbins_mask_f2[16];
97 extern unsigned char merged_fbins_mask_f0[16];
98 extern unsigned char merged_fbins_mask_f1[16];
99 extern unsigned char merged_fbins_mask_f2[16];
97
100
98 // registers
101 // registers
99 extern time_management_regs_t *time_management_regs;
102 extern time_management_regs_t *time_management_regs;
100 extern volatile spectral_matrix_regs_t *spectral_matrix_regs;
103 extern volatile spectral_matrix_regs_t *spectral_matrix_regs;
101
104
102 extern rtems_name misc_name[5];
105 extern rtems_name misc_name[5];
103 extern rtems_id Task_id[20]; /* array of task ids */
106 extern rtems_id Task_id[20]; /* array of task ids */
104
107
105 ring_node * getRingNodeForAveraging( unsigned char frequencyChannel);
108 ring_node * getRingNodeForAveraging( unsigned char frequencyChannel);
106 // ISR
109 // ISR
107 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
110 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
108
111
109 //******************
112 //******************
110 // Spectral Matrices
113 // Spectral Matrices
111 void reset_nb_sm( void );
114 void reset_nb_sm( void );
112 // SM
115 // SM
113 void SM_init_rings( void );
116 void SM_init_rings( void );
114 void SM_reset_current_ring_nodes( void );
117 void SM_reset_current_ring_nodes( void );
115 // ASM
118 // ASM
116 void ASM_generic_init_ring(ring_node_asm *ring, unsigned char nbNodes );
119 void ASM_generic_init_ring(ring_node_asm *ring, unsigned char nbNodes );
117
120
118 //*****************
121 //*****************
119 // Basic Parameters
122 // Basic Parameters
120
123
121 void BP_reset_current_ring_nodes( void );
124 void BP_reset_current_ring_nodes( void );
122 void BP_init_header(bp_packet *packet,
125 void BP_init_header(bp_packet *packet,
123 unsigned int apid, unsigned char sid,
126 unsigned int apid, unsigned char sid,
124 unsigned int packetLength , unsigned char blkNr);
127 unsigned int packetLength , unsigned char blkNr);
125 void BP_init_header_with_spare(bp_packet_with_spare *packet,
128 void BP_init_header_with_spare(bp_packet_with_spare *packet,
126 unsigned int apid, unsigned char sid,
129 unsigned int apid, unsigned char sid,
127 unsigned int packetLength, unsigned char blkNr );
130 unsigned int packetLength, unsigned char blkNr );
128 void BP_send( char *data,
131 void BP_send( char *data,
129 rtems_id queue_id,
132 rtems_id queue_id,
130 unsigned int nbBytesToSend , unsigned int sid );
133 unsigned int nbBytesToSend , unsigned int sid );
131 void BP_send_s1_s2(char *data,
134 void BP_send_s1_s2(char *data,
132 rtems_id queue_id,
135 rtems_id queue_id,
133 unsigned int nbBytesToSend, unsigned int sid );
136 unsigned int nbBytesToSend, unsigned int sid );
134
137
135 //******************
138 //******************
136 // general functions
139 // general functions
137 void reset_sm_status( void );
140 void reset_sm_status( void );
138 void reset_spectral_matrix_regs( void );
141 void reset_spectral_matrix_regs( void );
139 void set_time(unsigned char *time, unsigned char *timeInBuffer );
142 void set_time(unsigned char *time, unsigned char *timeInBuffer );
140 unsigned long long int get_acquisition_time( unsigned char *timePtr );
143 unsigned long long int get_acquisition_time( unsigned char *timePtr );
141 unsigned char getSID( rtems_event_set event );
144 unsigned char getSID( rtems_event_set event );
142
145
143 extern rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id );
146 extern rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id );
144 extern rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id );
147 extern rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id );
145
148
146 //***************************************
149 //***************************************
147 // DEFINITIONS OF STATIC INLINE FUNCTIONS
150 // DEFINITIONS OF STATIC INLINE FUNCTIONS
148 static inline void SM_average(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
151 static inline void SM_average(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
149 ring_node *ring_node_tab[],
152 ring_node *ring_node_tab[],
150 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
153 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
151 asm_msg *msgForMATR );
154 asm_msg *msgForMATR );
152
155
153 static inline void SM_average_debug(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
156 static inline void SM_average_debug(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
154 ring_node *ring_node_tab[],
157 ring_node *ring_node_tab[],
155 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
158 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
156 asm_msg *msgForMATR );
159 asm_msg *msgForMATR );
157
160
158 void ASM_patch( float *inputASM, float *outputASM );
161 void ASM_patch( float *inputASM, float *outputASM );
159
162
160 void extractReImVectors(float *inputASM, float *outputASM, unsigned int asmComponent );
163 void extractReImVectors(float *inputASM, float *outputASM, unsigned int asmComponent );
161
164
162 static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized,
165 static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized,
163 float divider );
166 float divider );
164
167
165 static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat,
168 static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat,
166 float divider,
169 float divider,
167 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
170 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
168
171
169 static inline void ASM_convert(volatile float *input_matrix, char *output_matrix);
172 static inline void ASM_convert(volatile float *input_matrix, char *output_matrix);
170
173
171 void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
174 void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
172 ring_node *ring_node_tab[],
175 ring_node *ring_node_tab[],
173 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
176 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
174 asm_msg *msgForMATR )
177 asm_msg *msgForMATR )
175 {
178 {
176 float sum;
179 float sum;
177 unsigned int i;
180 unsigned int i;
178
181
179 for(i=0; i<TOTAL_SIZE_SM; i++)
182 for(i=0; i<TOTAL_SIZE_SM; i++)
180 {
183 {
181 sum = ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ]
184 sum = ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ]
182 + ( (int *) (ring_node_tab[1]->buffer_address) ) [ i ]
185 + ( (int *) (ring_node_tab[1]->buffer_address) ) [ i ]
183 + ( (int *) (ring_node_tab[2]->buffer_address) ) [ i ]
186 + ( (int *) (ring_node_tab[2]->buffer_address) ) [ i ]
184 + ( (int *) (ring_node_tab[3]->buffer_address) ) [ i ]
187 + ( (int *) (ring_node_tab[3]->buffer_address) ) [ i ]
185 + ( (int *) (ring_node_tab[4]->buffer_address) ) [ i ]
188 + ( (int *) (ring_node_tab[4]->buffer_address) ) [ i ]
186 + ( (int *) (ring_node_tab[5]->buffer_address) ) [ i ]
189 + ( (int *) (ring_node_tab[5]->buffer_address) ) [ i ]
187 + ( (int *) (ring_node_tab[6]->buffer_address) ) [ i ]
190 + ( (int *) (ring_node_tab[6]->buffer_address) ) [ i ]
188 + ( (int *) (ring_node_tab[7]->buffer_address) ) [ i ];
191 + ( (int *) (ring_node_tab[7]->buffer_address) ) [ i ];
189
192
190 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
193 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
191 {
194 {
192 averaged_spec_mat_NORM[ i ] = sum;
195 averaged_spec_mat_NORM[ i ] = sum;
193 averaged_spec_mat_SBM[ i ] = sum;
196 averaged_spec_mat_SBM[ i ] = sum;
194 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
197 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
195 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
198 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
196 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
199 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
197 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
200 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
198 }
201 }
199 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
202 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
200 {
203 {
201 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
204 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
202 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
205 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
203 }
206 }
204 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
207 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
205 {
208 {
206 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
209 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
207 averaged_spec_mat_SBM[ i ] = sum;
210 averaged_spec_mat_SBM[ i ] = sum;
208 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
211 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
209 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
212 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
210 }
213 }
211 else
214 else
212 {
215 {
213 averaged_spec_mat_NORM[ i ] = sum;
216 averaged_spec_mat_NORM[ i ] = sum;
214 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
217 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
215 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
218 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
216 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
219 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
217 // PRINTF2("ERR *** in SM_average *** unexpected parameters %d %d\n", nbAverageNORM, nbAverageSBM)
220 // PRINTF2("ERR *** in SM_average *** unexpected parameters %d %d\n", nbAverageNORM, nbAverageSBM)
218 }
221 }
219 }
222 }
220 }
223 }
221
224
222 void SM_average_debug( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
225 void SM_average_debug( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
223 ring_node *ring_node_tab[],
226 ring_node *ring_node_tab[],
224 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
227 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
225 asm_msg *msgForMATR )
228 asm_msg *msgForMATR )
226 {
229 {
227 float sum;
230 float sum;
228 unsigned int i;
231 unsigned int i;
229
232
230 for(i=0; i<TOTAL_SIZE_SM; i++)
233 for(i=0; i<TOTAL_SIZE_SM; i++)
231 {
234 {
232 sum = ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ];
235 sum = ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ];
233 averaged_spec_mat_NORM[ i ] = sum;
236 averaged_spec_mat_NORM[ i ] = sum;
234 averaged_spec_mat_SBM[ i ] = sum;
237 averaged_spec_mat_SBM[ i ] = sum;
235 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
238 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
236 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
239 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
237 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
240 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
238 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
241 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
239 }
242 }
240 }
243 }
241
244
242 void ASM_reorganize_and_divide( float *averaged_spec_mat, float *averaged_spec_mat_reorganized, float divider )
245 void ASM_reorganize_and_divide( float *averaged_spec_mat, float *averaged_spec_mat_reorganized, float divider )
243 {
246 {
244 int frequencyBin;
247 int frequencyBin;
245 int asmComponent;
248 int asmComponent;
246 unsigned int offsetASM;
249 unsigned int offsetASM;
247 unsigned int offsetASMReorganized;
250 unsigned int offsetASMReorganized;
248
251
249 // BUILD DATA
252 // BUILD DATA
250 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
253 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
251 {
254 {
252 for( frequencyBin = 0; frequencyBin < NB_BINS_PER_SM; frequencyBin++ )
255 for( frequencyBin = 0; frequencyBin < NB_BINS_PER_SM; frequencyBin++ )
253 {
256 {
254 offsetASMReorganized =
257 offsetASMReorganized =
255 frequencyBin * NB_VALUES_PER_SM
258 frequencyBin * NB_VALUES_PER_SM
256 + asmComponent;
259 + asmComponent;
257 offsetASM =
260 offsetASM =
258 asmComponent * NB_BINS_PER_SM
261 asmComponent * NB_BINS_PER_SM
259 + frequencyBin;
262 + frequencyBin;
260 averaged_spec_mat_reorganized[offsetASMReorganized ] =
263 averaged_spec_mat_reorganized[offsetASMReorganized ] =
261 averaged_spec_mat[ offsetASM ] / divider;
264 averaged_spec_mat[ offsetASM ] / divider;
262 }
265 }
263 }
266 }
264 }
267 }
265
268
266 void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat , float divider,
269 void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat , float divider,
267 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage, unsigned char ASMIndexStart )
270 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage, unsigned char ASMIndexStart )
268 {
271 {
269 int frequencyBin;
272 int frequencyBin;
270 int asmComponent;
273 int asmComponent;
271 int offsetASM;
274 int offsetASM;
272 int offsetCompressed;
275 int offsetCompressed;
273 int k;
276 int k;
274
277
275 // BUILD DATA
278 // BUILD DATA
276 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
279 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
277 {
280 {
278 for( frequencyBin = 0; frequencyBin < nbBinsCompressedMatrix; frequencyBin++ )
281 for( frequencyBin = 0; frequencyBin < nbBinsCompressedMatrix; frequencyBin++ )
279 {
282 {
280 offsetCompressed = // NO TIME OFFSET
283 offsetCompressed = // NO TIME OFFSET
281 frequencyBin * NB_VALUES_PER_SM
284 frequencyBin * NB_VALUES_PER_SM
282 + asmComponent;
285 + asmComponent;
283 offsetASM = // NO TIME OFFSET
286 offsetASM = // NO TIME OFFSET
284 asmComponent * NB_BINS_PER_SM
287 asmComponent * NB_BINS_PER_SM
285 + ASMIndexStart
288 + ASMIndexStart
286 + frequencyBin * nbBinsToAverage;
289 + frequencyBin * nbBinsToAverage;
287 compressed_spec_mat[ offsetCompressed ] = 0;
290 compressed_spec_mat[ offsetCompressed ] = 0;
288 for ( k = 0; k < nbBinsToAverage; k++ )
291 for ( k = 0; k < nbBinsToAverage; k++ )
289 {
292 {
290 compressed_spec_mat[offsetCompressed ] =
293 compressed_spec_mat[offsetCompressed ] =
291 ( compressed_spec_mat[ offsetCompressed ]
294 ( compressed_spec_mat[ offsetCompressed ]
292 + averaged_spec_mat[ offsetASM + k ] );
295 + averaged_spec_mat[ offsetASM + k ] );
293 }
296 }
294 compressed_spec_mat[ offsetCompressed ] =
297 compressed_spec_mat[ offsetCompressed ] =
295 compressed_spec_mat[ offsetCompressed ] / (divider * nbBinsToAverage);
298 compressed_spec_mat[ offsetCompressed ] / (divider * nbBinsToAverage);
296 }
299 }
297 }
300 }
298 }
301 }
299
302
300 void ASM_convert( volatile float *input_matrix, char *output_matrix)
303 void ASM_convert( volatile float *input_matrix, char *output_matrix)
301 {
304 {
302 unsigned int frequencyBin;
305 unsigned int frequencyBin;
303 unsigned int asmComponent;
306 unsigned int asmComponent;
304 char * pt_char_input;
307 char * pt_char_input;
305 char * pt_char_output;
308 char * pt_char_output;
306 unsigned int offsetInput;
309 unsigned int offsetInput;
307 unsigned int offsetOutput;
310 unsigned int offsetOutput;
308
311
309 pt_char_input = (char*) &input_matrix;
312 pt_char_input = (char*) &input_matrix;
310 pt_char_output = (char*) &output_matrix;
313 pt_char_output = (char*) &output_matrix;
311
314
312 // convert all other data
315 // convert all other data
313 for( frequencyBin=0; frequencyBin<NB_BINS_PER_SM; frequencyBin++)
316 for( frequencyBin=0; frequencyBin<NB_BINS_PER_SM; frequencyBin++)
314 {
317 {
315 for ( asmComponent=0; asmComponent<NB_VALUES_PER_SM; asmComponent++)
318 for ( asmComponent=0; asmComponent<NB_VALUES_PER_SM; asmComponent++)
316 {
319 {
317 offsetInput = (frequencyBin*NB_VALUES_PER_SM) + asmComponent ;
320 offsetInput = (frequencyBin*NB_VALUES_PER_SM) + asmComponent ;
318 offsetOutput = 2 * ( (frequencyBin*NB_VALUES_PER_SM) + asmComponent ) ;
321 offsetOutput = 2 * ( (frequencyBin*NB_VALUES_PER_SM) + asmComponent ) ;
319 pt_char_input = (char*) &input_matrix [ offsetInput ];
322 pt_char_input = (char*) &input_matrix [ offsetInput ];
320 pt_char_output = (char*) &output_matrix[ offsetOutput ];
323 pt_char_output = (char*) &output_matrix[ offsetOutput ];
321 pt_char_output[0] = pt_char_input[0]; // bits 31 downto 24 of the float
324 pt_char_output[0] = pt_char_input[0]; // bits 31 downto 24 of the float
322 pt_char_output[1] = pt_char_input[1]; // bits 23 downto 16 of the float
325 pt_char_output[1] = pt_char_input[1]; // bits 23 downto 16 of the float
323 }
326 }
324 }
327 }
325 }
328 }
326
329
327 void ASM_compress_reorganize_and_divide_mask(float *averaged_spec_mat, float *compressed_spec_mat,
330 void ASM_compress_reorganize_and_divide_mask(float *averaged_spec_mat, float *compressed_spec_mat,
328 float divider,
331 float divider,
329 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart, unsigned char channel);
332 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart, unsigned char channel);
330
333
331 int getFBinMask(int k, unsigned char channel);
334 int getFBinMask(int k, unsigned char channel);
332
335
333 void init_kcoeff_sbm_from_kcoeff_norm( float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm);
336 void init_kcoeff_sbm_from_kcoeff_norm( float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm);
334
337
335 #endif // FSW_PROCESSING_H_INCLUDED
338 #endif // FSW_PROCESSING_H_INCLUDED
@@ -1,82 +1,82
1 #ifndef TC_LOAD_DUMP_PARAMETERS_H
1 #ifndef TC_LOAD_DUMP_PARAMETERS_H
2 #define TC_LOAD_DUMP_PARAMETERS_H
2 #define TC_LOAD_DUMP_PARAMETERS_H
3
3
4 #include <rtems.h>
4 #include <rtems.h>
5 #include <stdio.h>
5 #include <stdio.h>
6
6
7 #include "fsw_params.h"
7 #include "fsw_params.h"
8 #include "wf_handler.h"
8 #include "wf_handler.h"
9 #include "tm_lfr_tc_exe.h"
9 #include "tm_lfr_tc_exe.h"
10 #include "fsw_misc.h"
10 #include "fsw_misc.h"
11 #include "basic_parameters_params.h"
11 #include "basic_parameters_params.h"
12 #include "avf0_prc0.h"
12 #include "avf0_prc0.h"
13
13
14 #define FLOAT_EQUAL_ZERO 0.001
14 #define FLOAT_EQUAL_ZERO 0.001
15
15
16 extern unsigned short sequenceCounterParameterDump;
16 extern unsigned short sequenceCounterParameterDump;
17 extern unsigned short sequenceCounters_TM_DUMP[];
17 extern unsigned short sequenceCounters_TM_DUMP[];
18 extern float k_coeff_intercalib_f0_norm[ ];
18 extern float k_coeff_intercalib_f0_norm[ ];
19 extern float k_coeff_intercalib_f0_sbm[ ];
19 extern float k_coeff_intercalib_f0_sbm[ ];
20 extern float k_coeff_intercalib_f1_norm[ ];
20 extern float k_coeff_intercalib_f1_norm[ ];
21 extern float k_coeff_intercalib_f1_sbm[ ];
21 extern float k_coeff_intercalib_f1_sbm[ ];
22 extern float k_coeff_intercalib_f2[ ];
22 extern float k_coeff_intercalib_f2[ ];
23 extern unsigned char rw_fbins_mask_f0[16];
23 extern fbins_masks_t fbins_masks;
24 extern unsigned char rw_fbins_mask_f1[16];
25 extern unsigned char rw_fbins_mask_f2[16];
26
24
27 int action_load_common_par( ccsdsTelecommandPacket_t *TC );
25 int action_load_common_par( ccsdsTelecommandPacket_t *TC );
28 int action_load_normal_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time);
26 int action_load_normal_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time);
29 int action_load_burst_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time);
27 int action_load_burst_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time);
30 int action_load_sbm1_par