|
|
@ -40,12 +40,35 @@ void motor_drive_turn(int direction, int speed_level, double position) { |
|
|
|
uart_write_bytes(uart_num, "test", strlen("test")); |
|
|
|
} |
|
|
|
|
|
|
|
double motor_drive_read_encoder() { return 0.0; } |
|
|
|
double motor_drive_read_encoder() { |
|
|
|
uint8_t buffer[20] = {0}; |
|
|
|
|
|
|
|
// Generate cmd |
|
|
|
motor_drive_buffer_cmd_generate(buffer, 0x90, 0, 0); |
|
|
|
|
|
|
|
// Send cmd |
|
|
|
// uart_write_bytes(UART_NUM_2, (const char*)test_str, strlen(test_str)); |
|
|
|
|
|
|
|
// Wait receive |
|
|
|
// while (1) { |
|
|
|
// len = uart_read_bytes(ECHO_UART_PORT_NUM, data, BUF_SIZE, 20 / portTICK_RATE_MS); |
|
|
|
// if(len != 0 || timout){ |
|
|
|
// break; |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
// Parse receive |
|
|
|
// R_encoder = motor_drive_buffer_cmd_parse(); |
|
|
|
|
|
|
|
// parse motor usart |
|
|
|
// return R_encoder; |
|
|
|
return 0.0; |
|
|
|
} |
|
|
|
|
|
|
|
void motor_drive_set_packages_data_max64bit(uint8_t cmd, uint8_t buffer_data_size, uint64_t buffer_data) { |
|
|
|
uint8_t buffer[20] = {0}; |
|
|
|
|
|
|
|
motor_drive_buffer_init(buffer, cmd, buffer_data_size, buffer_data); |
|
|
|
motor_drive_buffer_cmd_generate(buffer, cmd, buffer_data_size, buffer_data); |
|
|
|
} |
|
|
|
|
|
|
|
void motor_drive_set_packages_ctr(double position) { |
|
|
@ -90,11 +113,12 @@ void motor_drive_hex_to_str(char *hex, int hex_len, char *str) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void motor_drive_buffer_init(uint8_t *buffer, uint8_t cmd, uint8_t buffer_data_size, uint64_t buffer_data) { |
|
|
|
void motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buffer_data_size, uint64_t buffer_data) { |
|
|
|
uint8_t i = 0; |
|
|
|
uint8_t checksum = 0; |
|
|
|
uint8_t buffer_data_uint8 = 0; |
|
|
|
uint8_t strbuffer[20] = {'\0'}; |
|
|
|
uint8_t hex_to_str_size = buffer_data_size; |
|
|
|
if (buffer == NULL) { |
|
|
|
ESP_LOGW(MOTOR_DRIVE, "buffer nil ,init error"); |
|
|
|
return; |
|
|
@ -106,6 +130,7 @@ void motor_drive_buffer_init(uint8_t *buffer, uint8_t cmd, uint8_t buffer_data_s |
|
|
|
buffer[4] = (0X3E + cmd + 0X1 + buffer_data_size) % 255; |
|
|
|
|
|
|
|
if (buffer_data_size > 0) { |
|
|
|
hex_to_str_size = buffer_data_size + 1; |
|
|
|
for (i = 0; i < buffer_data_size; i++) { |
|
|
|
buffer_data_uint8 = buffer_data; |
|
|
|
buffer_data = buffer_data >> 8; |
|
|
@ -115,6 +140,8 @@ void motor_drive_buffer_init(uint8_t *buffer, uint8_t cmd, uint8_t buffer_data_s |
|
|
|
buffer[5 + buffer_data_size] = (checksum % 255); |
|
|
|
} |
|
|
|
|
|
|
|
motor_drive_hex_to_str((char *)buffer, (5 + buffer_data_size + 1), (char *)strbuffer); |
|
|
|
motor_drive_hex_to_str((char *)buffer, (5 + hex_to_str_size), (char *)strbuffer); |
|
|
|
ESP_LOGI(MOTOR_DRIVE, "%s", strbuffer); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void motor_drive_buffer_cmd_parse(uint8_t *buffer) {} |