Class Interface¶
Defined in File tcs_interface.h
Class Documentation¶
-
class Interface¶
interface class for a tcs device
This is the upper-level interface. The TcsIO class provides the lover-level socket I/O.
This class defines the main interface for each tcs controller and contains the functions used to communicate with it.
Public Functions
-
inline void set_default_tcs(const std::string &which)¶
-
inline Interface()¶
-
inline long init_pubsub(const std::initializer_list<std::string> &topics = {})¶
-
inline void start_subscriber_thread()¶
-
inline void stop_subscriber_thread()¶
-
void handletopic_snapshot(const nlohmann::json &jmessage)¶
-
void publish_snapshot()¶
-
void publish_snapshot(std::string &retstring)¶
-
void do_continuous_snapshot()¶
-
long list(const std::string &arg, std::string &retstring)¶
These are the functions for communicating with the TCS
-
long llist(const std::string &arg, std::string &retstring)¶
-
long open(std::string arg, std::string &retstring)¶
-
long open()¶
-
bool isopen()¶
-
long isopen(std::string &retstring)¶
-
long isopen(const std::string &arg, std::string &retstring)¶
-
long close()¶
-
long publish_state(const std::string &arg, std::string &retstring)¶
-
long get_name(const std::string &arg, std::string &retstring)¶
-
long get_weather_coords(const std::string &arg, std::string &retstring)¶
-
long get_coords(const std::string &arg, std::string &retstring)¶
-
long get_cass(const std::string &arg, std::string &retstring)¶
-
long get_dome(const std::string &arg, std::string &retstring)¶
-
long set_focus(const std::string &arg, std::string &retstring)¶
-
long get_focus(std::string &retstring)¶
-
long get_focus(const std::string &arg, std::string &retstring)¶
-
long get_offsets(const std::string &arg, std::string &retstring)¶
-
long get_offsets(double &raoff, double &decoff)¶
-
long get_pa(const std::string &arg, std::string &retstring)¶
-
long pt_offsetrate(const std::string &arg, std::string &retstring)¶
-
long get_motion(const std::string &arg, std::string &retstring)¶
-
long ringgo(const std::string &arg, std::string &retstring)¶
-
long coords(std::string args, std::string &retstring)¶
-
long pt_offset(std::string args, std::string &retstring)¶
-
long zero_offsets(const std::string args, std::string &retstring)¶
-
long ret_offsets(std::string args, std::string &retstring)¶
-
long send_command(std::string cmd, std::string &retstring, TCS::ConnectionType conn_type)¶
-
long send_command(std::string cmd, std::string &retstring, TCS::ConnectionType conn_type, int to)¶
-
long native(std::string args, std::string &retstring)¶
-
long parse_reply_code(std::string codein, std::string &retstring)¶
-
long parse_motion_code(std::string codein, std::string &retstring)¶
-
long get_tcs_info()¶
fills the tcs_info class
Public Members
-
int offsetrate¶
offset rate (arcsec/hr)
-
std::string name¶
the name of the currently open tcs device
-
std::map<std::string, std::shared_ptr<TCS::TcsIO>> tcsmap¶
STL map of TcsIO objects indexed by name.
-
std::mutex publish_mutex¶
-
std::mutex collect_mutex¶
-
std::mutex query_mtx¶
-
std::condition_variable publish_condition¶
-
std::condition_variable collect_condition¶
-
std::atomic<bool> should_publish¶
-
std::atomic<bool> collect_enable¶
-
std::string publisher_address¶
publish socket endpoint
-
std::string publisher_topic¶
my default topic for publishing
-
std::string subscriber_address¶
subscribe socket endpoint
-
std::vector<std::string> subscriber_topics¶
list of topics I subscribe to
-
std::atomic<bool> is_subscriber_thread_running¶
is my subscriber thread running?
-
std::atomic<bool> should_subscriber_thread_run¶
should my subscriber thread run?
-
std::unordered_map<std::string, std::function<void(const nlohmann::json&)>> topic_handlers¶
maps a handler function to each topic
-
Common::Broadcaster broadcast = {this->publisher, Daemon::TCSD}¶
-
inline void set_default_tcs(const std::string &which)¶