API
 
Loading...
Searching...
No Matches
MagAOX::app::dev::dmPokeWFS< derivedT > Class Template Reference

A base class to coordinate poking a deformable mirror's actuators and synchronizedreads of a camera image. More...

#include <dmPokeWFS.hpp>

Collaboration diagram for MagAOX::app::dev::dmPokeWFS< derivedT >:
Collaboration graph

Classes

struct  darkShmimT
 
struct  wfsShmimT
 

Public Member Functions

MagAOXApp Interface
int setupConfig (mx::app::appConfigurator &config)
 Setup the configuration system.
 
int loadConfig (mx::app::appConfigurator &config)
 load the configuration system results
 
int appStartup ()
 Startup function.
 
int appLogic ()
 dmPokeWFS application logic
 
int appShutdown ()
 dmPokeWFS shutdown
 
shmimMonitor Interface
int allocate (const wfsShmimT &)
 
int processImage (void *curr_src, const wfsShmimT &)
 
darkShmimMonitor Interface
int allocate (const darkShmimT &)
 
int processImage (void *curr_src, const darkShmimT &)
 

Protected Member Functions

int basicTimedPoke (float pokeSign)
 Apply a single DM poke pattern and record the results.
 
int basicRunSensor ()
 Run the basic +/- poke sensor steps.
 
int updateMeasurement (float deltaX, float deltaY)
 
Telemeter Interface
int recordTelem (const telem_pokeloop *)
 
int recordPokeLoop (bool force=false)
 

Protected Attributes

std::mutex m_wfsImageMutex
 
mx::improc::milkImage< float > m_rawImage
 
mx::improc::milkImage< float > m_pokeImage
 
mx::improc::eigenImage< float > m_pokeLocal
 
float(* wfsPixget )(void *, size_t)
 
float m_wfsFps {-1}
 Pointer to a function to extract the image data as float.
 
mx::improc::eigenImage< float > m_darkImage
 The dark image.
 
bool m_darkValid {false}
 Flag indicating if dark is valid based on its size.
 
float(* darkPixget )(void *, size_t)
 
mx::improc::milkImage< float > m_dmStream
 Pointer to a function to extract the dark image data as float.
 
mx::improc::eigenImage< float > m_dmImage
 
float m_deltaX {0}
 
float m_deltaY {0}
 
uint64_t m_counter {0}
 
sem_t m_imageSemaphore
 Semaphore used to signal that an image is ready.
 
unsigned m_imageSemWait_sec {1}
 The timeout for the image semaphore, seconds component.
 
unsigned m_imageSemWait_nsec {0}
 The timeout for the image semaphore, nanoseconds component.
 
Configurable Parameters
std::string m_wfsCamDevName
 INDI device name of the WFS camera. Default is wfscam.shmimName.
 
double m_wfsSemWait {1.5}
 The time in sec to wait on the WFS semaphore. Default 0.5 sec.
 
double m_imageSemWait {0.5}
 The time in sec to wait on the image semaphore. Default 0.5 sec.
 
unsigned m_nPokeImages {5}
 The number of images to average for the poke images. Default is 5.
 
unsigned m_nPokeAverage {10}
 The number of poke sequences to average. Default is 10.
 
std::string m_dmChan
 
std::vector< int > m_poke_x
 
std::vector< int > m_poke_y
 
float m_poke_amp {0.0}
 
float m_dmSleep {10000}
 The time to sleep for the DM command to be applied, in microseconds. Default is 10000.
 

Private Member Functions

derivedT & derived ()
 

WFS Thread

This thread coordinates the WFS process

int m_wfsThreadPrio {1}
 Priority of the WFS thread, should normally be > 00.
 
std::string m_wfsCpuset
 The cpuset for the framegrabber thread. Ignored if empty (the default).
 
std::thread m_wfsThread
 A separate thread for the actual WFSing.
 
bool m_wfsThreadInit {true}
 Synchronizer to ensure wfs thread initializes before doing dangerous things.
 
pid_t m_wfsThreadID {0}
 WFS thread PID.
 
pcf::IndiProperty m_wfsThreadProp
 The property to hold the WFS thread details.
 
sem_t m_wfsSemaphore
 Semaphore used to signal the WFS thread to start WFSing.
 
unsigned m_wfsSemWait_sec {1}
 The timeout for the WFS semaphore, seconds component.
 
unsigned m_wfsSemWait_nsec {0}
 The timeoutfor the WFS semaphore, nanoseconds component.
 
int m_measuring {0}
 Status of measuring: 0 no, 1 single in progress, 2 continuous in progress.
 
bool m_single {false}
 True a single measurement is in progress.
 
bool m_continuous {false}
 True if continuous measurements are in progress.
 
bool m_stopMeasurement {false}
 Used to request that the measurement in progress stop.
 
static void wfsThreadStart (dmPokeWFS *s)
 Thread starter, called by wfsThreadStart on thread construction. Calls wfsThreadExec.
 
void wfsThreadExec ()
 Execute the frame grabber main loop.
 

INDI Interface

pcf::IndiProperty m_indiP_poke_amp
 
pcf::IndiProperty m_indiP_nPokeImages
 
pcf::IndiProperty m_indiP_nPokeAverage
 
pcf::IndiProperty m_indiP_wfsFps
 Property to get the FPS from the WFS camera.
 
pcf::IndiProperty m_indiP_single
 Switch to start a single measurement.
 
pcf::IndiProperty m_indiP_continuous
 Switch to start continuous measurement.
 
pcf::IndiProperty m_indiP_stop
 Switch to request that measurement stop.
 
pcf::IndiProperty m_indiP_measurement
 Property to report the delta measurement, including the loop counter.
 
 INDI_NEWCALLBACK_DECL (derivedT, m_indiP_poke_amp)
 
 INDI_NEWCALLBACK_DECL (derivedT, m_indiP_nPokeImages)
 
 INDI_NEWCALLBACK_DECL (derivedT, m_indiP_nPokeAverage)
 
 INDI_SETCALLBACK_DECL (derivedT, m_indiP_wfsFps)
 
 INDI_NEWCALLBACK_DECL (derivedT, m_indiP_single)
 
 INDI_NEWCALLBACK_DECL (derivedT, m_indiP_continuous)
 
 INDI_NEWCALLBACK_DECL (derivedT, m_indiP_stop)
 

Detailed Description

template<class derivedT>
class MagAOX::app::dev::dmPokeWFS< derivedT >

A base class to coordinate poking a deformable mirror's actuators and synchronizedreads of a camera image.

CRTP class derivedT has the following requirements:

Definition at line 136 of file dmPokeWFS.hpp.

Member Function Documentation

◆ allocate() [1/2]

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::allocate ( const darkShmimT dummy)
Parameters
[in]dummytag to differentiate shmimMonitor parents.

Definition at line 744 of file dmPokeWFS.hpp.

◆ allocate() [2/2]

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::allocate ( const wfsShmimT dummy)
Parameters
[in]dummytag to differentiate shmimMonitor parents.

Definition at line 662 of file dmPokeWFS.hpp.

◆ appLogic()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::appLogic ( )

dmPokeWFS application logic

This should be called in derivedT::appLogic as

with appropriate error checking.

Returns
0 on success
-1 on error, which is logged.

Definition at line 571 of file dmPokeWFS.hpp.

◆ appShutdown()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::appShutdown ( )

dmPokeWFS shutdown

This should be called in derivedT::appShutdown as

with appropriate error checking.

Returns
0 on success
-1 on error, which is logged.

Definition at line 634 of file dmPokeWFS.hpp.

◆ appStartup()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::appStartup ( )

Startup function.

This should be called in derivedT::appStartup as

with appropriate error checking.

Returns
0 on success
-1 on error, which is logged.

Definition at line 515 of file dmPokeWFS.hpp.

◆ basicRunSensor()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::basicRunSensor ( )
protected

Run the basic +/- poke sensor steps.

Coordinates the actions of poking and collecting images.

This can be called from the derived class runSensor.

Returns
+1 if exit is due to shutdown or stop request
0 if no error
-1 if an error occurs

Definition at line 944 of file dmPokeWFS.hpp.

◆ basicTimedPoke()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::basicTimedPoke ( float  pokeSign)
protected

Apply a single DM poke pattern and record the results.

This accumulates m_nPokeImages*m_nPokeAverage images in m_pokeLocal, so m_pokeLocal should be zeroed before the first call to this (e.g. for a +1 poke), but not zeroed before the second call (e.g. for the -1 poke). You also need to 0 the DM after finishing a poke pair. See basicRunSensor() for how to use.

Returns
+1 if exit is due to shutdown or stop request
0 if no error
-1 if an error occurs
Parameters
[in]pokeSignthe sign, and possibly a scaling, to apply to m_pokeAmplitude

Definition at line 885 of file dmPokeWFS.hpp.

◆ derived()

template<class derivedT >
derivedT & MagAOX::app::dev::dmPokeWFS< derivedT >::derived ( )
inlineprivate

Definition at line 426 of file dmPokeWFS.hpp.

◆ INDI_NEWCALLBACK_DECL() [1/6]

template<class derivedT >
MagAOX::app::dev::dmPokeWFS< derivedT >::INDI_NEWCALLBACK_DECL ( derivedT  ,
m_indiP_continuous   
)
protected

◆ INDI_NEWCALLBACK_DECL() [2/6]

template<class derivedT >
MagAOX::app::dev::dmPokeWFS< derivedT >::INDI_NEWCALLBACK_DECL ( derivedT  ,
m_indiP_nPokeAverage   
)
protected

◆ INDI_NEWCALLBACK_DECL() [3/6]

template<class derivedT >
MagAOX::app::dev::dmPokeWFS< derivedT >::INDI_NEWCALLBACK_DECL ( derivedT  ,
m_indiP_nPokeImages   
)
protected

◆ INDI_NEWCALLBACK_DECL() [4/6]

template<class derivedT >
MagAOX::app::dev::dmPokeWFS< derivedT >::INDI_NEWCALLBACK_DECL ( derivedT  ,
m_indiP_poke_amp   
)
protected

◆ INDI_NEWCALLBACK_DECL() [5/6]

template<class derivedT >
MagAOX::app::dev::dmPokeWFS< derivedT >::INDI_NEWCALLBACK_DECL ( derivedT  ,
m_indiP_single   
)
protected

◆ INDI_NEWCALLBACK_DECL() [6/6]

template<class derivedT >
MagAOX::app::dev::dmPokeWFS< derivedT >::INDI_NEWCALLBACK_DECL ( derivedT  ,
m_indiP_stop   
)
protected

◆ INDI_SETCALLBACK_DECL()

template<class derivedT >
MagAOX::app::dev::dmPokeWFS< derivedT >::INDI_SETCALLBACK_DECL ( derivedT  ,
m_indiP_wfsFps   
)
protected

◆ loadConfig()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::loadConfig ( mx::app::appConfigurator &  config)

load the configuration system results

This should be called in derivedT::loadConfig as

int loadConfig(mx::app::appConfigurator &config)
load the configuration system results

with appropriate error checking.

Parameters
[in]configan application configuration from which to load values

Definition at line 466 of file dmPokeWFS.hpp.

◆ processImage() [1/2]

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::processImage ( void *  curr_src,
const darkShmimT dummy 
)
Parameters
[in]curr_srcpointer to the start of the current frame
[in]dummytag to differentiate shmimMonitor parents.

Definition at line 770 of file dmPokeWFS.hpp.

◆ processImage() [2/2]

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::processImage ( void *  curr_src,
const wfsShmimT dummy 
)
Parameters
[in]curr_srcpointer to the start of the current frame
[in]dummytag to differentiate shmimMonitor parents.

Definition at line 704 of file dmPokeWFS.hpp.

◆ recordPokeLoop()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::recordPokeLoop ( bool  force = false)
protected

Definition at line 1180 of file dmPokeWFS.hpp.

◆ recordTelem()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::recordTelem ( const telem_pokeloop *  )
protected

Definition at line 1174 of file dmPokeWFS.hpp.

◆ setupConfig()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::setupConfig ( mx::app::appConfigurator &  config)

Setup the configuration system.

This should be called in derivedT::setupConfig as

int setupConfig(mx::app::appConfigurator &config)
Setup the configuration system.

with appropriate error checking.

Parameters
[in]configan application configuration to load values to

Definition at line 434 of file dmPokeWFS.hpp.

◆ updateMeasurement()

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::updateMeasurement ( float  deltaX,
float  deltaY 
)
protected

Definition at line 1015 of file dmPokeWFS.hpp.

◆ wfsThreadExec()

template<class derivedT >
void MagAOX::app::dev::dmPokeWFS< derivedT >::wfsThreadExec ( )
protected

Execute the frame grabber main loop.

Definition at line 797 of file dmPokeWFS.hpp.

Referenced by MagAOX::app::dev::dmPokeWFS< derivedT >::wfsThreadStart().

◆ wfsThreadStart()

template<class derivedT >
void MagAOX::app::dev::dmPokeWFS< derivedT >::wfsThreadStart ( dmPokeWFS< derivedT > *  s)
staticprotected

Thread starter, called by wfsThreadStart on thread construction. Calls wfsThreadExec.

Parameters
[in]sa pointer to an streamWriter instance (normally this)

Definition at line 791 of file dmPokeWFS.hpp.

Member Data Documentation

◆ darkPixget

template<class derivedT >
float(* MagAOX::app::dev::dmPokeWFS< derivedT >::darkPixget) (void *, size_t)
inlineprotected

Definition at line 209 of file dmPokeWFS.hpp.

◆ m_continuous

template<class derivedT >
bool MagAOX::app::dev::dmPokeWFS< derivedT >::m_continuous {false}
protected

True if continuous measurements are in progress.

Definition at line 343 of file dmPokeWFS.hpp.

◆ m_counter

template<class derivedT >
uint64_t MagAOX::app::dev::dmPokeWFS< derivedT >::m_counter {0}
protected

Definition at line 217 of file dmPokeWFS.hpp.

◆ m_darkImage

template<class derivedT >
mx::improc::eigenImage<float> MagAOX::app::dev::dmPokeWFS< derivedT >::m_darkImage
protected

The dark image.

Definition at line 205 of file dmPokeWFS.hpp.

◆ m_darkValid

template<class derivedT >
bool MagAOX::app::dev::dmPokeWFS< derivedT >::m_darkValid {false}
protected

Flag indicating if dark is valid based on its size.

Definition at line 207 of file dmPokeWFS.hpp.

◆ m_deltaX

template<class derivedT >
float MagAOX::app::dev::dmPokeWFS< derivedT >::m_deltaX {0}
protected

Definition at line 215 of file dmPokeWFS.hpp.

◆ m_deltaY

template<class derivedT >
float MagAOX::app::dev::dmPokeWFS< derivedT >::m_deltaY {0}
protected

Definition at line 216 of file dmPokeWFS.hpp.

◆ m_dmChan

template<class derivedT >
std::string MagAOX::app::dev::dmPokeWFS< derivedT >::m_dmChan
protected

Definition at line 183 of file dmPokeWFS.hpp.

◆ m_dmImage

template<class derivedT >
mx::improc::eigenImage<float> MagAOX::app::dev::dmPokeWFS< derivedT >::m_dmImage
protected

Definition at line 213 of file dmPokeWFS.hpp.

◆ m_dmSleep

template<class derivedT >
float MagAOX::app::dev::dmPokeWFS< derivedT >::m_dmSleep {10000}
protected

The time to sleep for the DM command to be applied, in microseconds. Default is 10000.

Definition at line 190 of file dmPokeWFS.hpp.

◆ m_dmStream

template<class derivedT >
mx::improc::milkImage<float> MagAOX::app::dev::dmPokeWFS< derivedT >::m_dmStream
protected

Pointer to a function to extract the dark image data as float.

Definition at line 211 of file dmPokeWFS.hpp.

◆ m_imageSemaphore

template<class derivedT >
sem_t MagAOX::app::dev::dmPokeWFS< derivedT >::m_imageSemaphore
protected

Semaphore used to signal that an image is ready.

Definition at line 349 of file dmPokeWFS.hpp.

◆ m_imageSemWait

template<class derivedT >
double MagAOX::app::dev::dmPokeWFS< derivedT >::m_imageSemWait {0.5}
protected

The time in sec to wait on the image semaphore. Default 0.5 sec.

Definition at line 177 of file dmPokeWFS.hpp.

◆ m_imageSemWait_nsec

template<class derivedT >
unsigned MagAOX::app::dev::dmPokeWFS< derivedT >::m_imageSemWait_nsec {0}
protected

The timeout for the image semaphore, nanoseconds component.

Definition at line 353 of file dmPokeWFS.hpp.

◆ m_imageSemWait_sec

template<class derivedT >
unsigned MagAOX::app::dev::dmPokeWFS< derivedT >::m_imageSemWait_sec {1}
protected

The timeout for the image semaphore, seconds component.

Definition at line 351 of file dmPokeWFS.hpp.

◆ m_indiP_continuous

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_continuous
protected

Switch to start continuous measurement.

Definition at line 404 of file dmPokeWFS.hpp.

◆ m_indiP_measurement

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_measurement
protected

Property to report the delta measurement, including the loop counter.

Definition at line 410 of file dmPokeWFS.hpp.

◆ m_indiP_nPokeAverage

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_nPokeAverage
protected

Definition at line 395 of file dmPokeWFS.hpp.

◆ m_indiP_nPokeImages

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_nPokeImages
protected

Definition at line 392 of file dmPokeWFS.hpp.

◆ m_indiP_poke_amp

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_poke_amp
protected

Definition at line 389 of file dmPokeWFS.hpp.

◆ m_indiP_single

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_single
protected

Switch to start a single measurement.

Definition at line 401 of file dmPokeWFS.hpp.

◆ m_indiP_stop

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_stop
protected

Switch to request that measurement stop.

Definition at line 407 of file dmPokeWFS.hpp.

◆ m_indiP_wfsFps

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_indiP_wfsFps
protected

Property to get the FPS from the WFS camera.

Definition at line 398 of file dmPokeWFS.hpp.

◆ m_measuring

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::m_measuring {0}
protected

Status of measuring: 0 no, 1 single in progress, 2 continuous in progress.

Definition at line 339 of file dmPokeWFS.hpp.

◆ m_nPokeAverage

template<class derivedT >
unsigned MagAOX::app::dev::dmPokeWFS< derivedT >::m_nPokeAverage {10}
protected

The number of poke sequences to average. Default is 10.

Definition at line 181 of file dmPokeWFS.hpp.

◆ m_nPokeImages

template<class derivedT >
unsigned MagAOX::app::dev::dmPokeWFS< derivedT >::m_nPokeImages {5}
protected

The number of images to average for the poke images. Default is 5.

Definition at line 179 of file dmPokeWFS.hpp.

◆ m_poke_amp

template<class derivedT >
float MagAOX::app::dev::dmPokeWFS< derivedT >::m_poke_amp {0.0}
protected

Definition at line 188 of file dmPokeWFS.hpp.

◆ m_poke_x

template<class derivedT >
std::vector<int> MagAOX::app::dev::dmPokeWFS< derivedT >::m_poke_x
protected

Definition at line 185 of file dmPokeWFS.hpp.

◆ m_poke_y

template<class derivedT >
std::vector<int> MagAOX::app::dev::dmPokeWFS< derivedT >::m_poke_y
protected

Definition at line 186 of file dmPokeWFS.hpp.

◆ m_pokeImage

template<class derivedT >
mx::improc::milkImage<float> MagAOX::app::dev::dmPokeWFS< derivedT >::m_pokeImage
protected

Definition at line 198 of file dmPokeWFS.hpp.

◆ m_pokeLocal

template<class derivedT >
mx::improc::eigenImage<float> MagAOX::app::dev::dmPokeWFS< derivedT >::m_pokeLocal
protected

Definition at line 199 of file dmPokeWFS.hpp.

◆ m_rawImage

template<class derivedT >
mx::improc::milkImage<float> MagAOX::app::dev::dmPokeWFS< derivedT >::m_rawImage
protected

Definition at line 196 of file dmPokeWFS.hpp.

◆ m_single

template<class derivedT >
bool MagAOX::app::dev::dmPokeWFS< derivedT >::m_single {false}
protected

True a single measurement is in progress.

Definition at line 341 of file dmPokeWFS.hpp.

◆ m_stopMeasurement

template<class derivedT >
bool MagAOX::app::dev::dmPokeWFS< derivedT >::m_stopMeasurement {false}
protected

Used to request that the measurement in progress stop.

Definition at line 345 of file dmPokeWFS.hpp.

◆ m_wfsCamDevName

template<class derivedT >
std::string MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsCamDevName
protected

INDI device name of the WFS camera. Default is wfscam.shmimName.

Definition at line 173 of file dmPokeWFS.hpp.

◆ m_wfsCpuset

template<class derivedT >
std::string MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsCpuset
protected

The cpuset for the framegrabber thread. Ignored if empty (the default).

Definition at line 317 of file dmPokeWFS.hpp.

◆ m_wfsFps

template<class derivedT >
float MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsFps {-1}
protected

Pointer to a function to extract the image data as float.

The WFS camera FPS

Definition at line 203 of file dmPokeWFS.hpp.

◆ m_wfsImageMutex

template<class derivedT >
std::mutex MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsImageMutex
protected

Definition at line 194 of file dmPokeWFS.hpp.

◆ m_wfsSemaphore

template<class derivedT >
sem_t MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsSemaphore
protected

Semaphore used to signal the WFS thread to start WFSing.

Definition at line 333 of file dmPokeWFS.hpp.

◆ m_wfsSemWait

template<class derivedT >
double MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsSemWait {1.5}
protected

The time in sec to wait on the WFS semaphore. Default 0.5 sec.

Definition at line 175 of file dmPokeWFS.hpp.

◆ m_wfsSemWait_nsec

template<class derivedT >
unsigned MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsSemWait_nsec {0}
protected

The timeoutfor the WFS semaphore, nanoseconds component.

Definition at line 337 of file dmPokeWFS.hpp.

◆ m_wfsSemWait_sec

template<class derivedT >
unsigned MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsSemWait_sec {1}
protected

The timeout for the WFS semaphore, seconds component.

Definition at line 335 of file dmPokeWFS.hpp.

◆ m_wfsThread

template<class derivedT >
std::thread MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsThread
protected

A separate thread for the actual WFSing.

Definition at line 319 of file dmPokeWFS.hpp.

◆ m_wfsThreadID

template<class derivedT >
pid_t MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsThreadID {0}
protected

WFS thread PID.

Definition at line 323 of file dmPokeWFS.hpp.

◆ m_wfsThreadInit

template<class derivedT >
bool MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsThreadInit {true}
protected

Synchronizer to ensure wfs thread initializes before doing dangerous things.

Definition at line 321 of file dmPokeWFS.hpp.

◆ m_wfsThreadPrio

template<class derivedT >
int MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsThreadPrio {1}
protected

Priority of the WFS thread, should normally be > 00.

Definition at line 315 of file dmPokeWFS.hpp.

◆ m_wfsThreadProp

template<class derivedT >
pcf::IndiProperty MagAOX::app::dev::dmPokeWFS< derivedT >::m_wfsThreadProp
protected

The property to hold the WFS thread details.

Definition at line 325 of file dmPokeWFS.hpp.

◆ wfsPixget

template<class derivedT >
float(* MagAOX::app::dev::dmPokeWFS< derivedT >::wfsPixget) (void *, size_t)
inlineprotected

Definition at line 201 of file dmPokeWFS.hpp.


The documentation for this class was generated from the following file: