|
|
@ -1,5 +1,6 @@ |
|
|
|
#include "motor_drive.h" |
|
|
|
|
|
|
|
#include "ble_parse_data.h" |
|
|
|
#include "driver/uart.h" |
|
|
|
#include "esp_log.h" |
|
|
|
|
|
|
@ -44,6 +45,7 @@ double motor_drive_read_encoder() { |
|
|
|
size_t encoder_buffer_size = 5; |
|
|
|
uint8_t buffer[5] = {0X3E, 0X90, 0X01, 0X00, 0XCF}; |
|
|
|
uint16_t encoder_data = 0; |
|
|
|
char *notify_err = "read encoder error"; |
|
|
|
|
|
|
|
// Generate cmd |
|
|
|
// encoder_buffer_size = motor_drive_buffer_cmd_generate(buffer, 0x90, 4, 0X5A97FF00); |
|
|
@ -63,6 +65,7 @@ double motor_drive_read_encoder() { |
|
|
|
encoder_buffer_size = uart_read_bytes(uart_num, buffer, 12, 2000 / portTICK_RATE_MS); |
|
|
|
if (encoder_buffer_size != 12 || buffer[0] != 0X3E) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "encoder size:%d,buffer[0] = 0X%x", encoder_buffer_size, buffer[0]); |
|
|
|
bluetooth_active_notify((uint8_t *)notify_err, strlen(notify_err)); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
|
|
|
@ -87,6 +90,7 @@ void motor_drive_set_packages_ctr(double position) { |
|
|
|
uint8_t position_buffer_size = 5; //从第五位开始(低位) |
|
|
|
uint8_t checksum = 0; |
|
|
|
uint8_t buffer[10] = {0x3E, 0XA7, 0X01, 0X04, 0XEA, 0X00, 0X00, 0X00, 0X00, 0X00}; |
|
|
|
char *notify_err = "set size error"; |
|
|
|
|
|
|
|
position_int = position * 100; |
|
|
|
|
|
|
@ -115,12 +119,12 @@ void motor_drive_set_packages_ctr(double position) { |
|
|
|
position_buffer_size = uart_read_bytes(uart_num, buffer, 13, 2000 / portTICK_RATE_MS); |
|
|
|
if (position_buffer_size != 13 || buffer[0] != 0X3E) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "set motor size error ,buffer_size:%d,buffer[0] = 0X%x", position_buffer_size, buffer[0]); |
|
|
|
bluetooth_active_notify((uint8_t *)notify_err, strlen(notify_err)); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// Parse receive |
|
|
|
// motor_drive_buffer_cmd_parse(buffer); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
void motor_drive_hex_to_str(const char *hex, int hex_len, char *str) { |
|
|
@ -193,7 +197,7 @@ void motor_drive_buffer_cmd_parse(uint8_t *buffer) { |
|
|
|
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}; |
|
|
|
|
|
|
|
char *notify_err = "Set current size err"; |
|
|
|
uart_flush(uart_num); |
|
|
|
uart_write_bytes(uart_num, buffer, 5); |
|
|
|
|
|
|
@ -204,6 +208,7 @@ u_int8_t motor_drive_set_motor_current_size() { |
|
|
|
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]); |
|
|
|
bluetooth_active_notify((uint8_t *)notify_err, strlen(notify_err)); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
@ -214,6 +219,7 @@ double motor_drive_read_single_turn_angle() { |
|
|
|
uint16_t turn_angle_data = 0; |
|
|
|
size_t turn_angle_buffer_size = 5; |
|
|
|
uint8_t buffer[5] = {0X3E, 0X94, 0X01, 0X00, 0XD3}; |
|
|
|
char *notify_err = "Turn angle size err"; |
|
|
|
|
|
|
|
uart_flush(uart_num); |
|
|
|
uart_write_bytes(uart_num, buffer, 5); |
|
|
@ -225,6 +231,7 @@ double motor_drive_read_single_turn_angle() { |
|
|
|
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]); |
|
|
|
bluetooth_active_notify((uint8_t *)notify_err, strlen(notify_err)); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
|
|
|
|