15 uint8_t battery_mode_max_acceleration,
16 uint32_t external_circulo_type,
17 const std::function<
void()> &started_callback = {},
18 const std::function<void(uint8_t)> &progress_callback = {});
24 uint8_t encoder_ordinal_;
25 uint8_t battery_mode_max_acceleration_;
26 uint32_t external_circulo_type_;
28 CirculoType circulo_type_ = CirculoType::kUnspecified;
29 uint8_t singleturn_bits_ = 0;
31 const std::function<void()> &started_callback_;
32 const std::function<void(uint8_t)> &progress_callback_;
38 static inline std::unordered_map<int32_t, std::mutex> mutex_map_;
45 static inline const std::list<std::tuple<CirculoType, uint8_t, uint8_t>>
46 singleturn_address_value_list_ = {
48 {CirculoType::kUnspecified, 0x00, 0x00},
55 {CirculoType::kUnspecified, 0x05, 0x88},
58 {CirculoType::kUnspecified, 0x06, 0x00},
65 {CirculoType::kCirculo7, 0x0B, 0x02},
66 {CirculoType::kCirculo7Smm, 0x0B, 0x52},
67 {CirculoType::kCirculo9, 0x0B, 0x02},
68 {CirculoType::kCirculo9Smm, 0x0B, 0x52},
71 {CirculoType::kUnspecified, 0x0C, 0x6C},
74 {CirculoType::kUnspecified, 0x0D, 0xC0},
77 {CirculoType::kUnspecified, 0x0E, 0x04},
80 {CirculoType::kCirculo7, 0x0F, 0x05},
81 {CirculoType::kCirculo7Smm, 0x0F, 0x05},
82 {CirculoType::kCirculo9, 0x0F, 0x06},
83 {CirculoType::kCirculo9Smm, 0x0F, 0x06},
86 {CirculoType::kUnspecified, 0x10, 0x00},
89 {CirculoType::kCirculo7, 0x11, 0x05},
90 {CirculoType::kCirculo7Smm, 0x11, 0x05},
91 {CirculoType::kCirculo9, 0x11, 0x06},
92 {CirculoType::kCirculo9Smm, 0x11, 0x06},
95 {CirculoType::kUnspecified, 0x12, 0x00},
98 {CirculoType::kUnspecified, 0x13, 0xFF},
99 {CirculoType::kUnspecified, 0x14, 0x0F},
102 {CirculoType::kUnspecified, 0x15, 0x13},
105 {CirculoType::kUnspecified, 0x16, 0x10},
108 {CirculoType::kUnspecified, 0x17, 0x02},
111 {CirculoType::kUnspecified, 0x18, 0x00},
114 {CirculoType::kUnspecified, 0x75, 0x01}};
118 static inline const std::list<std::tuple<CirculoType, uint8_t, uint8_t>>
119 multiturn_address_value_stage_1_list_ = {
123 {CirculoType::kUnspecified, 0x00, 0x00},
130 {CirculoType::kUnspecified, 0x05, 0x88},
133 {CirculoType::kUnspecified, 0x06, 0x00},
140 {CirculoType::kCirculo7, 0x0B, 0x02},
141 {CirculoType::kCirculo7Smm, 0x0B, 0x52},
142 {CirculoType::kCirculo9, 0x0B, 0x02},
143 {CirculoType::kCirculo9Smm, 0x0B, 0x52},
146 {CirculoType::kUnspecified, 0x0C, 0x6C},
149 {CirculoType::kUnspecified, 0x0D, 0xC0},
152 {CirculoType::kUnspecified, 0x0E, 0x44},
155 {CirculoType::kCirculo7, 0x0F, 0x05},
156 {CirculoType::kCirculo7Smm, 0x0F, 0x05},
157 {CirculoType::kCirculo9, 0x0F, 0x06},
158 {CirculoType::kCirculo9Smm, 0x0F, 0x06},
161 {CirculoType::kUnspecified, 0x10, 0x6F},
164 {CirculoType::kCirculo7, 0x11, 0x17},
165 {CirculoType::kCirculo7Smm, 0x11, 0x17},
166 {CirculoType::kCirculo9, 0x11, 0x18},
167 {CirculoType::kCirculo9Smm, 0x11, 0x18},
170 {CirculoType::kUnspecified, 0x12, 0x00},
173 {CirculoType::kUnspecified, 0x13, 0xFF},
174 {CirculoType::kUnspecified, 0x14, 0x0F},
177 {CirculoType::kUnspecified, 0x15, 0x13},
180 {CirculoType::kUnspecified, 0x16, 0x10},
183 {CirculoType::kUnspecified, 0x17, 0x02},
186 {CirculoType::kUnspecified, 0x18, 0x00},
193 {CirculoType::kUnspecified, 0x5E, 0xA0},
201 {CirculoType::kUnspecified, 0x5C, 0x60},
212 {CirculoType::kUnspecified, 0x5B, 0x40},
219 {CirculoType::kUnspecified, 0x5D, 0x6C}};
224 static inline const std::list<
225 std::tuple<CirculoType, EncoderLocation, uint8_t, uint8_t>>
226 multiturn_address_value_stage_2_list_ = {
228 {CirculoType::kUnspecified, EncoderLocation::kUnspecified, 0x60,
232 {CirculoType::kUnspecified, EncoderLocation::kUnspecified, 0x61,
237 {CirculoType::kCirculo7, EncoderLocation::kUnspecified, 0x62, 0x1F},
238 {CirculoType::kCirculo7Smm, EncoderLocation::kUnspecified, 0x62,
240 {CirculoType::kCirculo9, EncoderLocation::kUnspecified, 0x62, 0x3F},
241 {CirculoType::kCirculo9Smm, EncoderLocation::kUnspecified, 0x62,
246 {CirculoType::kUnspecified, EncoderLocation::kMotorShaft, 0x63, 0x5D},
247 {CirculoType::kUnspecified, EncoderLocation::kDrivingShaft, 0x63,
251 {CirculoType::kUnspecified, EncoderLocation::kUnspecified, 0x64,
255 {CirculoType::kUnspecified, EncoderLocation::kUnspecified, 0x65, 0x30}
263 static inline const std::list<std::tuple<uint8_t, uint8_t>>
264 multiturn_address_value_stage_3_list_ = {
266 {0x67, 0x00}, {0x68, 0x00}, {0x69, 0x00}, {0x6A, 0x00}, {0x6B, 0x00},
274 static inline const std::list<std::tuple<uint8_t, uint8_t>>
275 multiturn_address_value_stage_4_list_ = {
315 static inline const std::list<std::tuple<uint8_t, uint8_t>>
316 multiturn_address_value_stage_5_list_ = {
360 static inline const std::list<std::tuple<uint8_t, uint8_t>>
361 multiturn_address_value_stage_6_list_ = {
438 static inline const std::list<std::tuple<uint8_t, uint8_t>>
439 multiturn_address_value_stage_7_list_ = {
485 void add_action_to_progress(uint32_t total_actions,
486 uint32_t actions_to_add = 1);
488 void sleep_with_progress(uint32_t milliseconds, uint32_t total_actions);
494 static uint8_t crc(
const std::vector<uint8_t> &data);
Definition: cia402_drive.h:48
Definition: circulo_encoder_configuration.h:11
MotionMasterError start()
Definition: circulo_encoder_configuration.cc:29
Definition: motion_master_error.h:6
uint8_t * value
Definition: co_dictionary.h:9
CirculoType
Definition: util.h:48
EncoderLocation
Definition: util.h:64