cacao  Release 0.1.03-dev
Compute And Control For Adaptive Optics
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
AOloopControl_IOtools_camerainput.c File Reference

Adaptive Optics Control loop engine I/O tools. More...

#include <string.h>
#include <stdio.h>
#include <pthread.h>
#include "CommandLineInterface/CLIcore.h"
#include "info/info.h"
#include "AOloopControl/AOloopControl.h"
#include "AOloopControl_IOtools/AOloopControl_IOtools.h"
#include "COREMOD_memory/COREMOD_memory.h"
#include "00CORE/00CORE.h"
Include dependency graph for AOloopControl_IOtools_camerainput.c:

Macros

#define _GNU_SOURCE
 

Functions

errno_t AOloopControl_IOtools_camimage_extract2D_sharedmem_loop (const char *in_name, const char *dark_name, const char *out_name, long size_x, long size_y, long xstart, long ystart)
 
static void * compute_function_imtotal (__attribute__((unused)) void *ptr)
 
static void * compute_function_dark_subtract (void *ptr)
 
errno_t AOcontrolLoop_IOtools_acquireWFSloop_FPCONF (char *fpsname, uint32_t CMDmode)
 compute sum of image pixels More...
 
errno_t AOcontrolLoop_IOtools_acquireWFSloop_RUN (char *fpsname)
 
errno_t AOcontrolLoop_IOtools_acquireWFSloop (long loop)
 
errno_t __attribute__ ((hot))
 Read image from WFS camera. More...
 

Variables

static sem_t AOLCOMPUTE_TOTAL_ASYNC_sem_name
 
static long long imtotalcnt
 
static int AOLCOMPUTE_DARK_SUBTRACT_THREADinit = 0
 
static int COMPUTE_DARK_SUBTRACT_NBTHREADS = 1
 
static sem_t AOLCOMPUTE_DARK_SUBTRACT_sem_name [32]
 
static sem_t AOLCOMPUTE_DARK_SUBTRACT_RESULT_sem_name [32]
 
static unsigned short * arrayutmp
 
static signed short * arraystmp
 
static char Average_cam_frames_dname [200]
 
static imageID Average_cam_frames_IDdark = -1
 
static unsigned long Average_cam_frames_nelem = 1
 
static float * arrayftmp
 
static struct timespec tnow
 
static struct timespec tdiff
 
static double tdiffv
 
static long ti
 
static int AOLCOMPUTE_TOTAL_ASYNC_THREADinit = 0
 
static int AOLCOMPUTE_TOTAL_INIT = 0
 
long LOOPNUMBER
 
AOLOOPCONTROL_CONFAOconf
 CLI function for AOloopControl_setframesAve. More...
 
AOloopControl_var aoloopcontrol_var
 

Detailed Description

Adaptive Optics Control loop engine I/O tools.

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE

Function Documentation

◆ __attribute__()

errno_t __attribute__ ( (hot)  )

Read image from WFS camera.

Compute modes in open loop.

Purpose

Reads WFS image and performs some basic processing

Outputs are : imWFS0, which is dark-subtracted imWFS1, which is dark-subtracted and normalized, but not reference-subtracted.

supports ring buffer puts image from camera buffer aoloopcontrol_var.aoconfID_wfsim into aoloopcontrol_var.aoconfID_imWFS1 (supplied by user)

RM = 1 if response matrix

if normalize == 1, image is normalized by dividing by (total + AOconf[loop].WFSim.WFSnormfloor)*AOconf[loop].WFSim.WFSsize if PixelStreamMode = 1, read on semaphore 1, return slice index

STEP 1: Setting up

Load arrays

◆ AOcontrolLoop_IOtools_acquireWFSloop()

errno_t AOcontrolLoop_IOtools_acquireWFSloop ( long  loop)

◆ AOcontrolLoop_IOtools_acquireWFSloop_FPCONF()

errno_t AOcontrolLoop_IOtools_acquireWFSloop_FPCONF ( char *  fpsname,
uint32_t  CMDmode 
)

compute sum of image pixels

Subtract dark

◆ AOcontrolLoop_IOtools_acquireWFSloop_RUN()

errno_t AOcontrolLoop_IOtools_acquireWFSloop_RUN ( char *  fpsname)

◆ AOloopControl_IOtools_camimage_extract2D_sharedmem_loop()

errno_t AOloopControl_IOtools_camimage_extract2D_sharedmem_loop ( const char *  in_name,
const char *  dark_name,
const char *  out_name,
long  size_x,
long  size_y,
long  xstart,
long  ystart 
)

◆ compute_function_dark_subtract()

static void* compute_function_dark_subtract ( void *  ptr)
static

◆ compute_function_imtotal()

static void* compute_function_imtotal ( __attribute__((unused)) void *  ptr)
static

Variable Documentation

◆ AOconf

CLI function for AOloopControl_setframesAve.

◆ AOLCOMPUTE_DARK_SUBTRACT_RESULT_sem_name

sem_t AOLCOMPUTE_DARK_SUBTRACT_RESULT_sem_name[32]
static

◆ AOLCOMPUTE_DARK_SUBTRACT_sem_name

sem_t AOLCOMPUTE_DARK_SUBTRACT_sem_name[32]
static

◆ AOLCOMPUTE_DARK_SUBTRACT_THREADinit

int AOLCOMPUTE_DARK_SUBTRACT_THREADinit = 0
static

◆ AOLCOMPUTE_TOTAL_ASYNC_sem_name

sem_t AOLCOMPUTE_TOTAL_ASYNC_sem_name
static

◆ AOLCOMPUTE_TOTAL_ASYNC_THREADinit

int AOLCOMPUTE_TOTAL_ASYNC_THREADinit = 0
static

◆ AOLCOMPUTE_TOTAL_INIT

int AOLCOMPUTE_TOTAL_INIT = 0
static

◆ aoloopcontrol_var

AOloopControl_var aoloopcontrol_var

◆ arrayftmp

float* arrayftmp
static

◆ arraystmp

signed short* arraystmp
static

◆ arrayutmp

unsigned short* arrayutmp
static

◆ Average_cam_frames_dname

char Average_cam_frames_dname[200]
static

◆ Average_cam_frames_IDdark

imageID Average_cam_frames_IDdark = -1
static

◆ Average_cam_frames_nelem

unsigned long Average_cam_frames_nelem = 1
static

◆ COMPUTE_DARK_SUBTRACT_NBTHREADS

int COMPUTE_DARK_SUBTRACT_NBTHREADS = 1
static

◆ imtotalcnt

long long imtotalcnt
static

◆ LOOPNUMBER

long LOOPNUMBER

◆ tdiff

struct timespec tdiff
static

◆ tdiffv

double tdiffv
static

◆ ti

long ti
static

◆ tnow

struct timespec tnow
static