Browse Source

update

devtest
zwsd 3 years ago
parent
commit
ec3b4a335d
  1. 4
      main/main.c
  2. 37
      main/motor_drive.c
  3. 2
      main/motor_drive.h

4
main/main.c

@ -68,8 +68,10 @@ void app_main(void) {
// s_bluetooth_processer.motor_drive_turn_flag = false;
// }
motor_drive_read_encoder();
// motor_drive_set_packages_ctr(35.68);
motor_drive_set_packages_data_max64bit(0x34,4,0X76482534);
// motor_drive_set_packages_data_max64bit(0x34,4,0X76482534);
// uart_write_bytes(UART_NUM_2, (const char*)test_str, strlen(test_str));
// ets_delay_us(1000000);

37
main/motor_drive.c

@ -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) {}

2
main/motor_drive.h

@ -42,4 +42,4 @@ 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_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);
Loading…
Cancel
Save