Browse Source

hex to string导致数组第一位变化,转化用不到,暂时注释

devtest
zwsd 3 years ago
parent
commit
d95919b38f
  1. 4
      main/main.c
  2. 36
      main/motor_drive.c
  3. 6
      main/motor_drive.h

4
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;

36
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() {}
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;
}

6
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);
void motor_drive_buffer_cmd_parse(uint8_t *buffer);
void motor_drive_set_motor_size();
double motor_drive_read_single_turn_angle();
Loading…
Cancel
Save