Functional prototype!

This commit is contained in:
2026-09-28 11:39:34 +02:00
parent 871fde8d3b
commit c387e27748
13 changed files with 713 additions and 55 deletions
+64
View File
@@ -0,0 +1,64 @@
//
// Created by nano on 8/23/26.
//
#include "uart_serial.h"
#include "esp_err.h"
#include "driver/uart.h"
void uart_serial::init() {
ESP_ERROR_CHECK(uart_driver_install(uart_num, buffer_size * 2, buffer_size * 2, 10, &uart_queue, 0));
ESP_ERROR_CHECK(uart_param_config(uart_num, &uart_config));
ESP_ERROR_CHECK(
uart_set_pin(uart_num, tx_pin_num, rx_pin_num, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE,
UART_PIN_NO_CHANGE));
uart_flush(uart_num);
}
void uart_serial::write(const char* data, int len) {
uart_write_bytes(uart_num, data, len);
ESP_ERROR_CHECK(uart_wait_tx_done(uart_num, 100));
}
void uart_serial::write_byte(const char* data) {
uart_write_bytes(uart_num, data, 1);
ESP_ERROR_CHECK(uart_wait_tx_done(uart_num, 100));
}
int uart_serial::read(char* data, int size) {
int length = 0;
ESP_ERROR_CHECK(uart_get_buffered_data_len(uart_num,(size_t *) &length));
if (length > size) {
uart_read_bytes(uart_num,data,size,100);
return size;
}
uart_read_bytes(uart_num,data,length,100);
return length;
}
/*int uart_serial::read_byte(char* data) {
int length = 0;
ESP_LOGI("sanity check","uart num: %d",uart_num);
ESP_ERROR_CHECK(uart_get_buffered_data_len(uart_num,(size_t *) &length));
if (length) {
uart_read_bytes(uart_num,data,1,100);
return 1;
}
return 0;
}*/
int uart_serial::read_byte(char* data) {
size_t length = 0;
esp_err_t err = uart_get_buffered_data_len(this->uart_num, &length);
if (err != ESP_OK) {
ESP_LOGE("uart_serial", "get_buffered_data_len failed on port %d: %s",
uart_num, esp_err_to_name(err));
return 0;
}
if (length > 0) {
int n = uart_read_bytes(uart_num, data, 1, pdMS_TO_TICKS(100));
return (n == 1) ? 1 : 0;
}
return 0;
}