Initial commit of AESA implementation.
[jump.git] / aesa / src / Corner_Turn_OL.h
1 #ifndef CORNER_TURN_OL_H
2 #define CORNER_TURN_OL_H
3
4 #include <dol.h>
5 #include "global.h"
6
7 #define PORT_DATA_IN "data_input"
8 #define PORT_DATA_OUT "data_output"
9 #define PORT_DATA_OUT_OL "data2_output_ol"
10
11 typedef struct _local_states
12 {
13   // ComplexNumber Beams_A[NUMBER_OF_RANGE_BINS][NFFT];          // [Range][Pulses]
14   // ComplexNumber Beams_B[NUMBER_OF_RANGE_BINS][NFFT];          // [Range][Pulses]
15   // ComplexNumber Delayed_Output[NUMBER_OF_RANGE_BINS][NFFT/2]; // [Range][Pulses]
16
17   // Main buffers are A and B
18   // Delayed buffers are C and D
19
20   ComplexNumber Main_A[NUMBER_OF_RANGE_BINS][NFFT];
21   ComplexNumber Main_B[NUMBER_OF_RANGE_BINS][NFFT];
22   ComplexNumber Delayed_C[NUMBER_OF_RANGE_BINS][NFFT];
23   ComplexNumber Delayed_D[NUMBER_OF_RANGE_BINS][NFFT];
24   
25   ComplexNumber Zero;
26   // int buffer_mode;
27         int state;
28   int input_pointer;
29   int output_pointer;
30   int hold_input;
31   int hold_output;
32         int pulse_counter_in;
33         int pulse_counter_out;
34         int bin_counter_in;
35         int bin_counter_out;
36         // int output_index;
37   int nfft;
38   int n_batches;
39         int n_iterations;
40
41   int excount;
42   
43 } Corner_Turn_OL_State;
44
45 void Corner_Turn_OL_init(DOLProcess *);
46 int Corner_Turn_OL_fire(DOLProcess *);
47
48 #endif