42 uint32_t timeout_in_ms = 1000,
bool auto_abort =
false,
44 const std::function<
void()>& started_callback = {},
45 const std::function<void(uint8_t)>& progress_callback = {});
58 Cia402Drive& cia402_drive, uint32_t timeout_in_ms = 1000,
59 bool auto_abort =
false,
bool wait =
true,
60 const std::function<
void()>& started_callback = {},
61 const std::function<void(uint8_t)>& progress_callback = {});
82 uint8_t command_byte_1 = 0, uint8_t command_byte_2 = 0,
83 uint8_t command_byte_3 = 0, uint8_t command_byte_4 = 0,
84 uint8_t command_byte_5 = 0, uint8_t command_byte_6 = 0,
85 uint8_t command_byte_7 = 0, uint32_t timeout_in_ms = 1000,
86 bool auto_abort =
false,
bool wait =
true,
87 const std::function<
void()>& started_callback = {},
88 const std::function<void(uint8_t)>& progress_callback = {});
95 MotionMasterError
run();
124 uint8_t command_byte_2 = 0, uint8_t command_byte_3 = 0,
125 uint8_t command_byte_4 = 0, uint8_t command_byte_5 = 0,
126 uint8_t command_byte_6 = 0, uint8_t command_byte_7 = 0);
198 enum class Status : uint8_t {
199 kCompletedNoErrorNoReply = 0,
200 kCompletedNoErrorWithReply = 1,
201 kCompletedWithErrorNoReply = 2,
202 kCompletedWithErrorWithReply = 3,
204 kInProgress100 = 200,
208 enum class GeneralError {
216 enum class HrdStreamingError : uint8_t {
224 enum class OpenPhaseDetectionError : uint8_t {
236 enum class PolePairDetectionError : uint8_t { kCurrentAmplitude = 0 };
238 enum class PhaseResistanceMeasurementError : uint8_t {
239 kCurrentAmplitude = 0
242 enum class PhaseInductanceMeasurementError : uint8_t {
243 kCurrentAmplitude = 0
246 const std::map<Command, std::map<uint8_t, MotionMasterError::Error>>
247 command_error_map_ = {
250 MotionMasterError::Error::kHrdStreamInitFailed},
252 MotionMasterError::Error::kHrdStreamStreamingFailed},
254 MotionMasterError::Error::kHrdStreamDurationValue},
256 MotionMasterError::Error::kHrdStreamDataIndexValue},
258 MotionMasterError::Error::kHrdStreamActionValue}}},
260 {{
to_integral(OpenPhaseDetectionError::kOpenTerminalA),
261 MotionMasterError::Error::kOpenPhaseDetectionOpenTerminalA},
262 {
to_integral(OpenPhaseDetectionError::kOpenTerminalB),
263 MotionMasterError::Error::kOpenPhaseDetectionOpenTerminalB},
264 {
to_integral(OpenPhaseDetectionError::kOpenTerminalC),
265 MotionMasterError::Error::kOpenPhaseDetectionOpenTerminalC},
266 {
to_integral(OpenPhaseDetectionError::kOpenFetAHigh),
267 MotionMasterError::Error::kOpenPhaseDetectionOpenFetAHigh},
268 {
to_integral(OpenPhaseDetectionError::kOpenFetALow),
269 MotionMasterError::Error::kOpenPhaseDetectionOpenFetALow},
270 {
to_integral(OpenPhaseDetectionError::kOpenFetBHigh),
271 MotionMasterError::Error::kOpenPhaseDetectionOpenFetBHigh},
272 {
to_integral(OpenPhaseDetectionError::kOpenFetBLow),
273 MotionMasterError::Error::kOpenPhaseDetectionOpenFetBLow},
274 {
to_integral(OpenPhaseDetectionError::kOpenFetCHigh),
275 MotionMasterError::Error::kOpenPhaseDetectionOpenFetCHigh},
276 {
to_integral(OpenPhaseDetectionError::kOpenFetCLow),
277 MotionMasterError::Error::kOpenPhaseDetectionOpenFetCLow}}},
279 {{
to_integral(PolePairDetectionError::kCurrentAmplitude),
280 MotionMasterError::Error::kPolePairDetectionCurrentAmplitude}}},
282 {{
to_integral(PhaseResistanceMeasurementError::kCurrentAmplitude),
283 MotionMasterError::Error::
284 kPhaseResistanceMeasurementCurrentAmplitude}}},
286 {{
to_integral(PhaseInductanceMeasurementError::kCurrentAmplitude),
287 MotionMasterError::Error::
288 kPhaseInductanceMeasurementCurrentAmplitude}}}};
290 Cia402Drive& cia402_drive_;
293 static inline std::unordered_map<int32_t, std::mutex>
294 cia402_drive_id_to_mutex_map_;
296 std::string command_;
297 std::string response_;
300 uint32_t timeout_in_ms_;
304 const std::function<void()>& started_callback_;
305 const std::function<void(uint8_t)>& progress_callback_;