diff --git a/.vscode/settings.json b/.vscode/settings.json index e67a294..0e3f5e1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -64,6 +64,7 @@ "thread": "c", "ratio": "c", "typeinfo": "c", - "utility": "c" + "utility": "c", + "sdkconfig.h": "c" }, } \ No newline at end of file diff --git a/main/ble_parse_data.c b/main/ble_parse_data.c index dcaa95b..e336810 100644 --- a/main/ble_parse_data.c +++ b/main/ble_parse_data.c @@ -240,4 +240,11 @@ void string_copy_by_num(char *dest, const char *src, uint8_t count, uint8_t num) for (i = 0; i < num; i++) { dest[i] = src[(count * 15) + i]; } +} + +void bluetooth_active_notify(uint8_t *buffer, uint8_t buffer_size) { + if (parse_bluetooth_processer->table_handle_m != 0) { + esp_ble_gatts_send_indicate(parse_bluetooth_processer->table_gatts_if_m, parse_bluetooth_processer->table_conn_id_m, // + parse_bluetooth_processer->table_handle_m, buffer_size, buffer, false); + } } \ No newline at end of file diff --git a/main/ble_parse_data.h b/main/ble_parse_data.h index 1a3e240..f0cef7d 100644 --- a/main/ble_parse_data.h +++ b/main/ble_parse_data.h @@ -60,4 +60,5 @@ void receipt_json_set_position(); void receipt_json_get_status(); void bluetooth_auto_report_format_receipt(); void bluetooth_tx_buffer_send_indicate(cb_t format); -void string_copy_by_num(char *dest, const char *src, uint8_t count, uint8_t num); \ No newline at end of file +void string_copy_by_num(char *dest, const char *src, uint8_t count, uint8_t num); +void bluetooth_active_notify(uint8_t *buffer, uint8_t buffer_size); \ No newline at end of file diff --git a/main/main.c b/main/main.c index b8274c3..b9faf22 100644 --- a/main/main.c +++ b/main/main.c @@ -63,7 +63,7 @@ void app_main(void) { // receipt_json_get_status(); // s_bluetooth_processer.auto_report_flag = false; // } - + motor_drive_read_encoder(); // 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 6a3f227..d3b6293 100644 --- a/main/motor_drive.c +++ b/main/motor_drive.c @@ -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; }