41 uint32_t timeout_in_ms = 1000,
bool auto_abort =
false,
43 const std::function<
void()>& started_callback = {},
44 const std::function<void(uint8_t)>& progress_callback = {});
57 Cia402Drive& cia402_drive, uint32_t timeout_in_ms = 1000,
58 bool auto_abort =
false,
bool wait =
true,
59 const std::function<
void()>& started_callback = {},
60 const std::function<void(uint8_t)>& progress_callback = {});
81 uint8_t command_byte_1 = 0, uint8_t command_byte_2 = 0,
82 uint8_t command_byte_3 = 0, uint8_t command_byte_4 = 0,
83 uint8_t command_byte_5 = 0, uint8_t command_byte_6 = 0,
84 uint8_t command_byte_7 = 0, uint32_t timeout_in_ms = 1000,
85 bool auto_abort =
false,
bool wait =
true,
86 const std::function<
void()>& started_callback = {},
87 const std::function<void(uint8_t)>& progress_callback = {});
123 uint8_t command_byte_2 = 0, uint8_t command_byte_3 = 0,
124 uint8_t command_byte_4 = 0, uint8_t command_byte_5 = 0,
125 uint8_t command_byte_6 = 0, uint8_t command_byte_7 = 0);
197 enum class Status : uint8_t {
198 kCompletedNoErrorNoReply = 0,
199 kCompletedNoErrorWithReply = 1,
200 kCompletedWithErrorNoReply = 2,
201 kCompletedWithErrorWithReply = 3,
203 kInProgress100 = 200,
207 enum class GeneralError {
215 enum class HrdStreamingError : uint8_t {
223 enum class OpenPhaseDetectionError : uint8_t {
235 enum class PolePairDetectionError : uint8_t { kCurrentAmplitude = 0 };
237 enum class PhaseResistanceMeasurementError : uint8_t {
238 kCurrentAmplitude = 0
241 enum class PhaseInductanceMeasurementError : uint8_t {
242 kCurrentAmplitude = 0
245 const std::map<Command, std::map<uint8_t, MotionMasterError::Error>>
246 command_error_map_ = {
249 MotionMasterError::Error::kHrdStreamInitFailed},
251 MotionMasterError::Error::kHrdStreamStreamingFailed},
253 MotionMasterError::Error::kHrdStreamDurationValue},
255 MotionMasterError::Error::kHrdStreamDataIndexValue},
257 MotionMasterError::Error::kHrdStreamActionValue}}},
259 {{
to_integral(OpenPhaseDetectionError::kOpenTerminalA),
260 MotionMasterError::Error::kOpenPhaseDetectionOpenTerminalA},
261 {
to_integral(OpenPhaseDetectionError::kOpenTerminalB),
262 MotionMasterError::Error::kOpenPhaseDetectionOpenTerminalB},
263 {
to_integral(OpenPhaseDetectionError::kOpenTerminalC),
264 MotionMasterError::Error::kOpenPhaseDetectionOpenTerminalC},
265 {
to_integral(OpenPhaseDetectionError::kOpenFetAHigh),
266 MotionMasterError::Error::kOpenPhaseDetectionOpenFetAHigh},
267 {
to_integral(OpenPhaseDetectionError::kOpenFetALow),
268 MotionMasterError::Error::kOpenPhaseDetectionOpenFetALow},
269 {
to_integral(OpenPhaseDetectionError::kOpenFetBHigh),
270 MotionMasterError::Error::kOpenPhaseDetectionOpenFetBHigh},
271 {
to_integral(OpenPhaseDetectionError::kOpenFetBLow),
272 MotionMasterError::Error::kOpenPhaseDetectionOpenFetBLow},
273 {
to_integral(OpenPhaseDetectionError::kOpenFetCHigh),
274 MotionMasterError::Error::kOpenPhaseDetectionOpenFetCHigh},
275 {
to_integral(OpenPhaseDetectionError::kOpenFetCLow),
276 MotionMasterError::Error::kOpenPhaseDetectionOpenFetCLow}}},
278 {{
to_integral(PolePairDetectionError::kCurrentAmplitude),
279 MotionMasterError::Error::kPolePairDetectionCurrentAmplitude}}},
281 {{
to_integral(PhaseResistanceMeasurementError::kCurrentAmplitude),
282 MotionMasterError::Error::
283 kPhaseResistanceMeasurementCurrentAmplitude}}},
285 {{
to_integral(PhaseInductanceMeasurementError::kCurrentAmplitude),
286 MotionMasterError::Error::
287 kPhaseInductanceMeasurementCurrentAmplitude}}}};
292 static inline std::unordered_map<int32_t, std::mutex>
293 cia402_drive_id_to_mutex_map_;
295 std::string command_;
296 std::string response_;
299 uint32_t timeout_in_ms_;
303 const std::function<void()>& started_callback_;
304 const std::function<void(uint8_t)>& progress_callback_;
Definition: cia402_drive.h:48
Definition: motion_master_error.h:6
Definition: os_command.h:10
uint8_t * response_data()
Returns a pointer to the complete response data.
Definition: os_command.cc:373
void set_command_uint32_value(uint32_t value)
Set the data payload of the OS command as an unsigned 32-bit value.
Definition: os_command.cc:358
uint32_t get_uint32_response_data()
Get the unsigned 32-bit response payload if possible.
Definition: os_command.cc:439
Command
Definition: os_command.h:12
@ kTorqueConstantMeasurement
@ kMotorPhaseOrderDetection
@ kCommutationOffsetMeasurement
@ kPhaseResistanceMeasurement
@ kPhaseInductanceMeasurement
@ kEncoderRegisterCommunication
void set_command(const std::string &command)
Set the OS command as a string (of bytes)
Definition: os_command.cc:336
uint8_t get_error_code()
Get the OS command response error code.
Definition: os_command.cc:473
MotionMasterError run()
Run the previously initialized OS command.
Definition: os_command.cc:66
void set_wait(bool wait)
Set the wait flag.
Definition: os_command.cc:371
void set_timeout(uint32_t timeout_in_ms)
Set a timeout in milliseconds.
Definition: os_command.cc:365
uint16_t get_uint16_response_data()
Get the unsigned 16-bit response payload if possible.
Definition: os_command.cc:407
void set_auto_abort(bool auto_abort)
Set the auto abort flag.
Definition: os_command.cc:369
uint8_t get_uint8_response_data()
Get the unsigned 8-bit response payload if possible.
Definition: os_command.cc:375
uint8_t * value
Definition: co_dictionary.h:9
auto to_integral(T e)
Return an integral type value of an enum class.
Definition: util.h:992