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)