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 lamp(std::string args, std::string &retstring)#
-
long set_lamp(const std::string &which, int state)#
-
long get_lamp(const std::string &which, 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)#