22 using TechnosoftIposBase::TechnosoftIposBase;
26 bool open(yarp::os::Searchable & config)
override;
27 bool close()
override;
35#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
36 return_t getAvailableControlModesRaw(
int j, std::vector<yarp::dev::SelectableControlModeEnum> & avail)
override;
37 return_t getControlModeRaw(
int j, yarp::dev::ControlModeEnum & mode)
override;
38 return_t setControlModeRaw(
int j, yarp::dev::SelectableControlModeEnum mode)
override;
40 return_t getControlModeRaw(
int j,
int * mode)
override;
41 return_t setControlModeRaw(
int j,
int mode)
override;
46 return_t positionMoveRaw(
int j,
double ref)
override;
47 return_t relativeMoveRaw(
int j,
double delta)
override;
48#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
49 return_t checkMotionDoneRaw(
int j,
bool & flag)
override;
50 return_t setTrajSpeedRaw(
int j,
double sp)
override;
51 return_t setTrajAccelerationRaw(
int j,
double acc)
override;
52 return_t getTrajSpeedRaw(
int j,
double * ref)
override;
53 return_t getTrajAccelerationRaw(
int j,
double * acc)
override;
55 return_t checkMotionDoneRaw(
int j,
bool * flag)
override;
56 return_t setRefSpeedRaw(
int j,
double sp)
override;
57 return_t setRefAccelerationRaw(
int j,
double acc)
override;
58 return_t getRefSpeedRaw(
int j,
double * ref)
override;
59 return_t getRefAccelerationRaw(
int j,
double * acc)
override;
61 return_t stopRaw(
int j)
override;
62 return_t getTargetPositionRaw(
int joint,
double * ref)
override;
66 return_t setPositionRaw(
int j,
double ref)
override;
67 return_t getRefPositionRaw(
int joint,
double * ref)
override;
71 return_t getRemoteVariableRaw(std::string key, yarp::os::Bottle & val)
override;
72 return_t setRemoteVariableRaw(std::string key,
const yarp::os::Bottle & val)
override;
73 return_t getRemoteVariablesListRaw(yarp::os::Bottle * listOfKeys)
override;
77 return_t velocityMoveRaw(
int j,
double sp)
override;
78#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
79 return_t getTargetVelocityRaw(
int joint,
double * vel)
override;
81 return_t getRefVelocityRaw(
int joint,
double * vel)
override;
85 void interpretModesOfOperation(std::int8_t modesOfOperation)
override;
86 void interpretIpStatus(std::uint16_t ipStatus)
override;
87 void onPositionLimitTriggered()
override;
88 void reset()
override;
94 std::bitset<16> ipStatus;
96 std::atomic<bool> ipMotionStarted {
false};
97 std::atomic<bool> ipBufferFilled {
false};
98 std::atomic<bool> ipBufferEnabled {
false};
100 std::atomic<bool> enableSync {
false};
101 std::atomic<bool> enableCsv {
false};
103 std::atomic<double> targetPosition {0.0};
104 std::atomic<double> targetVelocity {0.0};