Class Interface¶
Defined in File focus_interface.h
Nested Relationships¶
Nested Types¶
Class Documentation¶
-
class Interface¶
interface class for a focus device
This class defines the interface for each focus controller and contains the functions used to communicate with it.
Public Functions
-
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)¶
-
long initialize_class()¶
-
long open()¶
opens the PI socket connection
-
long close()¶
closes the PI socket connection
-
long is_open(std::string arg, std::string &retstring)¶
are motor controllers connected?
-
long home(std::string name_in, std::string &retstring)¶
home all daisy-chained motors
-
long is_home(std::string arg, std::string &retstring)¶
return the home state of the motors
-
long set(std::string args, std::string &retstring)¶
set focus motor position
-
long get(std::string name, std::string &retstring)¶
get focus motor position
-
long move_abs(int addr, float pos)¶
send move-absolute command to specified controller
-
long move_rel(std::string args)¶
send move-relative command to specified controller
-
long native(std::string args, std::string &retstring)¶
send native command to a PI controller
-
long stop()¶
send the stop-all-motion command to all controllers
-
long send_command(const std::string &name, std::string cmd)¶
writes the raw command as received to the master controller, no reply
-
long send_command(const std::string &name, std::string cmd, std::string &retstring)¶
writes command?, reads reply
-
void publish_status(bool force = false)¶
publish focus state on change (or force)
-
long test(std::string args, std::string &retstring)¶
Public Members
-
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
-
Physik_Instrumente::Interface<Physik_Instrumente::StepperInfo> motorinterface¶
-
std::mutex pi_mutex¶
mutex to protect multi-threaded access to PI controller
-
volatile std::atomic<int> motors_running¶
number of motors that are running in threads
-
volatile std::atomic<long> thr_error¶
error state of threads
-
inline Interface()¶