-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFPAOloopControl.h
80 lines (44 loc) · 1.87 KB
/
FPAOloopControl.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#ifndef _FPAOLOOPCONTROL_H
#define _FPAOLOOPCONTROL_H
typedef struct
{
char name[80];
// DM stream
char dmCname[80];
char dmRMname[80];
long sizexDM;
long sizeyDM;
long sizeDM;
long long DMupdatecnt;
// Focal plane image stream
char WFSname[80];
long sizexWFS;
long sizeyWFS;
long sizeWFS;
long long WFScnt;
// timing info
float loopfrequ; // Hz
float hardwlatency; // hardware latency between DM command and WFS response [sec]
float hardwlatency_frame; // hardware latency between DM command and WFS response
// ============= RESPONSE CALIBRATION ===================
float fpim_normFlux; // total focal plane flux in the absence of a coronagraph
float fpim_Xcent;
float fpim_Ycent;
// ======= LEVEL 1 CALIBRATION ==============
// Each actuator influence function has the same amplitude, phase is ramp set accordingly to actuator position
// to be acquired without coronagraph
} FPAOLOOPCONTROL_CONF;
void __attribute__ ((constructor)) libinit_FPAOloopControl();
int init_FPAOloopControl();
long FPAOloopControl_InitializeMemory(int mode);
int FPAOloopControl_loadconfigure(long loop, int mode, int level);
int FPAOloopControl_showparams(long loop);
int FPAOloopControl_set_hardwlatency_frame(float hardwlatency_frame);
// RM Calibration
long FPAO_Measure_WFSrespC(long loop, long delayfr, long delayRM1us, long NBave, long NBexcl, char *IDpokeC_name, char *IDoutC_name, int FPAOinitMode, long NBcycle);
// level 1
// Each actuator influence function has the same amplitude, phase is ramp set accordingly to actuator position
// to be acquired without coronagraph
long FPAOloopControl_MeasureResp_level1(float ampl, long delayfr, long delayRM1us, long NBave, long NBexcl, int FPAOinitMode, long NBiter);
long FPAOloopControl_MakeLinComb_seq(char *IDpC_name, long xsize0, long ysize0, long NBmaster0, long N, char *IDout_name);
#endif