1 #ifndef _AOLOOPCONTROL_DM_H
2 #define _AOLOOPCONTROL_DM_H
6 #define DISPCOMB_FILENAME_CONF "/tmp/dmdispcombconf.conf.shm"
7 #define DMTURBCONF_FILENAME "/tmp/dmturb.conf.shm"
9 #define DM_NUMBER_CHANMAX 20 // max number of channel per DM
50 struct timespec tstart;
57 long dmdispID[DM_NUMBER_CHANMAX];
58 float dmdispgain[DM_NUMBER_CHANMAX];
59 long dmdispcnt[DM_NUMBER_CHANMAX];
67 char dm2dm_DMmodes_name[200];
69 char dm2dm_outdisp_name[200];
75 char wfsref_RespMat_name[200];
77 char wfsref_out_name[200];
102 struct timespec tstart;
103 struct timespec tend;
124 static struct timespec
time_diff(struct timespec start, struct timespec end);
159 int AOloopControl_DM_CombineChannels(
long DMindex,
long xsize,
long ysize,
int NBchannel,
int AveMode,
int dm2dm_mode,
const char *dm2dm_DMmodes,
const char *dm2dm_outdisp,
int wfsrefmode,
const char *wfsref_WFSRespMat,
const char *wfsref_out,
int voltmode,
const char *IDvolt_name,
float DClevel,
float maxvolt);
int on
Definition: AOloopControl_DM.h:90
long cnt
Definition: AOloopControl_DM.h:91
static int AOloopControl_DM_unloadconf()
long NBchannel
Definition: AOloopControl_DM.h:30
int AOloopControl_DM_dmturb_wspeed(long DMindex, double wspeed)
Definition: AOloopControl_DM.c:1904
double LOcoeff
Definition: AOloopControl_DM.h:95
static int AOloopControl_DM_loadconf()
int_fast8_t AOloopControl_printDMturbconf()
Definition: AOloopControl_DM.c:1736
int AOloopControl_DM_dmturb(long DMindex, int mode, const char *IDout_name, long NBsamples)
Definition: AOloopControl_DM.c:1994
int AOloopControl_DM_dmdispcombstatus(long DMindex)
Definition: AOloopControl_DM.c:1515
long xsizeout
Definition: AOloopControl_DM.h:64
int wfsrefmode
Definition: AOloopControl_DM.h:71
int dm2dm_mode
Definition: AOloopControl_DM.h:62
int AOloopControl_DM_dmdispcomboff(long DMindex)
Definition: AOloopControl_DM.c:1451
int AOloopControl_printDMconf()
Definition: AOloopControl_DM.c:1482
long xysize
Definition: AOloopControl_DM.h:29
int ON
Definition: AOloopControl_DM.h:25
int AOloopControl_DMturb_createconf()
Definition: AOloopControl_DM.c:1761
long AOloopControl_DM_mkAstroGrid_seq(char *IDoutname, long DMindex, int XYmode, int bin, long NBcycle)
Definition: AOloopControl_DM.c:2409
int AOloopControl_DM_dmturb_LOcoeff(long DMindex, double LOcoeff)
Definition: AOloopControl_DM.c:1928
int AOloopControl_DM_setTrigChan(long DMindex, int chan)
Definition: AOloopControl_DM.c:1697
double wspeed
Definition: AOloopControl_DM.h:93
long xsize
Definition: AOloopControl_DM.h:27
long loopcnt
Definition: AOloopControl_DM.h:32
int TrigMode
Definition: AOloopControl_DM.h:44
long IDvolt
Definition: AOloopControl_DM.h:37
int AOloopControl_DM_dmturboff(long DMindex)
Definition: AOloopControl_DM.c:1892
int AOloopControl_DM_dmturb_ampl(long DMindex, double ampl)
Definition: AOloopControl_DM.c:1916
long ID_wfsref_out
Definition: AOloopControl_DM.h:76
int AOloopControl_DM_setvoltON(long DMindex)
Definition: AOloopControl_DM.c:1648
Definition: AOloopControl_DM.h:88
long xsizewfsref
Definition: AOloopControl_DM.h:72
static struct timespec time_diff(struct timespec start, struct timespec end)
long nsecwait
Definition: AOloopControl_DM.h:49
static int AOloopControl_DM_createconf()
long ysize
Definition: AOloopControl_DM.h:28
int AOloopControl_DMturb_loadconf()
double ampl
Definition: AOloopControl_DM.h:94
static int make_master_turbulence_screen_local(const char *ID_name1, const char *ID_name2, long size, float outerscale, float innerscale)
int AveMode
Definition: AOloopControl_DM.h:41
int TrigSem
Definition: AOloopControl_DM.h:46
int busy
Definition: AOloopControl_DM.h:34
long moninterval
Definition: AOloopControl_DM.h:80
int init_AOloopControl_DM()
Definition: AOloopControl_DM.c:309
long ID_wfsref_RespMat
Definition: AOloopControl_DM.h:74
float MAXVOLT
Definition: AOloopControl_DM.h:40
int AOloopControl_DM_setMAXVOLT(long DMindex, float maxvolt)
Definition: AOloopControl_DM.c:1668
int AOloopControl_DM_chan_setgain(long DMindex, int ch, float gain)
Definition: AOloopControl_DM.c:1634
long ID_dm2dm_outdisp
Definition: AOloopControl_DM.h:68
long ID_dm2dm_DMmodes
Definition: AOloopControl_DM.h:66
int AOloopControl_DM_dmtrigoff(long DMindex)
Definition: AOloopControl_DM.c:1461
long tint
Definition: AOloopControl_DM.h:97
int AOloopControl_DM_setTrigSem(long DMindex, int sem)
Definition: AOloopControl_DM.c:1706
long AOloopControl_mkDM_TT_circle(char *IDoutname, long DMindex, long NBpts, float ampl)
Definition: AOloopControl_DM.c:2358
double time_disp2V
Definition: AOloopControl_DM.h:53
int voltmode
Definition: AOloopControl_DM.h:36
long ysizeout
Definition: AOloopControl_DM.h:65
long ysizewfsref
Definition: AOloopControl_DM.h:73
Definition: AOloopControl_DM.h:23
double simtime
Definition: AOloopControl_DM.h:100
int AOloopControl_DM_dmturb_printstatus(long DMindex)
Definition: AOloopControl_DM.c:1954
long updatecnt
Definition: AOloopControl_DM.h:33
int status
Definition: AOloopControl_DM.h:79
long IDdisp
Definition: AOloopControl_DM.h:60
float DClevel
Definition: AOloopControl_DM.h:42
int AOloopControl_DM_disp2V(long DMindex)
Definition: AOloopControl_DM.c:906
int voltON
Definition: AOloopControl_DM.h:39
int AOloopControl_DM_setvoltOFF(long DMindex)
Definition: AOloopControl_DM.c:1658
int AOloopControl_DM_setDClevel(long DMindex, float DClevel)
Definition: AOloopControl_DM.c:1678
double tdelay
Definition: AOloopControl_DM.h:52
int TrigChan
Definition: AOloopControl_DM.h:45
int AOloopControl_DM_dmturb_tint(long DMindex, long tint)
Definition: AOloopControl_DM.c:1940
int AOloopControl_DM_CombineChannels(long DMindex, long xsize, long ysize, int NBchannel, int AveMode, int dm2dm_mode, const char *dm2dm_DMmodes, const char *dm2dm_outdisp, int wfsrefmode, const char *wfsref_WFSRespMat, const char *wfsref_out, int voltmode, const char *IDvolt_name, float DClevel, float maxvolt)
Definition: AOloopControl_DM.c:978
int AOloopControl_DM_setTrigMode(long DMindex, int mode)
Definition: AOloopControl_DM.c:1688