The VisAO Camera
VisAO::VisAOIClient Class Reference
+ Inheritance diagram for VisAO::VisAOIClient:

Public Member Functions

 VisAOIClient (int argc, char **argv) throw (AOException)
 VisAOIClient (std::string name, const std::string &conffile) throw (AOException)
virtual void dataLogger (timeval tv)
 Log data at intervals.
- Public Member Functions inherited from VisAO::VisAOApp_base
 VisAOApp_base ()
 Default constructor.
virtual ~VisAOApp_base ()
 Virtual destructor.
int set_euid_called ()
 Changes the user id of the process to euid_called.
int set_euid_real ()
 Changes the user id fo the process to the real user id.
int set_RT_priority (int prio)
 Set the real-time priority of the current process. More...
int get_RT_priority ()
 Get the real-time priority of the current process.
int set_app_name (std::string an)
 Set the application name.
virtual std::string get_app_name ()
 Get the application name.
virtual int setup_baseApp (bool usethreads=false)
 Install fifo channels. More...
virtual int setup_baseApp (bool remfifo, bool locfifo, bool scrfifo, bool autfifo, bool usethreads=false)
 Create fifo names, then installs the fifo channels. More...
int setup_fifo_list (int nfifos)
 Allocate the fifo_list. More...
int connect_fifo_list ()
 Connect the fifo_list with exclusive locking. More...
int connect_fifo_list_nolock ()
 Connect the fifo_list without exclusive locking. More...
int setup_sigio ()
 Setup the SIGIO signal handling. More...
int setup_RTsigio ()
 Setup SIGIO signal handling using realtime signals. More...
int check_fifo_list_RTpending ()
 Check for pending reads for the fifo list while using the RT signals.
int write_fifo_channel (int ch, const char *com, int comlen, std::string *resp)
 Write data to a fifo_channel, and get a response if desired. More...
int write_fifo_channel (int ch, const char *com, int comlen, std::string *resp, char *sm)
 Write data to a fifo_channel, with a sequence message attached, and get a response if desired. More...
int get_fifo_channel_response (std::string *resp, int ch)
 Check, and wait if neccessary, for data on a fifo channel. More...
int set_wait_to (double to)
 Set the wait timeout for fifo channel responses. More...
double get_wait_to ()
 Get the wait timeout for fifo channel responses. More...
virtual int request_control (int cmode)
 Calls request_control(cmode, 0).
virtual int request_control (int cmode, bool override)
 Attempts to change the control type. More...
virtual std::string __remote_command (std::string com, char *seqmsg)
 Processing for remote commands. More...
virtual std::string remote_command (std::string com)
 Called by __remote_command after control state logic. More...
virtual std::string remote_command (std::string com, char *seqmsg)
virtual std::string __local_command (std::string com, char *seqmsg)
 Processing for local commands. More...
virtual std::string local_command (std::string com)
 Called by __local_command after control state logic. More...
virtual std::string local_command (std::string com, char *seqmsg)
virtual std::string __script_command (std::string com, char *seqmsg)
 Processing for script commands - not normally overriden. More...
virtual std::string script_command (std::string com)
 Called by __script_command after control state logic. More...
virtual std::string script_command (std::string com, char *seqmsg)
virtual std::string auto_command (std::string com, char *seqmsg)
 Processing for auto commands - to be overriden. More...
virtual std::string post_auto_command (std::string com, char *seqmsg=0)
 Processing for auto commands - not normally overriden. More...
std::string control_mode_string ()
 Convenience function to return the control type string, e.g. "REMOTE".
std::string control_mode_response ()
 Convenience function to return the control type response string, e.g. "A\n".
virtual void error_report (int LogLevel, std::string emsg)
 Report an error. Also calls log_msg. More...
virtual void log_msg (int LogLevel, std::string lmsg)
 Log a message. More...
VisAO::profilerget_profile ()
int get_use_profiler ()
int start_profiler ()
void * get_statusboard_shmemptr ()
 Get the status board shared memory pointer. More...
int set_statusboard_shmemkey (key_t mkey)
 Set the status board shared memory key. Does nothing else. More...
key_t get_statusboard_shmemkey ()
 Get the status board shared memory key. More...

Protected Member Functions

void Create (void) throw (AOException)
int LoadConfig ()
 Load the configuration details from the file.
virtual void SetupVars ()
virtual void Run ()
virtual void post_update_DD_var (DD_RTDBVar &var)
void update_loopon ()
void init_statusboard ()
int update_statusboard ()
 Update the status board. More...
void dump_statusboard ()
void update_recon ()
- Protected Member Functions inherited from VisAO::VisAOApp_base
int create_statusboard (size_t sz)
 Creates and attaches to the statusboard shared memory. More...
std::string getDataFileName ()
int checkDataFileOpen ()

Protected Attributes

std::string fifo_path
 The path to the fifos, relative to VISAO_ROOT.
RTDBvar var_avgwfe
RTDBvar var_stdwfe
RTDBvar var_instwfe
int orient_useel
int orient_usepa
- Protected Attributes inherited from VisAO::VisAOApp_base
std::string app_name
 The name of the application.
double pause_time
 Time to pause during application main loop.
fifo_list fl
 The list of named-pipe fifos used for inter-process comms.
std::string com_path
 The control fifo path base name.
std::string com_path_remote
 The path for the remote control fifos.
std::string com_path_local
 The path for the local control fifos.
std::string com_path_script
 The path for the script control fifos.
std::string com_path_auto
 The path for the auto control fifos.
double wait_to
 The timeout for waiting on responses from FIFOs in seconds.
std::ostringstream logss
 Conveninence string stream for building log messages.
std::string profile_path
int use_profiler
void * statusboard_shmemptr
 The pointer to the shared memory block for the statusboard.
key_t statusboard_shmemkey
 The key used to lookup the shared memory.
int statusboard_shmemid
 The ID of the shared memory block.
std::ofstream dataof
bool dataFileOpen
double dataFileOpenTime
double data_log_time_length
std::string data_save_path
std::string data_file_prefix

Wollaston Remote Control

VisAOIClient is the interface for "control" of the Wollaston from the supervisor.

std::string wollaston_process
RTDBvar wollaston_status
RTDBvar wollaston_cmode_cur
RTDBvar wollaston_cmode_req
RTDBvar wollaston_state_cur
RTDBvar wollaston_state_req
int send_wollaston_command (std::string com)
int update_wollaston ()
static int WollStateReqChanged (void *pt, Variable *msgb)
static int WollCModeReqChanged (void *pt, Variable *msgb)

Focus Remote Control

VisAOIClient is the interface for "control" of the Focus Stage from the supervisor.

std::string focus_process
RTDBvar focus_cmode_cur
RTDBvar focus_cmode_req
RTDBvar focus_pos_cur
RTDBvar focus_pos_req
RTDBvar focus_abort_req
RTDBvar focus_preset_req
RTDBvar focus_status
RTDBvar focus_limsw_cur
int send_focus_command (std::string com)
int update_focus ()
static int FocusPosReqChanged (void *pt, Variable *msgb)
static int FocusAbortReqChanged (void *pt, Variable *msgb)
static int FocusCModeReqChanged (void *pt, Variable *msgb)
static int FocusPresetReqChanged (void *pt, Variable *msgb)

Gimbal Remote Control

VisAOIClient is the interface for control of the Gimbal from the supervisor.

std::string gimbal_process
RTDBvar gimbal_status
RTDBvar gimbal_xpos_cur
RTDBvar gimbal_ypos_cur
RTDBvar gimbal_cmode_cur
RTDBvar gimbal_cmode_req
RTDBvar gimbal_center_req
RTDBvar gimbal_dark_req
int send_gimbal_command (std::string com)
int update_gimbal ()
static int GimbalCModeReqChanged (void *pt, Variable *msgb)
static int GimbalCenterReqChanged (void *pt, Variable *msgb)
static int GimbalDarkReqChanged (void *pt, Variable *msgb)

Master Remote Control

VisAOIClient provides a master control over VisAO for supervisor

RTDBvar var_masterremote_req
RTDBvar ccd47_cmode_req
RTDBvar shutter_cmode_req
RTDBvar fw2_cmode_req
RTDBvar fw3_cmode_req
int setMasterRemote (int cmode)
 Change control of Gimbal, Focus, F/W2, F/W3, CCD47.
static int MasterRemoteReqChanged (void *pt, Variable *msgb)
 When notified, VisAOIClient changes the control mode of the entire VisAO Camera.

Additional Inherited Members

- Public Types inherited from VisAO::VisAOApp_base
enum  control_modes {
 The control modes.
- Public Attributes inherited from VisAO::VisAOApp_base
pthread_mutex_t my_mutex
 Mutex used by the threaded versions of the standard command handlers.
- Static Protected Attributes inherited from VisAO::VisAOApp_base
static int control_mode = VisAOApp_base::CMODE_NONE
 The current control mode. More...
static int default_control_mode = -1
 The default control mode. More...

Detailed Description

Definition at line 18 of file VisAOIClient.h.

Member Function Documentation

int VisAO::VisAOIClient::update_statusboard ( )

Overridden versions should call this as VisAOApp_bas::update_statusboard so the basics are taken care of.

Return values
0on success
-1on failure

Reimplemented from VisAO::VisAOApp_base.

Definition at line 962 of file VisAOIClient.cpp.

References VisAO::VisAOApp_base::statusboard_shmemptr, and VisAO::VisAOApp_base::update_statusboard().

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