35 namespace canopen_schunk {
217 : profile_deceleration(0),
218 motion_profile_type(0),
219 change_set_immediately(false),
220 use_relative_targets(false),
236 : homing_method(0), homing_speed_low(0), homing_speed_high(0) {}
239 : homing_method( method_ ), homing_speed_low(speed_low_), homing_speed_high(speed_high) {}
252 POSITION_ENCODER = 0,
266 : torque_slope(0), torque_profile_type(0) {}
282 return "NOT READY TO SWITCH ON";
287 return "SWITCH ON DISABLED";
292 return "READY TO SWITCH ON";
297 return "SWITCHED ON";
302 return "OPERATION ENABLED";
307 return "QUICK STOP ACTIVE";
312 return "FAULT REACTION ACTIVE";
325 return "Unknown status code. This should not happen!";
334 return "HOMING_MODE";
338 return "MOO_INTERPOLATED_POSITION_MODE";
342 return "MOO_PROFILE_POSITION_MODE";
346 return "MOO_PROFILE_TORQUE_MODE";
350 return "MOO_VELOCITY_MODE";
354 return "MOO_PROFILE_VELOCITY_MODE";
358 return "MOO_CYCLIC_SYNC_POSITION_MODE";
362 return "MOO_CYCLIC_SYNC_VELOCITY_MODE";
366 return "MOO_CYCLIC_SYNC_TORQUE_MODE";
370 return "UNKNOWN_MODE_OF_OPERATION";
378 if ( (lsb | 0b10110000) == 0b10110000)
382 else if ( (lsb | 0b10110000) == 0b11110000)
386 else if ( (lsb | 0b10010000) == 0b10110001)
390 else if ( (lsb | 0b10010000) == 0b10110011)
394 else if ( (lsb | 0b10010000) == 0b10110111)
398 else if ( (lsb | 0b10010000) == 0b10010111)
402 else if ( (lsb | 0b10110000) == 0b10111111)
406 else if ( (lsb | 0b10110000) == 0b10111000)
412 LOGGING_ERROR (CanOpen,
"Failed to get DS402 state from statusword! Something is probably wrong with the statusword. Returning STATE_FAULT" <<
endl);
uint32_t homing_speed_low
Configuration parameters for a Profile_Position_Mode according to CiA DSP-402 V1.1 section 12...
uint16_t manufacturer_specific_3
uint16_t manufacturer_specific_1
data union for access to DSP 402 6041 statusword,
uint16_t operation_mode_specific_0
bit field for DSP 402 6041 statusword,
Configuration parameters for a Profile_Velocity_Mode according to CiA DSP-402 V1.1 section 16...
eState stateFromStatusword(const ds402::Statusword &statusword)
std::string deviceStatusString(const eState state)
Turns a status word into a status string according to the elmo DS-402 implementation guide chapter 6...
ProfilePositionModeConfiguration()
bool use_blending
If set to true, the device will blend over to a new setpoint. Defaults to true.
int16_t motion_profile_type
Type of ramp used for accelerating and decelerating. Defaults to linear.
bit field for DSP 402 6040 controlword,
#define LOGGING_ERROR(streamname, arg)
static const uint16_t ID_CONTROL_WORD
bool use_relative_targets
This parameter influences the interpretation of new set points. If set to true, new set point positio...
uint16_t manufacturer_specific_0
float profile_acceleration
This will be used for both acceleration ramps.
ThreadStream & endl(ThreadStream &stream)
static const uint16_t ID_STATUS_WORD
int16_t torque_profile_type
std::string operationModeString(const eModeOfOperation mode)
ProfileTorqueModeConfiguration()
uint16_t operation_mode_specific_1
def warning(args, kwargs)
uint16_t manufacturer_specific_2
Configuration parameters for a Profile_Torque_Mode according to CiA DSP-402 V1.1 section 17...
float profile_velocity
Final velocity.
uint32_t homing_speed_high
eState
DS402 states as described in Figure 6.3 in ELMO DS402 implementation guide V1.000.
bool change_set_immediately
If this is set to true the device will not ramp down at a setpoint if a following one is given...
data union for access to DSP 402 6040 controlword,
uint16_t operation_mode_specific_2
HomingModeConfiguration(int8_t method_, uint32_t speed_low_, uint32_t speed_high)
HomingModeConfiguration()
data union for access to DSP 402 6041 statusword,
uint16_t manufacturer_specific_4
float profile_deceleration
This will be used for both acceleration ramps.
uint16_t enable_operation
int16_t sensor_selection_code
Configuration parameters for a Homing_Mode according to CiA DSP-402 V1.1 section 13.2.1.