|
|
@ -190,23 +190,41 @@ void motor_drive_buffer_cmd_parse(uint8_t *buffer) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void motor_drive_set_motor_size() {} |
|
|
|
u_int8_t motor_drive_set_motor_current_size() { |
|
|
|
size_t set_current_buffer_size = 5; |
|
|
|
uint8_t buffer[5] = {0X3E, 0X19, 0X01, 0X00, 0X58}; |
|
|
|
|
|
|
|
uart_flush(uart_num); |
|
|
|
uart_write_bytes(uart_num, buffer, 5); |
|
|
|
|
|
|
|
set_current_buffer_size = 0; |
|
|
|
memset(buffer, 0, sizeof(uint8_t) * 5); |
|
|
|
|
|
|
|
// Wait receive |
|
|
|
set_current_buffer_size = uart_read_bytes(uart_num, buffer, 5, 2000 / portTICK_RATE_MS); |
|
|
|
if (set_current_buffer_size != 5 || buffer[0] != 0X3E) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "Set current size:%d,buffer[0] = 0X%x", set_current_buffer_size, buffer[0]); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
double motor_drive_read_single_turn_angle() { |
|
|
|
uint16_t turn_angle_data = 0; |
|
|
|
size_t encoder_buffer_size = 5; |
|
|
|
size_t turn_angle_buffer_size = 5; |
|
|
|
uint8_t buffer[5] = {0X3E, 0X94, 0X01, 0X00, 0XD3}; |
|
|
|
|
|
|
|
uart_flush(uart_num); |
|
|
|
uart_write_bytes(uart_num, buffer, 5); |
|
|
|
|
|
|
|
encoder_buffer_size = 0; |
|
|
|
turn_angle_buffer_size = 0; |
|
|
|
memset(buffer, 0, sizeof(uint8_t) * 5); |
|
|
|
|
|
|
|
// Wait receive |
|
|
|
encoder_buffer_size = uart_read_bytes(uart_num, buffer, 8, 2000 / portTICK_RATE_MS); |
|
|
|
if (encoder_buffer_size != 8 || buffer[0] != 0X3E) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "encoder size:%d,buffer[0] = 0X%x", encoder_buffer_size, buffer[0]); |
|
|
|
turn_angle_buffer_size = uart_read_bytes(uart_num, buffer, 8, 2000 / portTICK_RATE_MS); |
|
|
|
if (turn_angle_buffer_size != 8 || buffer[0] != 0X3E) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "Turn angle size:%d,buffer[0] = 0X%x", turn_angle_buffer_size, buffer[0]); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
|
|
|
@ -215,5 +233,5 @@ double motor_drive_read_single_turn_angle() { |
|
|
|
|
|
|
|
turn_angle_data = buffer[5] + (buffer[6] << 8); |
|
|
|
|
|
|
|
return ((double)turn_angle_data/100.0); |
|
|
|
return ((double)turn_angle_data / 100.0); |
|
|
|
} |