![]() |
cacao
Release 0.1.03-dev
Compute And Control For Adaptive Optics
|
Adaptive Optics Control loop engine testing. More...
#include <string.h>
#include <math.h>
#include <pthread.h>
#include <dirent.h>
#include <stdio.h>
#include "CommandLineInterface/CLIcore.h"
#include "00CORE/00CORE.h"
#include "COREMOD_tools/COREMOD_tools.h"
#include "COREMOD_iofits/COREMOD_iofits.h"
#include "COREMOD_memory/COREMOD_memory.h"
#include "statistic/statistic.h"
#include "AOloopControl/AOloopControl.h"
#include "AOloopControl_perfTest/AOloopControl_perfTest.h"
Data Structures | |
struct | StreamDataFile |
Macros | |
#define | MODULE_SHORTNAME_DEFAULT "" |
#define | MODULE_DESCRIPTION "AO loop control performance monitoring and testing" |
#define | MODULE_APPLICATION "cacao" |
#define | _GNU_SOURCE |
#define | MaxNBdatFiles 100000 |
Functions | |
AOloopControl - 9. STATUS / TESTING / PERF MEASUREMENT | |
errno_t | AOcontrolLoop_perfTest_TestDMSpeed_cli () |
CLI function for AOcontrolLoop_TestDMSpeed. More... | |
errno_t | AOcontrolLoop_perfTest_TestSystemLatency_cli () |
errno_t | AOloopControl_perfTest_TestDMmodeResp_cli () |
CLI function for AOloopControl_TestDMmodeResp. More... | |
errno_t | AOloopControl_perfTest_TestDMmodes_Recovery_cli () |
CLI function for AOloopControl_TestDMmodes_Recovery. More... | |
errno_t | AOloopControl_perfTest_blockstats_cli () |
CLI function for AOloopControl_blockstats. More... | |
errno_t | AOloopControl_perfTest_InjectMode_cli () |
CLI function for AOloopControl_InjectMode. More... | |
errno_t | AOloopControl_perfTest_loopMonitor_cli () |
CLI function for AOloopControl_loopMonitor. More... | |
errno_t | AOloopControl_perfTest_statusStats_cli () |
CLI function for AOloopControl_statusStats. More... | |
errno_t | AOloopControl_perfTest_mkTestDynamicModeSeq_cli () |
CLI function for AOloopControl_mkTestDynamicModeSeq. More... | |
errno_t | AOloopControl_perfTest_AnalyzeRM_sensitivity_cli () |
CLI function for AOloopControl_AnalyzeRM_sensitivity. More... | |
errno_t | AOloopControl_LoopTimer_Analysis_cli () |
errno_t | AOloopControl_perfTest_mkSyncStreamFiles2_cli () |
errno_t | AOloopControl_perfTest_ComputeSimilarityMatrix_cli () |
errno_t | AOloopControl_perfTest_StatAnalysis_2streams_cli () |
errno_t | AOloopControl_perfTest_SelectWFSframes_from_PSFframes_cli () |
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) |
char * | remove_ext (char *mystr, char dot, char sep) |
void | quicksort_StreamDataFile (StreamDataFile *datfile, long left, long right) |
errno_t | AOloopControl_perfTest_mkTimingFile (char *inTimingfname, char *outTimingfname, char *tmpstring) |
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) |
errno_t | 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) |
Variables | |
static struct timespec | tnow |
long | LOOPNUMBER |
AOLOOPCONTROL_CONF * | AOconf |
CLI function for AOloopControl_setframesAve. More... | |
AOloopControl_var | aoloopcontrol_var |
Adaptive Optics Control loop engine testing.
AO engine uses stream data structure
AOloopControl_perfTest_DM.c Test DM speed and examine DM modes AOloopControl_perfTest_status.c Report loop metrics, loop performance monitor
#define _GNU_SOURCE |
#define MaxNBdatFiles 100000 |
#define MODULE_APPLICATION "cacao" |
#define MODULE_DESCRIPTION "AO loop control performance monitoring and testing" |
#define MODULE_SHORTNAME_DEFAULT "" |
errno_t AOcontrolLoop_perfTest_TestDMSpeed_cli | ( | ) |
CLI function for AOcontrolLoop_TestDMSpeed.
errno_t AOcontrolLoop_perfTest_TestSystemLatency | ( | const char * | dmname, |
char * | wfsname, | ||
float | OPDamp, | ||
long | NBiter | ||
) |
errno_t AOcontrolLoop_perfTest_TestSystemLatency_cli | ( | ) |
errno_t AOcontrolLoop_perfTest_TestSystemLatency_FPCONF | ( | char * | fpsname, |
uint32_t | CMDmode | ||
) |
errno_t AOcontrolLoop_perfTest_TestSystemLatency_RUN | ( | char * | fpsname | ) |
Measure hardware latency between DM and WFS streams
[in] | dmname | char* DM actuation stream to which function sends pokes |
[in] | wfsname | char*
|
[in] | OPDamp | FLOAT Poke amplitude [um] |
[in] | NBiter | LONG Number of poke cycles |
errno_t AOloopControl_LoopTimer_Analysis | ( | char * | IDname, |
char * | fnametxt, | ||
char * | outfname | ||
) |
errno_t AOloopControl_LoopTimer_Analysis_cli | ( | ) |
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 | ||
) |
errno_t AOloopControl_perfTest_AnalyzeRM_sensitivity_cli | ( | ) |
CLI function for AOloopControl_AnalyzeRM_sensitivity.
imageID AOloopControl_perfTest_blockstats | ( | long | loop, |
const char * | IDout_name | ||
) |
errno_t AOloopControl_perfTest_blockstats_cli | ( | ) |
CLI function for AOloopControl_blockstats.
errno_t AOloopControl_perfTest_ComputeSimilarityMatrix | ( | char * | IDname, |
char * | IDname_out | ||
) |
Compute similarity matrix between frames of a datacube
errno_t AOloopControl_perfTest_ComputeSimilarityMatrix_cli | ( | ) |
errno_t AOloopControl_perfTest_InjectMode | ( | long | index, |
float | ampl | ||
) |
errno_t AOloopControl_perfTest_InjectMode_cli | ( | ) |
CLI function for AOloopControl_InjectMode.
errno_t AOloopControl_perfTest_loopMonitor_cli | ( | ) |
CLI function for AOloopControl_loopMonitor.
errno_t AOloopControl_perfTest_mkSyncStreamFiles2 | ( | char * | datadir, |
char * | stream0, | ||
char * | stream1, | ||
double | tstart, | ||
double | tend, | ||
double | dt, | ||
double | dtlag | ||
) |
Synchronize two telemetry streams
savedir is the location of the telemetry, for example /media/data/20180202
dtlag: positive when stream0 is earlier than stream1
errno_t AOloopControl_perfTest_mkSyncStreamFiles2_cli | ( | ) |
imageID AOloopControl_perfTest_mkTestDynamicModeSeq | ( | const char * | IDname_out, |
long | NBpt, | ||
long | NBmodes, | ||
long | StartMode | ||
) |
errno_t AOloopControl_perfTest_mkTestDynamicModeSeq_cli | ( | ) |
CLI function for AOloopControl_mkTestDynamicModeSeq.
errno_t AOloopControl_perfTest_mkTimingFile | ( | char * | inTimingfname, |
char * | outTimingfname, | ||
char * | tmpstring | ||
) |
Create timing summary file
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
errno_t AOloopControl_perfTest_SelectWFSframes_from_PSFframes_cli | ( | ) |
errno_t AOloopControl_perfTest_StatAnalysis_2streams | ( | char * | IDname_stream0, |
char * | IDname_stream1, | ||
char * | IDname_simM0, | ||
char * | IDname_simM1, | ||
long | dtmin, | ||
unsigned long | NBselected | ||
) |
Perform statistical analysis of two streams from similarity matrices
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
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
errno_t AOloopControl_perfTest_StatAnalysis_2streams_cli | ( | ) |
errno_t AOloopControl_perfTest_statusStats_cli | ( | ) |
CLI function for AOloopControl_statusStats.
errno_t AOloopControl_perfTest_TestDMmodeResp_cli | ( | ) |
CLI function for AOloopControl_TestDMmodeResp.
errno_t AOloopControl_perfTest_TestDMmodes_Recovery_cli | ( | ) |
CLI function for AOloopControl_TestDMmodes_Recovery.
void quicksort_StreamDataFile | ( | StreamDataFile * | datfile, |
long | left, | ||
long | right | ||
) |
char* remove_ext | ( | char * | mystr, |
char | dot, | ||
char | sep | ||
) |
AOLOOPCONTROL_CONF* AOconf |
CLI function for AOloopControl_setframesAve.
AOloopControl_var aoloopcontrol_var |
long LOOPNUMBER |
|
static |