|
|
@ -90,18 +90,20 @@ void motor_drive_set_packages_ctr(double position) { |
|
|
|
uint8_t strbuffer[20] = {0}; |
|
|
|
|
|
|
|
position_int = position * 100; |
|
|
|
ESP_LOGI(MOTOR_DRIVE, "%d", position_int); |
|
|
|
|
|
|
|
if (position_int != 0) { |
|
|
|
while ((position_int / 256) > 0) { |
|
|
|
position_remainder = position_int % 256; |
|
|
|
while ((position_int / 0XFF) > 0) { |
|
|
|
position_remainder = position_int & 0XFF; |
|
|
|
ESP_LOGI(MOTOR_DRIVE, "position_remainder :%d", position_remainder); |
|
|
|
buffer[position_buffer_size] = position_remainder; |
|
|
|
position_buffer_size += 1; |
|
|
|
position_int = position_int / 256; |
|
|
|
position_int = position_int >> 8; |
|
|
|
checksum += position_remainder; |
|
|
|
} |
|
|
|
buffer[position_buffer_size] = position_int; |
|
|
|
checksum += position_int; |
|
|
|
checksum %= 256; |
|
|
|
checksum = checksum & 0XFF; |
|
|
|
buffer[9] = checksum; |
|
|
|
} |
|
|
|
for (int i = 0; i < 10; i++) { |
|
|
@ -137,7 +139,7 @@ size_t motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buf |
|
|
|
buffer[1] = cmd; |
|
|
|
buffer[2] = 0X1; |
|
|
|
buffer[3] = buffer_data_size; |
|
|
|
buffer[4] = (0X3E + cmd + 0X1 + buffer_data_size) % 255; |
|
|
|
buffer[4] = (0X3E + cmd + 0X1 + buffer_data_size) % 0XFF; |
|
|
|
|
|
|
|
if (buffer_data_size > 0) { |
|
|
|
hex_to_str_size = buffer_data_size + 1; |
|
|
@ -147,7 +149,7 @@ size_t motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buf |
|
|
|
buffer[5 + i] = buffer_data_uint8; |
|
|
|
checksum += buffer_data_uint8; |
|
|
|
} |
|
|
|
buffer[5 + buffer_data_size] = (checksum % 255); |
|
|
|
buffer[5 + buffer_data_size] = (checksum % 0XFF); |
|
|
|
} |
|
|
|
|
|
|
|
motor_drive_hex_to_str((char *)buffer, (5 + hex_to_str_size), (char *)strbuffer); |
|
|
|