cacao  Release 0.1.03-dev
Compute And Control For Adaptive Optics
AOloopControl_perfTest.h File Reference

Function prototypes for Adaptive Optics Control loop engine performance Tests. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void __attribute__ ((constructor)) libinit_AOloopControl_perfTest()
 Initialize module. More...
 
AOloopControl - 1. STATUS / TESTING / PERF MEASUREMENT

Measure loop behavior

errno_t AOloopControl_perfTest_printloopstatus (long loop, long nbcol, long IDmodeval_dm, long IDmodeval, long IDmodevalave, long IDmodevalrms, long ksize)
 
errno_t AOloopControl_perfTest_loopMonitor (long loop, double frequ, long nbcol)
 
errno_t AOloopControl_perfTest_statusStats (int updateconf, long NBsample)
 
errno_t AOloopControl_perfTest_resetRMSperf ()
 
errno_t AOloopControl_perfTest_showparams (long loop)
 
errno_t AOcontrolLoop_perfTest_TestDMSpeed (const char *dmname, long delayus, long NBpts, float ampl)
 
imageID AOloopControl_perfTest_TestDMmodeResp (const char *DMmodes_name, long index, float ampl, float fmin, float fmax, float fmultstep, float avetime, long dtus, const char *DMmask_name, const char *DMstream_in_name, const char *DMstream_out_name, const char *IDout_name)
 
imageID AOloopControl_perfTest_TestDMmodes_Recovery (const char *DMmodes_name, float ampl, const char *DMmask_name, const char *DMstream_in_name, const char *DMstream_out_name, const char *DMstream_meas_name, long tlagus, long NBave, const char *IDout_name, const char *IDoutrms_name, const char *IDoutmeas_name, const char *IDoutmeasrms_name)
 
errno_t AOcontrolLoop_perfTest_TestSystemLatency_FPCONF (char *fpsname, uint32_t CMDmode)
 
errno_t AOcontrolLoop_perfTest_TestSystemLatency_RUN (char *fpsname)
 
errno_t AOcontrolLoop_perfTest_TestSystemLatency (const char *dmname, char *wfsname, float OPDamp, long NBiter)
 
imageID AOloopControl_perfTest_blockstats (long loop, const char *IDout_name)
 
errno_t AOloopControl_perfTest_InjectMode (long index, float ampl)
 
errno_t AOloopControl_perfTest_AnalyzeRM_sensitivity (const char *IDdmmodes_name, const char *IDdmmask_name, const char *IDwfsref_name, const char *IDwfsresp_name, const char *IDwfsmask_name, float amplimitnm, float lambdanm, const char *foutname)
 
imageID AOloopControl_perfTest_mkTestDynamicModeSeq (const char *IDname_out, long NBpt, long NBmodes, long StartMode)
 
errno_t AOloopControl_LoopTimer_Analysis (char *IDname, char *fnametxt, char *outfname)
 
errno_t AOloopControl_perfTest_mkSyncStreamFiles2 (char *datadir, char *stream0, char *stream1, double tstart, double tend, double dt, double dtlag)
 
errno_t AOloopControl_perfTest_ComputeSimilarityMatrix (char *IDname, char *IDname_out)
 
int AOloopControl_perfTest_StatAnalysis_2streams (char *IDname_stream0, char *IDname_stream1, char *IDname_simM0, char *IDname_simM1, long dtmin, unsigned long NBselected)
 
errno_t AOloopControl_perfTest_SelectWFSframes_from_PSFframes (char *IDnameWFS, char *IDnamePSF, float frac, long x0, long x1, long y0, long y1, int EvalMode, float alpha)
 

Detailed Description

Function prototypes for Adaptive Optics Control loop engine performance Tests.

AO engine uses stream data structure

Author
O. Guyon
Date
27 Aug 2017
Bug:
No known bugs.

Function Documentation

◆ __attribute__()

void __attribute__ ( (constructor)  )

Initialize module.

◆ AOcontrolLoop_perfTest_TestDMSpeed()

errno_t AOcontrolLoop_perfTest_TestDMSpeed ( const char *  dmname,
long  delayus,
long  NBpts,
float  ampl 
)

◆ AOcontrolLoop_perfTest_TestSystemLatency()

errno_t AOcontrolLoop_perfTest_TestSystemLatency ( const char *  dmname,
char *  wfsname,
float  OPDamp,
long  NBiter 
)

◆ AOcontrolLoop_perfTest_TestSystemLatency_FPCONF()

errno_t AOcontrolLoop_perfTest_TestSystemLatency_FPCONF ( char *  fpsname,
uint32_t  CMDmode 
)

◆ AOcontrolLoop_perfTest_TestSystemLatency_RUN()

errno_t AOcontrolLoop_perfTest_TestSystemLatency_RUN ( char *  fpsname)

Purpose

Measure hardware latency between DM and WFS streams

Arguments

Parameters
[in]dmnamechar* DM actuation stream to which function sends pokes
[in]wfsnamechar*
  • WFS image stream
[in]OPDampFLOAT Poke amplitude [um]
[in]NBiterLONG Number of poke cycles

◆ AOloopControl_LoopTimer_Analysis()

errno_t AOloopControl_LoopTimer_Analysis ( char *  IDname,
char *  fnametxt,
char *  outfname 
)

◆ AOloopControl_perfTest_AnalyzeRM_sensitivity()

errno_t AOloopControl_perfTest_AnalyzeRM_sensitivity ( const char *  IDdmmodes_name,
const char *  IDdmmask_name,
const char *  IDwfsref_name,
const char *  IDwfsresp_name,
const char *  IDwfsmask_name,
float  amplimitnm,
float  lambdanm,
const char *  foutname 
)

◆ AOloopControl_perfTest_blockstats()

imageID AOloopControl_perfTest_blockstats ( long  loop,
const char *  IDout_name 
)

◆ AOloopControl_perfTest_ComputeSimilarityMatrix()

errno_t AOloopControl_perfTest_ComputeSimilarityMatrix ( char *  IDname,
char *  IDname_out 
)

Purpose

Compute similarity matrix between frames of a datacube

◆ AOloopControl_perfTest_InjectMode()

errno_t AOloopControl_perfTest_InjectMode ( long  index,
float  ampl 
)

◆ AOloopControl_perfTest_loopMonitor()

errno_t AOloopControl_perfTest_loopMonitor ( long  loop,
double  frequ,
long  nbcol 
)

Purpose

Monitors AO loop performance
Prints status on screen

◆ AOloopControl_perfTest_mkSyncStreamFiles2()

errno_t AOloopControl_perfTest_mkSyncStreamFiles2 ( char *  datadir,
char *  stream0,
char *  stream1,
double  tstart,
double  tend,
double  dt,
double  dtlag 
)

Purpose

Synchronize two telemetry streams

Arguments

savedir is the location of the telemetry, for example /media/data/20180202

dtlag: positive when stream0 is earlier than stream1

◆ AOloopControl_perfTest_mkTestDynamicModeSeq()

imageID AOloopControl_perfTest_mkTestDynamicModeSeq ( const char *  IDname_out,
long  NBpt,
long  NBmodes,
long  StartMode 
)

◆ AOloopControl_perfTest_printloopstatus()

errno_t AOloopControl_perfTest_printloopstatus ( long  loop,
long  nbcol,
long  IDmodeval_dm,
long  IDmodeval,
long  IDmodevalave,
long  IDmodevalrms,
long  ksize 
)

◆ AOloopControl_perfTest_resetRMSperf()

errno_t AOloopControl_perfTest_resetRMSperf ( )

◆ AOloopControl_perfTest_SelectWFSframes_from_PSFframes()

errno_t AOloopControl_perfTest_SelectWFSframes_from_PSFframes ( char *  IDnameWFS,
char *  IDnamePSF,
float  frac,
long  x0,
long  x1,
long  y0,
long  y1,
int  EvalMode,
float  alpha 
)

PSF evaluation window is (x0,y0) to (x1,y1)

Optional input: PSFmask, to be multiplied by PSF

EvalMode = 0 : Maximize Energy concentration EvalMode = 1 : Maximize flux EvalMode = 2 : Minimize flux

output:

imwfsbest imwfsall

impsfbest impsfall

◆ AOloopControl_perfTest_showparams()

errno_t AOloopControl_perfTest_showparams ( long  loop)

◆ AOloopControl_perfTest_StatAnalysis_2streams()

int AOloopControl_perfTest_StatAnalysis_2streams ( char *  IDname_stream0,
char *  IDname_stream1,
char *  IDname_simM0,
char *  IDname_simM1,
long  dtmin,
unsigned long  NBselected 
)

Purpose

Perform statistical analysis of two streams from similarity matrices

Details

Selects the NBselected most similar pairs in stream0 and stream1 separated by at least dtmin frames

Computes the differences between the corresponding pairs in the other stream

Output

sim0pairs.txt : best NBselected stream0 pairs
sim1pairs.txt : best NBselected stream1 pairs
sim2Ddistrib : 2D similarity distribution image
sim0diff0 : best sim pairs 0, differences stream 0 images
sim0diff1 : best sim pairs 0, differences stream 1 images
sim1diff0 : best sim pairs 1, differences stream 0 images
sim1diff1 : best sim pairs 1, differences stream 1 images

◆ AOloopControl_perfTest_statusStats()

errno_t AOloopControl_perfTest_statusStats ( int  updateconf,
long  NBsample 
)

◆ AOloopControl_perfTest_TestDMmodeResp()

imageID AOloopControl_perfTest_TestDMmodeResp ( const char *  DMmodes_name,
long  index,
float  ampl,
float  fmin,
float  fmax,
float  fmultstep,
float  avetime,
long  dtus,
const char *  DMmask_name,
const char *  DMstream_in_name,
const char *  DMstream_out_name,
const char *  IDout_name 
)

◆ AOloopControl_perfTest_TestDMmodes_Recovery()

imageID AOloopControl_perfTest_TestDMmodes_Recovery ( const char *  DMmodes_name,
float  ampl,
const char *  DMmask_name,
const char *  DMstream_in_name,
const char *  DMstream_out_name,
const char *  DMstream_meas_name,
long  tlagus,
long  NBave,
const char *  IDout_name,
const char *  IDoutrms_name,
const char *  IDoutmeas_name,
const char *  IDoutmeasrms_name 
)