|
|
@ -41,10 +41,11 @@ void motor_drive_turn(int direction, int speed_level, double position) { |
|
|
|
} |
|
|
|
|
|
|
|
double motor_drive_read_encoder() { |
|
|
|
uint8_t i = 0; |
|
|
|
uint8_t buffer[20] = {0}; |
|
|
|
|
|
|
|
// Generate cmd |
|
|
|
motor_drive_buffer_cmd_generate(buffer, 0x90, 0, 0); |
|
|
|
motor_drive_buffer_cmd_generate(buffer, 0x90, 4, 0X5A97FF00); |
|
|
|
|
|
|
|
// Send cmd |
|
|
|
// uart_write_bytes(UART_NUM_2, (const char*)test_str, strlen(test_str)); |
|
|
@ -142,6 +143,25 @@ void motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buffe |
|
|
|
|
|
|
|
motor_drive_hex_to_str((char *)buffer, (5 + hex_to_str_size), (char *)strbuffer); |
|
|
|
ESP_LOGI(MOTOR_DRIVE, "%s", strbuffer); |
|
|
|
motor_drive_buffer_cmd_parse(buffer); |
|
|
|
} |
|
|
|
|
|
|
|
void motor_drive_buffer_cmd_parse(uint8_t *buffer) {} |
|
|
|
void motor_drive_buffer_cmd_parse(uint8_t *buffer) { |
|
|
|
uint8_t i = 0; |
|
|
|
uint16_t temp_data_arr[(buffer[3] / 2)]; |
|
|
|
ESP_LOGI(MOTOR_DRIVE, "=====buffer data size %d=====", buffer[3]); |
|
|
|
if (buffer == NULL) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "cmd parse buffer null"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (buffer[0] != 0X3E || buffer[2] != 0X01) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "cmd parse buffer error"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
for (i = 0; i < (buffer[3]); i += 2) { |
|
|
|
temp_data_arr[i] = buffer[5 + i] + (buffer[5 + i + 1] << 8); |
|
|
|
ESP_LOGI(MOTOR_DRIVE, "%d\n", temp_data_arr[i]); |
|
|
|
} |
|
|
|
} |