Class MotionInterface

Class Documentation

class MotionInterface

acam motion interface class

This class defines the interface to the PI controllers used for the filter wheel and dust cover.

Public Functions

inline MotionInterface()
inline std::string get_current_filtername() const
inline std::string get_current_coverpos() const
long initialize_class()
long open()

opens the PI socket connection

long close()

closes the PI socket connection

bool is_open()

are motor controllers connected?

long is_open(std::string arg, std::string &retstring)

are motor controllers connected?

long home(std::string name_in, std::string &help)

home specified motors

long is_home(std::string name_in, std::string &retstring)

return the home state of the specified motors

long move_abs(std::string name, float pos)
long send_command(const std::string &name, std::string cmd)

writes 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

long motion(std::string args, std::string &retstring)

basic motion test commands

long filter(std::string args, std::string &retstring)

set or get the filter

long get_current_filter(std::string &currname)

get current filter posname

long get_current_filter(std::string &currname, int &currid, float &currpos)

get current filter posname,id,pos

long cover(std::string posname, std::string &retstring)

set or get the dust cover

long read_cover(std::string &retstring)

Public Members

Physik_Instrumente::Interface<Physik_Instrumente::StepperInfo> motorinterface
Common::Queue async

asynchronous message queue object

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

std::mutex wait_mtx

mutex object for waiting for threads

std::condition_variable cv

condition variable for waiting for threads