diff --git a/main/main.c b/main/main.c index aff126f..1e8934a 100644 --- a/main/main.c +++ b/main/main.c @@ -58,12 +58,14 @@ void app_main(void) { // double encoder = 0.0; while (true) { - bluetooth_gatts_try_process_data(); + // bluetooth_gatts_try_process_data(); // if (s_bluetooth_processer.auto_report_flag) { // receipt_json_get_status(); // s_bluetooth_processer.auto_report_flag = false; // } + motor_drive_set_packages_ctr(26.34); + // if ((motor_drive_read_encoder() == s_bluetooth_processer.position) && s_bluetooth_processer.motor_drive_turn_flag == true) { // ESP_LOGI("test", "info log ok\n"); // s_bluetooth_processer.motor_drive_turn_flag = false; diff --git a/main/motor_drive.c b/main/motor_drive.c index f69ac11..53bbc17 100644 --- a/main/motor_drive.c +++ b/main/motor_drive.c @@ -42,7 +42,7 @@ void motor_drive_turn(int direction, int speed_level, double position) { double motor_drive_read_encoder() { size_t encoder_buffer_size = 5; - uint8_t buffer[5] = {0X3E,0X90,0X01,0X00,0XCF}; + uint8_t buffer[5] = {0X3E, 0X90, 0X01, 0X00, 0XCF}; uint16_t encoder_data = 0; // Generate cmd @@ -52,8 +52,8 @@ double motor_drive_read_encoder() { // return -1; // } - uart_flush(uart_num); // Send cmd + uart_flush(uart_num); uart_write_bytes(uart_num, (const char *)buffer, encoder_buffer_size); encoder_buffer_size = 0; @@ -72,7 +72,7 @@ double motor_drive_read_encoder() { encoder_data = buffer[5] + (buffer[6] << 8); // parse motor usart - return ((double)encoder_data/100); + return ((double)encoder_data / 100); } void motor_drive_set_packages_data_max64bit(uint8_t cmd, uint8_t buffer_data_size, uint64_t buffer_data) { @@ -87,7 +87,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}; - uint8_t strbuffer[20] = {0}; + // uint8_t strbuffer[20] = {0}; position_int = position * 100; ESP_LOGI(MOTOR_DRIVE, "%d", position_int); @@ -109,17 +109,23 @@ void motor_drive_set_packages_ctr(double position) { for (int i = 0; i < 10; i++) { ESP_LOGI(MOTOR_DRIVE, "%d", buffer[i]); } - motor_drive_hex_to_str((char *)buffer, 10, (char *)strbuffer); - ESP_LOGI(MOTOR_DRIVE, "%s", strbuffer); + // ESP_LOGI(MOTOR_DRIVE, "0X%X", buffer[0]); + // motor_drive_hex_to_str((const char *)buffer, 10, (char *)strbuffer); + // ESP_LOGI(MOTOR_DRIVE, "%s", strbuffer); + // ESP_LOGI(MOTOR_DRIVE, "0X%X", buffer[0]); - //Wait uart receive,if time out return error and output log + // Send cmd + uart_flush(uart_num); + uart_write_bytes(uart_num, buffer, 10); - //Process the data + // Wait uart receive,if time out return error and output log + + // Process the data } -void motor_drive_hex_to_str(char *hex, int hex_len, char *str) { +void motor_drive_hex_to_str(const char *hex, int hex_len, char *str) { int i, pos = 0; - + ESP_LOGI(MOTOR_DRIVE, "0X%X", hex[0]); for (i = 0; i < hex_len; i++) { @@ -127,6 +133,7 @@ void motor_drive_hex_to_str(char *hex, int hex_len, char *str) { pos += 2; } + ESP_LOGI(MOTOR_DRIVE, "0X%X", hex[0]); } size_t motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buffer_data_size, uint64_t buffer_data) { @@ -183,4 +190,11 @@ void motor_drive_buffer_cmd_parse(uint8_t *buffer) { } } -void motor_drive_set_motor_size() {} \ No newline at end of file +void motor_drive_set_motor_size() {} + +double motor_drive_read_single_turn_angle() { + double turn_angle = 0.0; + uint8_t buffer[5] = {0X3E, 0X94, 0X01, 0X00, 0XD3}; + + return turn_angle; +} \ No newline at end of file diff --git a/main/motor_drive.h b/main/motor_drive.h index c1f55f4..cc322a1 100644 --- a/main/motor_drive.h +++ b/main/motor_drive.h @@ -41,6 +41,8 @@ void motor_drive_turn(int direction, int speed_level, double position); double motor_drive_read_encoder(); void motor_drive_set_packages_data_max64bit(uint8_t cmd, uint8_t buffer_data_size, uint64_t buffer_data); void motor_drive_set_packages_ctr(double position); -void motor_drive_hex_to_str(char *hex, int hex_len, char *str); +void motor_drive_hex_to_str(const char *hex, int hex_len, char *str); size_t motor_drive_buffer_cmd_generate(uint8_t *buffer, uint8_t cmd, uint8_t buffer_data_size, uint64_t buffer_data); -void motor_drive_buffer_cmd_parse(uint8_t *buffer); \ No newline at end of file +void motor_drive_buffer_cmd_parse(uint8_t *buffer); +void motor_drive_set_motor_size(); +double motor_drive_read_single_turn_angle(); \ No newline at end of file