Class Motion#

Class Documentation#

class Motion#

motion interface class for the calib hardware

This class defines the interface for all of the calib hardware and contains the functions used to communicate with it.

Public Functions

Motion()#
inline ~Motion()#
long configure_class()#
long open()#

opens the PI socket connection

long close()#

closes the PI socket connection

long is_open(std::string arg, std::string &retstring)#
long home(std::string arg, std::string &help)#

home all daisy-chained motors

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

return the home state of the motors

long get(std::string name_in, std::string &retstring)#

get state of named actuator(s)

long set(std::string input, std::string &retstring)#

set state(s) of named actuator(s)

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

Public Members

std::string name#
std::string host#
int port#
Physik_Instrumente::Interface<Physik_Instrumente::ServoInfo> 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

std::mutex wait_mtx#

mutex object for waiting for threads

std::condition_variable cv#

condition variable for waiting for threads

Public Static Functions

static void dothread_home(Calib::Motion &motion, std::string name)#