Class Interface::Controller¶
Defined in File astrocam.h
Nested Relationships¶
This class is a nested type of Class Interface.
Class Documentation¶
-
class Controller
contains information for each controller
The Controller class is a sub-class of Interface and is here to contain the Camera::Information class and FITS_file class objects. There will be a vector of Controller class objects which matches the vector of controller objects.
Public Types
-
enum Axis
Values:
-
enumerator ROW
-
enumerator COL
-
enumerator ROW
Public Functions
-
inline Controller()
-
inline ~Controller()
-
void logical_to_physical(int spat, int spec, int &rows, int &cols) const
-
void physical_to_logical(int rows, int cols, int &spat, int &spec) const
-
inline int spat_physical_axis() const
-
inline int spec_physical_axis() const
-
inline bool has_boi() const
-
inline uint32_t get_bufsize()
-
inline uint32_t set_bufsize(uint32_t sz)
-
long alloc_workbuf()
-
inline void init_framecount()
-
inline int get_framecount()
-
inline void increment_framecount()
-
template<class T>
void *alloc_workbuf(T *buf)
-
template<class T>
void free_workbuf(T *buf)
-
long write()
wrapper for this->pFits->write_image()
-
long open_file(std::string writekeys)
wrapper for this->pFits->open_file()
-
void close_file(std::string writekeys)
wrapper for this->pFits->close_file()
Public Members
-
Camera::Information info
no deconstructor
camera info object for this controller
-
void *workbuf
pointer to workspace for performing deinterlacing
-
std::vector<Camera::Information> expinfo
vector of Camera::Information class, one for each exposure buffer
This contains the camera information for each exposure buffer. Note that since Camera::Information contains extkeys and prikeys objects, expinfo will contain those objects, but prikeys should not be used. Use only Controller::expinfo.extkeys because keys specific to a given controller will be added to that controller’s extension.
-
std::mutex pcimtx
mutex protects talking to this PCI driver
-
int error
-
int cols
total number of columns read (includes overscan)
-
int rows
total number of rows read (includes overscan)
-
Axis spec_axis
which physical axis {ROW,COL} is spectral
-
Axis spat_axis
which physical axis {ROW,COL} is spatial
-
int detcols
number of detector columns (unchanged by binning)
-
int detrows
number of detector rows (unchanged by binning)
-
int oscols0
requested number of overscan rows
-
int osrows0
requested number of overscan columns
-
int oscols
realized number of overscan rows (can be modified by binning)
-
int osrows
realized number of overscan columns (can be modified by binning)
-
int skiprows
-
int skipcols
-
int defcols
default number of detector columns
-
int defrows
default number of detector rows
-
int defoscols
default number of overscan rows
-
int defosrows
default number of overscan columns
-
int defbincols
default number of overscan rows
-
int defbinrows
default number of overscan columns
-
std::string imsize_args
IMAGE_SIZE arguments read from config file, used to restore default.
-
arc::gen3::CArcDevice *pArcDev
arc::CController object pointer — things pointed to by this are in the ARC API
-
bool connected
true if controller connected (requires successful TDL command)
-
bool configured
set false to skip future use of controllers when unable to connect
-
bool active
used to disable an otherwise-configured controller
-
bool is_imsize_set
has image_size been called after controller connected?
-
bool firmwareloaded
true if firmware is loaded, false otherwise
-
std::string firmware
name of firmware (.lod) file
-
std::string channel
name of spectrographic channel
-
std::string ccd_id
CCD identifier (E.G. serial number, name, etc.)
-
int devnum
this controller’s devnum
-
std::string devname
comes from arc::gen3::CArcPCI::getDeviceStringList()
-
std::uint32_t retval
convenient place to hold return values for threaded commands to this controller
-
std::map<int, frameinfo_t> frameinfo
STL map of frameinfo structure (see above)
-
uint32_t readout_arg
-
bool have_ft
Do I have (and am I using) frame transfer?
-
std::atomic<bool> in_readout
Is the controller currently reading out/transmitting pixels?
-
std::atomic<bool> in_frametransfer
Is the controller currently performing a frame transfer?
-
std::vector<std::string> activate_commands
Public Static Functions
-
template<class T>
static void dothread_deinterlace(DeInterlace<T> &deinterlace, int cols, int rows, int section, int nthreads)
-
enum Axis