cacao  Release 0.1.03-dev
Compute And Control For Adaptive Optics
COREMOD_memory.c File Reference

milk memory functions More...

#include <stdint.h>
#include <unistd.h>
#include <malloc.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <pthread.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/file.h>
#include <sys/mman.h>
#include <signal.h>
#include <ncurses.h>
#include <errno.h>
#include <semaphore.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <fcntl.h>
#include <time.h>
#include <sys/time.h>
#include <fitsio.h>
#include "CommandLineInterface/CLIcore.h"
#include "ImageStreamIO/ImageStruct.h"
#include "ImageStreamIO/ImageStreamIO.h"
#include "info/info.h"
#include "00CORE/00CORE.h"
#include "COREMOD_memory/COREMOD_memory.h"
#include "COREMOD_iofits/COREMOD_iofits.h"
Include dependency graph for COREMOD_memory.c:

Macros

#define _GNU_SOURCE
 
#define MODULE_SHORTNAME_DEFAULT   ""
 
#define MODULE_DESCRIPTION   "Memory management for images and variables"
 
#define MODULE_APPLICATION   "milk"
 
#define STYPESIZE   10
 
#define SBUFFERSIZE   1000
 
#define likely(x)   __builtin_expect(!!(x), 1)
 
#define unlikely(x)   __builtin_expect(!!(x), 0)
 

Functions

errno_t delete_image_ID_cli ()
 
errno_t image_write_keyword_L_cli ()
 
errno_t image_list_keywords_cli ()
 
errno_t read_sharedmem_image_size_cli ()
 
errno_t read_sharedmem_image_cli ()
 
errno_t create_image_cli ()
 
errno_t create_image_shared_cli ()
 
errno_t create_ushort_image_shared_cli ()
 
errno_t create_2Dimage_float ()
 
errno_t create_3Dimage_float ()
 
errno_t copy_image_ID_cli ()
 
errno_t copy_image_ID_sharedmem_cli ()
 
errno_t chname_image_ID_cli ()
 
errno_t COREMOD_MEMORY_cp2shm_cli ()
 
errno_t memory_monitor_cli ()
 
errno_t list_variable_ID_file_cli ()
 
errno_t mk_complex_from_reim_cli ()
 
errno_t mk_complex_from_amph_cli ()
 
errno_t mk_reim_from_complex_cli ()
 
errno_t mk_amph_from_complex_cli ()
 
errno_t COREMOD_MEMORY_image_set_status_cli ()
 
errno_t COREMOD_MEMORY_image_set_cnt0_cli ()
 
errno_t COREMOD_MEMORY_image_set_cnt1_cli ()
 
errno_t COREMOD_MEMORY_image_set_createsem_cli ()
 
errno_t COREMOD_MEMORY_image_seminfo_cli ()
 
errno_t COREMOD_MEMORY_image_set_sempost_cli ()
 
errno_t COREMOD_MEMORY_image_set_sempost_loop_cli ()
 
errno_t COREMOD_MEMORY_image_set_semwait_cli ()
 
errno_t COREMOD_MEMORY_image_set_semflush_cli ()
 
errno_t COREMOD_MEMORY_streamPoke_cli ()
 
errno_t COREMOD_MEMORY_streamDiff_cli ()
 
errno_t COREMOD_MEMORY_streamPaste_cli ()
 
errno_t COREMOD_MEMORY_stream_halfimDiff_cli ()
 
errno_t COREMOD_MEMORY_streamAve_cli ()
 
errno_t COREMOD_MEMORY_image_streamupdateloop_cli ()
 
errno_t COREMOD_MEMORY_image_streamupdateloop_semtrig_cli ()
 
errno_t COREMOD_MEMORY_streamDelay_cli ()
 
errno_t COREMOD_MEMORY_SaveAll_snapshot_cli ()
 
errno_t COREMOD_MEMORY_SaveAll_sequ_cli ()
 
errno_t COREMOD_MEMORY_testfunction_semaphore_cli ()
 
errno_t COREMOD_MEMORY_image_NETWORKtransmit_cli ()
 
errno_t COREMOD_MEMORY_image_NETWORKreceive_cli ()
 
errno_t COREMOD_MEMORY_PixMapDecode_U_cli ()
 
errno_t COREMOD_MEMORY_logshim_printstatus_cli ()
 
errno_t COREMOD_MEMORY_logshim_set_on_cli ()
 
errno_t COREMOD_MEMORY_logshim_set_logexit_cli ()
 
errno_t COREMOD_MEMORY_sharedMem_2Dim_log_cli ()
 
static errno_t init_module_CLI ()
 
errno_t COREMOD_MEMORY_testfunc ()
 
errno_t memory_monitor (const char *termttyname)
 
long compute_nb_image ()
 
long compute_nb_variable ()
 
long long compute_image_memory ()
 
long compute_variable_memory ()
 
imageID image_ID (const char *name)
 
imageID image_ID_noaccessupdate (const char *name)
 
variableID variable_ID (const char *name)
 
imageID next_avail_image_ID ()
 
variableID next_avail_variable_ID ()
 
errno_t delete_image_ID (const char *imname)
 
errno_t delete_image_ID_prefix (const char *prefix)
 
errno_t delete_variable_ID (const char *varname)
 
errno_t clearall ()
 
void * save_fits_function (void *ptr)
 
long image_write_keyword_L (const char *IDname, const char *kname, long value, const char *comment)
 
long image_write_keyword_D (const char *IDname, const char *kname, double value, const char *comment)
 
long image_write_keyword_S (const char *IDname, const char *kname, const char *value, const char *comment)
 
imageID image_list_keywords (const char *IDname)
 
long image_read_keyword_D (const char *IDname, const char *kname, double *val)
 
long image_read_keyword_L (const char *IDname, const char *kname, long *val)
 
imageID read_sharedmem_image_size (const char *name, const char *fname)
 
imageID read_sharedmem_image (const char *name)
 
imageID create_image_ID (const char *name, long naxis, uint32_t *size, uint8_t datatype, int shared, int NBkw)
 
imageID create_1Dimage_ID (const char *ID_name, uint32_t xsize)
 
imageID create_1DCimage_ID (const char *ID_name, uint32_t xsize)
 
imageID create_2Dimage_ID (const char *ID_name, uint32_t xsize, uint32_t ysize)
 
imageID create_2Dimage_ID_double (const char *ID_name, uint32_t xsize, uint32_t ysize)
 
imageID create_2DCimage_ID (const char *ID_name, uint32_t xsize, uint32_t ysize)
 
imageID create_2DCimage_ID_double (const char *ID_name, uint32_t xsize, uint32_t ysize)
 
imageID create_3Dimage_ID_float (const char *ID_name, uint32_t xsize, uint32_t ysize, uint32_t zsize)
 
imageID create_3Dimage_ID_double (const char *ID_name, uint32_t xsize, uint32_t ysize, uint32_t zsize)
 
imageID create_3Dimage_ID (const char *ID_name, uint32_t xsize, uint32_t ysize, uint32_t zsize)
 
imageID create_3DCimage_ID (const char *ID_name, uint32_t xsize, uint32_t ysize, uint32_t zsize)
 
variableID create_variable_ID (const char *name, double value)
 
variableID create_variable_long_ID (const char *name, long value)
 
variableID create_variable_string_ID (const char *name, const char *value)
 
imageID copy_image_ID (const char *name, const char *newname, int shared)
 
imageID chname_image_ID (const char *ID_name, const char *new_name)
 
errno_t COREMOD_MEMORY_cp2shm (const char *IDname, const char *IDshmname)
 
errno_t init_list_image_ID_ncurses (const char *termttyname)
 
errno_t list_image_ID_ncurses ()
 
void close_list_image_ID_ncurses (void)
 
errno_t list_image_ID_ofp (FILE *fo)
 
errno_t list_image_ID_ofp_simple (FILE *fo)
 
errno_t list_image_ID ()
 
errno_t list_image_ID_file (const char *fname)
 
errno_t list_variable_ID ()
 
errno_t list_variable_ID_file (const char *fname)
 
errno_t mk_complex_from_reim (const char *re_name, const char *im_name, const char *out_name, int sharedmem)
 
errno_t mk_complex_from_amph (const char *am_name, const char *ph_name, const char *out_name, int sharedmem)
 
errno_t mk_reim_from_complex (const char *in_name, const char *re_name, const char *im_name, int sharedmem)
 
errno_t mk_amph_from_complex (const char *in_name, const char *am_name, const char *ph_name, int sharedmem)
 
errno_t mk_reim_from_amph (const char *am_name, const char *ph_name, const char *re_out_name, const char *im_out_name, int sharedmem)
 
errno_t mk_amph_from_reim (const char *re_name, const char *im_name, const char *am_out_name, const char *ph_out_name, int sharedmem)
 
int check_2Dsize (const char *ID_name, uint32_t xsize, uint32_t ysize)
 
int check_3Dsize (const char *ID_name, uint32_t xsize, uint32_t ysize, uint32_t zsize)
 
int COREMOD_MEMORY_check_2Dsize (const char *IDname, uint32_t xsize, uint32_t ysize)
 
int COREMOD_MEMORY_check_3Dsize (const char *IDname, uint32_t xsize, uint32_t ysize, uint32_t zsize)
 
errno_t rotate_cube (const char *ID_name, const char *ID_out_name, int orientation)
 
errno_t COREMOD_MEMORY_image_set_status (const char *IDname, int status)
 
errno_t COREMOD_MEMORY_image_set_cnt0 (const char *IDname, int cnt0)
 
errno_t COREMOD_MEMORY_image_set_cnt1 (const char *IDname, int cnt1)
 
imageID COREMOD_MEMORY_image_set_createsem (const char *IDname, long NBsem)
 
imageID COREMOD_MEMORY_image_seminfo (const char *IDname)
 
imageID COREMOD_MEMORY_image_set_sempost (const char *IDname, long index)
 
imageID COREMOD_MEMORY_image_set_sempost_byID (imageID ID, long index)
 
imageID COREMOD_MEMORY_image_set_sempost_excl_byID (imageID ID, long index)
 
imageID COREMOD_MEMORY_image_set_sempost_loop (const char *IDname, long index, long dtus)
 
imageID COREMOD_MEMORY_image_set_semwait (const char *IDname, long index)
 
void * waitforsemID (void *ID)
 
errno_t COREMOD_MEMORY_image_set_semwait_OR_IDarray (imageID *IDarray, long NB_ID)
 Wait for multiple images semaphores [OR], only works for sem0. More...
 
errno_t COREMOD_MEMORY_image_set_semflush_IDarray (imageID *IDarray, long NB_ID)
 flush multiple semaphores More...
 
imageID COREMOD_MEMORY_image_set_semflush (const char *IDname, long index)
 set semaphore value to 0 More...
 
imageID COREMOD_MEMORY_streamPoke (const char *IDstream_name, long usperiod)
 Poke stream at regular intervals. More...
 
imageID COREMOD_MEMORY_streamDiff (const char *IDstream0_name, const char *IDstream1_name, const char *IDstreammask_name, const char *IDstreamout_name, long semtrig)
 Difference between two streams. More...
 
imageID COREMOD_MEMORY_streamPaste (const char *IDstream0_name, const char *IDstream1_name, const char *IDstreamout_name, long semtrig0, long semtrig1, int master)
 Paste two equal size 2D streams into an output 2D stream. More...
 
imageID COREMOD_MEMORY_stream_halfimDiff (const char *IDstream_name, const char *IDstreamout_name, long semtrig)
 
imageID COREMOD_MEMORY_streamAve (const char *IDstream_name, int NBave, int mode, const char *IDout_name)
 Averages frames in stream. More...
 
imageID COREMOD_MEMORY_image_streamupdateloop (const char *IDinname, const char *IDoutname, long usperiod, long NBcubes, long period, long offsetus, const char *IDsync_name, int semtrig, __attribute__((unused)) int timingmode)
 takes a 3Dimage(s) (circular buffer(s)) and writes slices to a 2D image with time interval specified in us More...
 
imageID COREMOD_MEMORY_image_streamupdateloop_semtrig (const char *IDinname, const char *IDoutname, long period, long offsetus, const char *IDsync_name, int semtrig, __attribute__((unused)) int timingmode)
 
errno_t COREMOD_MEMORY_streamDelay_FPCONF (char *fpsname, uint32_t CMDmode)
 Manages configuration parameters for streamDelay. More...
 
imageID COREMOD_MEMORY_streamDelay_RUN (char *fpsname)
 Delay image stream by time offset. More...
 
errno_t COREMOD_MEMORY_streamDelay (const char *IDin_name, const char *IDout_name, long delayus, long dtus)
 
errno_t COREMOD_MEMORY_SaveAll_snapshot (const char *dirname)
 
errno_t COREMOD_MEMORY_SaveAll_sequ (const char *dirname, const char *IDtrig_name, long semtrig, long NBframes)
 
errno_t COREMOD_MEMORY_testfunction_semaphore (const char *IDname, int semtrig, int testmode)
 
imageID COREMOD_MEMORY_image_NETWORKtransmit (const char *IDname, const char *IPaddr, int port, int mode, int RT_priority)
 
imageID COREMOD_MEMORY_image_NETWORKreceive (int port, __attribute__((unused)) int mode, int RT_priority)
 
imageID COREMOD_MEMORY_PixMapDecode_U (const char *inputstream_name, uint32_t xsizeim, uint32_t ysizeim, const char *NBpix_fname, const char *IDmap_name, const char *IDout_name, const char *IDout_pixslice_fname)
 
LOGSHIM_CONFCOREMOD_MEMORY_logshim_create_SHMconf (const char *logshimname)
 creates logshimconf shared memory and loads it More...
 
errno_t COREMOD_MEMORY_logshim_printstatus (const char *IDname)
 
errno_t COREMOD_MEMORY_logshim_set_on (const char *IDname, int setv)
 
errno_t COREMOD_MEMORY_logshim_set_logexit (const char *IDname, int setv)
 
errno_t __attribute__ ((hot))
 Compute modes in open loop. More...
 

Variables

static pthread_t * thrarray_semwait
 
static long NB_thrarray_semwait
 
static FILE * listim_scr_fpo
 
static FILE * listim_scr_fpi
 
static SCREEN * listim_scr
 
static int MEM_MONITOR = 0
 
static int listim_scr_wrow
 
static int listim_scr_wcol
 
static char errmsg_memory [SBUFFERSIZE]
 
static long tret
 

Detailed Description

milk memory functions

Functions to handle images and streams

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE

◆ likely

#define likely (   x)    __builtin_expect(!!(x), 1)

◆ MODULE_APPLICATION

#define MODULE_APPLICATION   "milk"

◆ MODULE_DESCRIPTION

#define MODULE_DESCRIPTION   "Memory management for images and variables"

◆ MODULE_SHORTNAME_DEFAULT

#define MODULE_SHORTNAME_DEFAULT   ""

◆ SBUFFERSIZE

#define SBUFFERSIZE   1000

◆ STYPESIZE

#define STYPESIZE   10

◆ unlikely

#define unlikely (   x)    __builtin_expect(!!(x), 0)

Function Documentation

◆ __attribute__()

errno_t __attribute__ ( (hot)  )

Compute modes in open loop.

logs a shared memory stream onto disk uses semlog semaphore

uses data cube buffer to store frames if an image name logdata exists (should ideally be in shared mem), then this will be included in the timing txt file

create the 2 buffers

measure time

measure time

cases: index>zsize-1 buffer full timeout==1 && index>0 : partial

save image

◆ check_2Dsize()

int check_2Dsize ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize 
)

◆ check_3Dsize()

int check_3Dsize ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize,
uint32_t  zsize 
)

◆ chname_image_ID()

imageID chname_image_ID ( const char *  ID_name,
const char *  new_name 
)

◆ chname_image_ID_cli()

errno_t chname_image_ID_cli ( )

◆ clearall()

errno_t clearall ( )

◆ close_list_image_ID_ncurses()

void close_list_image_ID_ncurses ( void  )

◆ compute_image_memory()

long long compute_image_memory ( )

◆ compute_nb_image()

long compute_nb_image ( )

◆ compute_nb_variable()

long compute_nb_variable ( )

◆ compute_variable_memory()

long compute_variable_memory ( )

◆ copy_image_ID()

imageID copy_image_ID ( const char *  name,
const char *  newname,
int  shared 
)

◆ copy_image_ID_cli()

errno_t copy_image_ID_cli ( )

◆ copy_image_ID_sharedmem_cli()

errno_t copy_image_ID_sharedmem_cli ( )

◆ COREMOD_MEMORY_check_2Dsize()

int COREMOD_MEMORY_check_2Dsize ( const char *  IDname,
uint32_t  xsize,
uint32_t  ysize 
)

◆ COREMOD_MEMORY_check_3Dsize()

int COREMOD_MEMORY_check_3Dsize ( const char *  IDname,
uint32_t  xsize,
uint32_t  ysize,
uint32_t  zsize 
)

◆ COREMOD_MEMORY_cp2shm()

errno_t COREMOD_MEMORY_cp2shm ( const char *  IDname,
const char *  IDshmname 
)

copy an image to shared memory

◆ COREMOD_MEMORY_cp2shm_cli()

errno_t COREMOD_MEMORY_cp2shm_cli ( )

◆ COREMOD_MEMORY_image_NETWORKreceive()

imageID COREMOD_MEMORY_image_NETWORKreceive ( int  port,
__attribute__((unused)) int  mode,
int  RT_priority 
)

continuously receives 2D image through TCP link mode = 1, force counter to be used for synchronization, ignore semaphores if they exist

◆ COREMOD_MEMORY_image_NETWORKreceive_cli()

errno_t COREMOD_MEMORY_image_NETWORKreceive_cli ( )

◆ COREMOD_MEMORY_image_NETWORKtransmit()

imageID COREMOD_MEMORY_image_NETWORKtransmit ( const char *  IDname,
const char *  IPaddr,
int  port,
int  mode,
int  RT_priority 
)

continuously transmits 2D image through TCP link mode = 1, force counter to be used for synchronization, ignore semaphores if they exist

◆ COREMOD_MEMORY_image_NETWORKtransmit_cli()

errno_t COREMOD_MEMORY_image_NETWORKtransmit_cli ( )

◆ COREMOD_MEMORY_image_seminfo()

imageID COREMOD_MEMORY_image_seminfo ( const char *  IDname)

◆ COREMOD_MEMORY_image_seminfo_cli()

errno_t COREMOD_MEMORY_image_seminfo_cli ( )

◆ COREMOD_MEMORY_image_set_cnt0()

errno_t COREMOD_MEMORY_image_set_cnt0 ( const char *  IDname,
int  cnt0 
)

◆ COREMOD_MEMORY_image_set_cnt0_cli()

errno_t COREMOD_MEMORY_image_set_cnt0_cli ( )

◆ COREMOD_MEMORY_image_set_cnt1()

errno_t COREMOD_MEMORY_image_set_cnt1 ( const char *  IDname,
int  cnt1 
)

◆ COREMOD_MEMORY_image_set_cnt1_cli()

errno_t COREMOD_MEMORY_image_set_cnt1_cli ( )

◆ COREMOD_MEMORY_image_set_createsem()

imageID COREMOD_MEMORY_image_set_createsem ( const char *  IDname,
long  NBsem 
)

◆ COREMOD_MEMORY_image_set_createsem_cli()

errno_t COREMOD_MEMORY_image_set_createsem_cli ( )

◆ COREMOD_MEMORY_image_set_semflush()

imageID COREMOD_MEMORY_image_set_semflush ( const char *  IDname,
long  index 
)

set semaphore value to 0

◆ COREMOD_MEMORY_image_set_semflush_cli()

errno_t COREMOD_MEMORY_image_set_semflush_cli ( )

◆ COREMOD_MEMORY_image_set_semflush_IDarray()

errno_t COREMOD_MEMORY_image_set_semflush_IDarray ( imageID IDarray,
long  NB_ID 
)

flush multiple semaphores

◆ COREMOD_MEMORY_image_set_sempost()

imageID COREMOD_MEMORY_image_set_sempost ( const char *  IDname,
long  index 
)

◆ COREMOD_MEMORY_image_set_sempost_byID()

imageID COREMOD_MEMORY_image_set_sempost_byID ( imageID  ID,
long  index 
)

◆ COREMOD_MEMORY_image_set_sempost_cli()

errno_t COREMOD_MEMORY_image_set_sempost_cli ( )

◆ COREMOD_MEMORY_image_set_sempost_excl_byID()

imageID COREMOD_MEMORY_image_set_sempost_excl_byID ( imageID  ID,
long  index 
)

◆ COREMOD_MEMORY_image_set_sempost_loop()

imageID COREMOD_MEMORY_image_set_sempost_loop ( const char *  IDname,
long  index,
long  dtus 
)

◆ COREMOD_MEMORY_image_set_sempost_loop_cli()

errno_t COREMOD_MEMORY_image_set_sempost_loop_cli ( )

◆ COREMOD_MEMORY_image_set_semwait()

imageID COREMOD_MEMORY_image_set_semwait ( const char *  IDname,
long  index 
)

◆ COREMOD_MEMORY_image_set_semwait_cli()

errno_t COREMOD_MEMORY_image_set_semwait_cli ( )

◆ COREMOD_MEMORY_image_set_semwait_OR_IDarray()

errno_t COREMOD_MEMORY_image_set_semwait_OR_IDarray ( imageID IDarray,
long  NB_ID 
)

Wait for multiple images semaphores [OR], only works for sem0.

◆ COREMOD_MEMORY_image_set_status()

errno_t COREMOD_MEMORY_image_set_status ( const char *  IDname,
int  status 
)

◆ COREMOD_MEMORY_image_set_status_cli()

errno_t COREMOD_MEMORY_image_set_status_cli ( )

◆ COREMOD_MEMORY_image_streamupdateloop()

imageID COREMOD_MEMORY_image_streamupdateloop ( const char *  IDinname,
const char *  IDoutname,
long  usperiod,
long  NBcubes,
long  period,
long  offsetus,
const char *  IDsync_name,
int  semtrig,
__attribute__((unused)) int  timingmode 
)

takes a 3Dimage(s) (circular buffer(s)) and writes slices to a 2D image with time interval specified in us

If NBcubes=1, then the circular buffer named IDinname is sent to IDoutname at a frequency of 1/usperiod MHz If NBcubes>1, several circular buffers are used, named ("%S_%03ld", IDinname, cubeindex). Semaphore semtrig of image IDsync_name triggers switch between circular buffers, with a delay of offsetus. The number of consecutive sem posts required to advance to the next circular buffer is period

Parameters
IDinnameName of DM circular buffer (appended by _000, _001 etc... if NBcubes>1)
IDoutnameOutput DM channel stream
usperiodInterval between consecutive frames [us]
NBcubesNumber of input DM circular buffers
periodIf NBcubes>1: number of input triggers required to advance to next input buffer
offsetusIf NBcubes>1: time offset [us] between input trigger and input buffer switch
IDsync_nameIf NBcubes>1: Stream used for synchronization
semtrigIf NBcubes>1: semaphore used for synchronization
timingmodeNot used

◆ COREMOD_MEMORY_image_streamupdateloop_cli()

errno_t COREMOD_MEMORY_image_streamupdateloop_cli ( )

◆ COREMOD_MEMORY_image_streamupdateloop_semtrig()

imageID COREMOD_MEMORY_image_streamupdateloop_semtrig ( const char *  IDinname,
const char *  IDoutname,
long  period,
long  offsetus,
const char *  IDsync_name,
int  semtrig,
__attribute__((unused)) int  timingmode 
)

◆ COREMOD_MEMORY_image_streamupdateloop_semtrig_cli()

errno_t COREMOD_MEMORY_image_streamupdateloop_semtrig_cli ( )

◆ COREMOD_MEMORY_logshim_create_SHMconf()

LOGSHIM_CONF* COREMOD_MEMORY_logshim_create_SHMconf ( const char *  logshimname)

creates logshimconf shared memory and loads it

◆ COREMOD_MEMORY_logshim_printstatus()

errno_t COREMOD_MEMORY_logshim_printstatus ( const char *  IDname)

◆ COREMOD_MEMORY_logshim_printstatus_cli()

errno_t COREMOD_MEMORY_logshim_printstatus_cli ( )

◆ COREMOD_MEMORY_logshim_set_logexit()

errno_t COREMOD_MEMORY_logshim_set_logexit ( const char *  IDname,
int  setv 
)

◆ COREMOD_MEMORY_logshim_set_logexit_cli()

errno_t COREMOD_MEMORY_logshim_set_logexit_cli ( )

◆ COREMOD_MEMORY_logshim_set_on()

errno_t COREMOD_MEMORY_logshim_set_on ( const char *  IDname,
int  setv 
)

◆ COREMOD_MEMORY_logshim_set_on_cli()

errno_t COREMOD_MEMORY_logshim_set_on_cli ( )

◆ COREMOD_MEMORY_PixMapDecode_U()

imageID COREMOD_MEMORY_PixMapDecode_U ( const char *  inputstream_name,
uint32_t  xsizeim,
uint32_t  ysizeim,
const char *  NBpix_fname,
const char *  IDmap_name,
const char *  IDout_name,
const char *  IDout_pixslice_fname 
)

◆ COREMOD_MEMORY_PixMapDecode_U_cli()

errno_t COREMOD_MEMORY_PixMapDecode_U_cli ( )

◆ COREMOD_MEMORY_SaveAll_sequ()

errno_t COREMOD_MEMORY_SaveAll_sequ ( const char *  dirname,
const char *  IDtrig_name,
long  semtrig,
long  NBframes 
)

◆ COREMOD_MEMORY_SaveAll_sequ_cli()

errno_t COREMOD_MEMORY_SaveAll_sequ_cli ( )

◆ COREMOD_MEMORY_SaveAll_snapshot()

errno_t COREMOD_MEMORY_SaveAll_snapshot ( const char *  dirname)

◆ COREMOD_MEMORY_SaveAll_snapshot_cli()

errno_t COREMOD_MEMORY_SaveAll_snapshot_cli ( )

◆ COREMOD_MEMORY_sharedMem_2Dim_log_cli()

errno_t COREMOD_MEMORY_sharedMem_2Dim_log_cli ( )

◆ COREMOD_MEMORY_stream_halfimDiff()

imageID COREMOD_MEMORY_stream_halfimDiff ( const char *  IDstream_name,
const char *  IDstreamout_name,
long  semtrig 
)

difference between two halves of stream image

◆ COREMOD_MEMORY_stream_halfimDiff_cli()

errno_t COREMOD_MEMORY_stream_halfimDiff_cli ( )

◆ COREMOD_MEMORY_streamAve()

imageID COREMOD_MEMORY_streamAve ( const char *  IDstream_name,
int  NBave,
int  mode,
const char *  IDout_name 
)

Averages frames in stream.

Parameters
[in]IDstream_nameInput stream
[in]NBaveNumber of consecutive frames to be averaged together
[in]mode1: Perform average once, exit when completed and write output to local image 2: Run forever, write output to shared mem stream
[out]IDout_nameoutput stream name

◆ COREMOD_MEMORY_streamAve_cli()

errno_t COREMOD_MEMORY_streamAve_cli ( )

◆ COREMOD_MEMORY_streamDelay()

errno_t COREMOD_MEMORY_streamDelay ( const char *  IDin_name,
const char *  IDout_name,
long  delayus,
long  dtus 
)

◆ COREMOD_MEMORY_streamDelay_cli()

errno_t COREMOD_MEMORY_streamDelay_cli ( )

◆ COREMOD_MEMORY_streamDelay_FPCONF()

errno_t COREMOD_MEMORY_streamDelay_FPCONF ( char *  fpsname,
uint32_t  CMDmode 
)

Manages configuration parameters for streamDelay.

Purpose

Initializes configuration parameters structure

Arguments

Parameters
[in]char*fpsname name of function parameter structure
[in]uint32_tCMDmode Command mode

◆ COREMOD_MEMORY_streamDelay_RUN()

imageID COREMOD_MEMORY_streamDelay_RUN ( char *  fpsname)

Delay image stream by time offset.

IDout_name is a time-delayed copy of IDin_name

CONNECT TO FPS

GET FUNCTION PARAMETER VALUES

processinfo support

OPTIONAL: TESTING CONDITION FOR LOOP ENTRY

START LOOP

ENDING LOOP

◆ COREMOD_MEMORY_streamDiff()

imageID COREMOD_MEMORY_streamDiff ( const char *  IDstream0_name,
const char *  IDstream1_name,
const char *  IDstreammask_name,
const char *  IDstreamout_name,
long  semtrig 
)

Difference between two streams.

Purpose

Compute difference between two 2D streams
Triggers on stream0

◆ COREMOD_MEMORY_streamDiff_cli()

errno_t COREMOD_MEMORY_streamDiff_cli ( )

◆ COREMOD_MEMORY_streamPaste()

imageID COREMOD_MEMORY_streamPaste ( const char *  IDstream0_name,
const char *  IDstream1_name,
const char *  IDstreamout_name,
long  semtrig0,
long  semtrig1,
int  master 
)

Paste two equal size 2D streams into an output 2D stream.

◆ COREMOD_MEMORY_streamPaste_cli()

errno_t COREMOD_MEMORY_streamPaste_cli ( )

◆ COREMOD_MEMORY_streamPoke()

imageID COREMOD_MEMORY_streamPoke ( const char *  IDstream_name,
long  usperiod 
)

Poke stream at regular intervals.

Purpose

Poke a stream at regular time interval
Does not change shared memory content

◆ COREMOD_MEMORY_streamPoke_cli()

errno_t COREMOD_MEMORY_streamPoke_cli ( )

◆ COREMOD_MEMORY_testfunc()

errno_t COREMOD_MEMORY_testfunc ( )

Test function aimed at creating unsolved seg fault bug Will crash under gcc-7 if -O3 or -Ofast gcc compilation flag

UPDATE: has been resolved (2019) - kept it for reference

◆ COREMOD_MEMORY_testfunction_semaphore()

errno_t COREMOD_MEMORY_testfunction_semaphore ( const char *  IDname,
int  semtrig,
int  testmode 
)

◆ COREMOD_MEMORY_testfunction_semaphore_cli()

errno_t COREMOD_MEMORY_testfunction_semaphore_cli ( )

◆ create_1DCimage_ID()

imageID create_1DCimage_ID ( const char *  ID_name,
uint32_t  xsize 
)

◆ create_1Dimage_ID()

imageID create_1Dimage_ID ( const char *  ID_name,
uint32_t  xsize 
)

◆ create_2DCimage_ID()

imageID create_2DCimage_ID ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize 
)

◆ create_2DCimage_ID_double()

imageID create_2DCimage_ID_double ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize 
)

◆ create_2Dimage_float()

errno_t create_2Dimage_float ( )

◆ create_2Dimage_ID()

imageID create_2Dimage_ID ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize 
)

◆ create_2Dimage_ID_double()

imageID create_2Dimage_ID_double ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize 
)

◆ create_3DCimage_ID()

imageID create_3DCimage_ID ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize,
uint32_t  zsize 
)

◆ create_3Dimage_float()

errno_t create_3Dimage_float ( )

◆ create_3Dimage_ID()

imageID create_3Dimage_ID ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize,
uint32_t  zsize 
)

◆ create_3Dimage_ID_double()

imageID create_3Dimage_ID_double ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize,
uint32_t  zsize 
)

◆ create_3Dimage_ID_float()

imageID create_3Dimage_ID_float ( const char *  ID_name,
uint32_t  xsize,
uint32_t  ysize,
uint32_t  zsize 
)

◆ create_image_cli()

errno_t create_image_cli ( )

◆ create_image_ID()

imageID create_image_ID ( const char *  name,
long  naxis,
uint32_t *  size,
uint8_t  datatype,
int  shared,
int  NBkw 
)

◆ create_image_shared_cli()

errno_t create_image_shared_cli ( )

◆ create_ushort_image_shared_cli()

errno_t create_ushort_image_shared_cli ( )

◆ create_variable_ID()

variableID create_variable_ID ( const char *  name,
double  value 
)

floating point double

◆ create_variable_long_ID()

variableID create_variable_long_ID ( const char *  name,
long  value 
)

long

◆ create_variable_string_ID()

variableID create_variable_string_ID ( const char *  name,
const char *  value 
)

string

◆ delete_image_ID()

errno_t delete_image_ID ( const char *  imname)

◆ delete_image_ID_cli()

errno_t delete_image_ID_cli ( )

◆ delete_image_ID_prefix()

errno_t delete_image_ID_prefix ( const char *  prefix)

◆ delete_variable_ID()

errno_t delete_variable_ID ( const char *  varname)

◆ image_ID()

imageID image_ID ( const char *  name)

◆ image_ID_noaccessupdate()

imageID image_ID_noaccessupdate ( const char *  name)

◆ image_list_keywords()

imageID image_list_keywords ( const char *  IDname)

◆ image_list_keywords_cli()

errno_t image_list_keywords_cli ( )

◆ image_read_keyword_D()

long image_read_keyword_D ( const char *  IDname,
const char *  kname,
double *  val 
)

◆ image_read_keyword_L()

long image_read_keyword_L ( const char *  IDname,
const char *  kname,
long *  val 
)

◆ image_write_keyword_D()

long image_write_keyword_D ( const char *  IDname,
const char *  kname,
double  value,
const char *  comment 
)

◆ image_write_keyword_L()

long image_write_keyword_L ( const char *  IDname,
const char *  kname,
long  value,
const char *  comment 
)

◆ image_write_keyword_L_cli()

errno_t image_write_keyword_L_cli ( )

◆ image_write_keyword_S()

long image_write_keyword_S ( const char *  IDname,
const char *  kname,
const char *  value,
const char *  comment 
)

◆ init_list_image_ID_ncurses()

errno_t init_list_image_ID_ncurses ( const char *  termttyname)

◆ init_module_CLI()

static errno_t init_module_CLI ( )
static

◆ list_image_ID()

errno_t list_image_ID ( )

◆ list_image_ID_file()

errno_t list_image_ID_file ( const char *  fname)

◆ list_image_ID_ncurses()

errno_t list_image_ID_ncurses ( )

◆ list_image_ID_ofp()

errno_t list_image_ID_ofp ( FILE *  fo)

◆ list_image_ID_ofp_simple()

errno_t list_image_ID_ofp_simple ( FILE *  fo)

◆ list_variable_ID()

errno_t list_variable_ID ( )

◆ list_variable_ID_file()

errno_t list_variable_ID_file ( const char *  fname)

◆ list_variable_ID_file_cli()

errno_t list_variable_ID_file_cli ( )

◆ memory_monitor()

errno_t memory_monitor ( const char *  termttyname)

◆ memory_monitor_cli()

errno_t memory_monitor_cli ( )

◆ mk_amph_from_complex()

errno_t mk_amph_from_complex ( const char *  in_name,
const char *  am_name,
const char *  ph_name,
int  sharedmem 
)

◆ mk_amph_from_complex_cli()

errno_t mk_amph_from_complex_cli ( )

◆ mk_amph_from_reim()

errno_t mk_amph_from_reim ( const char *  re_name,
const char *  im_name,
const char *  am_out_name,
const char *  ph_out_name,
int  sharedmem 
)

◆ mk_complex_from_amph()

errno_t mk_complex_from_amph ( const char *  am_name,
const char *  ph_name,
const char *  out_name,
int  sharedmem 
)

◆ mk_complex_from_amph_cli()

errno_t mk_complex_from_amph_cli ( )

◆ mk_complex_from_reim()

errno_t mk_complex_from_reim ( const char *  re_name,
const char *  im_name,
const char *  out_name,
int  sharedmem 
)

◆ mk_complex_from_reim_cli()

errno_t mk_complex_from_reim_cli ( )

◆ mk_reim_from_amph()

errno_t mk_reim_from_amph ( const char *  am_name,
const char *  ph_name,
const char *  re_out_name,
const char *  im_out_name,
int  sharedmem 
)

◆ mk_reim_from_complex()

errno_t mk_reim_from_complex ( const char *  in_name,
const char *  re_name,
const char *  im_name,
int  sharedmem 
)

◆ mk_reim_from_complex_cli()

errno_t mk_reim_from_complex_cli ( )

◆ next_avail_image_ID()

imageID next_avail_image_ID ( )

◆ next_avail_variable_ID()

variableID next_avail_variable_ID ( )

◆ read_sharedmem_image()

imageID read_sharedmem_image ( const char *  name)

◆ read_sharedmem_image_cli()

errno_t read_sharedmem_image_cli ( )

◆ read_sharedmem_image_size()

imageID read_sharedmem_image_size ( const char *  name,
const char *  fname 
)

Purpose

Read shared memory image size

Arguments

Parameters
[in]namechar*
  • stream name
[in]fnamechar* file name to write image name

◆ read_sharedmem_image_size_cli()

errno_t read_sharedmem_image_size_cli ( )

◆ rotate_cube()

errno_t rotate_cube ( const char *  ID_name,
const char *  ID_out_name,
int  orientation 
)

◆ save_fits_function()

void* save_fits_function ( void *  ptr)

Purpose

Save telemetry stream data

◆ variable_ID()

variableID variable_ID ( const char *  name)

◆ waitforsemID()

void* waitforsemID ( void *  ID)

Variable Documentation

◆ errmsg_memory

char errmsg_memory[SBUFFERSIZE]
static

◆ listim_scr

SCREEN* listim_scr
static

◆ listim_scr_fpi

FILE* listim_scr_fpi
static

◆ listim_scr_fpo

FILE* listim_scr_fpo
static

◆ listim_scr_wcol

int listim_scr_wcol
static

◆ listim_scr_wrow

int listim_scr_wrow
static

◆ MEM_MONITOR

int MEM_MONITOR = 0
static

◆ NB_thrarray_semwait

long NB_thrarray_semwait
static

◆ thrarray_semwait

pthread_t* thrarray_semwait
static

◆ tret

long tret
static

data logging of shared memory image stream