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 = {});
94 MotionMasterError
run();
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}}}};
289 Cia402Drive& cia402_drive_;
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_;