Browse Source

命令解析测试ok

devtest
zwsd 3 years ago
parent
commit
0c476e6996
  1. 5
      .vscode/settings.json
  2. 1
      main/ble_parse_data.c
  3. 7
      main/main.c
  4. 24
      main/motor_drive.c
  5. 3
      main/motor_drive.h

5
.vscode/settings.json

@ -31,6 +31,9 @@
"esp_system.h": "c",
"esp_log.h": "c",
"ble_uart.h": "c",
"uart.h": "c"
"uart.h": "c",
"bitset": "c",
"chrono": "c",
"algorithm": "c"
},
}

1
main/ble_parse_data.c

@ -32,6 +32,7 @@ void bluetooth_gatts_try_process_data() {
ESP_LOGI(BLE_PARSE_DATA_TAG, "order:%s ,index:%d speedLevel:%d position:%f direction:%d", parse_bluetooth_processer->order, parse_bluetooth_processer->index,
parse_bluetooth_processer->speedLevel, parse_bluetooth_processer->position, parse_bluetooth_processer->direction);
if (strcmp(parse_bluetooth_processer->order, set_position) == 0) {
parse_bluetooth_processer->auto_report_flag = true;
ESP_LOGI(BLE_PARSE_DATA_TAG, set_position);
// motor_cmd_set_position(parse_bluetooth_processer->speedLevel, parse_bluetooth_processer->position, parse_bluetooth_processer->direction);
receipt_json_set_position();

7
main/main.c

@ -57,7 +57,7 @@ void app_main(void) {
// char* test_str = "This is a test string.\n";
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;
@ -68,7 +68,10 @@ void app_main(void) {
// s_bluetooth_processer.motor_drive_turn_flag = false;
// }
motor_drive_read_encoder();
if (s_bluetooth_processer.auto_report_flag) {
motor_drive_read_encoder();
s_bluetooth_processer.auto_report_flag = false;
}
// motor_drive_set_packages_ctr(35.68);
// motor_drive_set_packages_data_max64bit(0x34,4,0X76482534);

24
main/motor_drive.c

@ -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]);
}
}

3
main/motor_drive.h

@ -42,4 +42,5 @@ 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_buffer_cmd_generate(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);
void motor_drive_buffer_cmd_parse(uint8_t *buffer);
Loading…
Cancel
Save