HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
BaseUart.h File Reference

Abstract base class for UART driver implementations in the HardFOC system. More...

#include "HardwareTypes.h"
#include <cstdint>
#include <cstring>
#include <string_view>
Include dependency graph for BaseUart.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  hf_uart_statistics_t
 UART operation statistics. More...
 
struct  hf_uart_diagnostics_t
 UART diagnostic information. More...
 
class  BaseUart
 Abstract base class for UART driver implementations. More...
 

Macros

#define HF_UART_ERR_LIST(X)
 HardFOC UART error codes.
 
#define X(NAME, VALUE, DESC)   NAME = VALUE,
 
#define X(NAME, VALUE, DESC)
 

Enumerations

enum class  hf_uart_err_t : hf_u8_t {
  X , UART_SUCCESS = 0 , UART_ERR_FAILURE = 1 , UART_ERR_NOT_INITIALIZED = 2 ,
  UART_ERR_ALREADY_INITIALIZED = 3 , UART_ERR_INVALID_PARAMETER = 4 , UART_ERR_NULL_POINTER = 5 , UART_ERR_OUT_OF_MEMORY = 6 ,
  UART_ERR_TIMEOUT = 7 , UART_ERR_BUFFER_FULL = 8 , UART_ERR_BUFFER_EMPTY = 9 , UART_ERR_TRANSMISSION_FAILED = 10 ,
  UART_ERR_RECEPTION_FAILED = 11 , UART_ERR_FRAME_ERROR = 12 , UART_ERR_PARITY_ERROR = 13 , UART_ERR_OVERRUN_ERROR = 14 ,
  UART_ERR_NOISE_ERROR = 15 , UART_ERR_BREAK_DETECTED = 16 , UART_ERR_HARDWARE_FAULT = 17 , UART_ERR_COMMUNICATION_FAILURE = 18 ,
  UART_ERR_DEVICE_NOT_RESPONDING = 19 , UART_ERR_VOLTAGE_OUT_OF_RANGE = 20 , UART_ERR_INVALID_CONFIGURATION = 21 , UART_ERR_UNSUPPORTED_OPERATION = 22 ,
  UART_ERR_INVALID_BAUD_RATE = 23 , UART_ERR_INVALID_DATA_BITS = 24 , UART_ERR_INVALID_PARITY = 25 , UART_ERR_INVALID_STOP_BITS = 26 ,
  UART_ERR_PIN_CONFIGURATION_ERROR = 27 , UART_ERR_FLOW_CONTROL_ERROR = 28 , UART_ERR_SYSTEM_ERROR = 29 , UART_ERR_PERMISSION_DENIED = 30 ,
  UART_ERR_OPERATION_ABORTED = 31 , UART_ERR_UNKNOWN = 32
}
 

Functions

constexpr std::string_view HfUartErrToString (hf_uart_err_t err) noexcept
 Convert hf_uart_err_t to human-readable string.
 

Detailed Description

Abstract base class for UART driver implementations in the HardFOC system.

This header-only file defines the abstract base class for UART communication that provides a consistent API across different UART controller implementations. Concrete implementations for various microcontrollers inherit from this class to provide serial communication, flow control, and data transmission features.

Author
Nebiyu Tadesse
Date
2025
Note
This is a header-only abstract base class following the same pattern as BaseCan.
Users should program against this interface, not specific implementations.

Macro Definition Documentation

◆ X [1/2]

#define X ( NAME,
VALUE,
DESC )   NAME = VALUE,

◆ X [2/2]

#define X ( NAME,
VALUE,
DESC )
Value:
case hf_uart_err_t::NAME: \
return DESC;

Enumeration Type Documentation

◆ hf_uart_err_t

enum class hf_uart_err_t : hf_u8_t
strong
Enumerator
UART_SUCCESS 
UART_ERR_FAILURE 
UART_ERR_NOT_INITIALIZED 
UART_ERR_ALREADY_INITIALIZED 
UART_ERR_INVALID_PARAMETER 
UART_ERR_NULL_POINTER 
UART_ERR_OUT_OF_MEMORY 
UART_ERR_TIMEOUT 
UART_ERR_BUFFER_FULL 
UART_ERR_BUFFER_EMPTY 
UART_ERR_TRANSMISSION_FAILED 
UART_ERR_RECEPTION_FAILED 
UART_ERR_FRAME_ERROR 
UART_ERR_PARITY_ERROR 
UART_ERR_OVERRUN_ERROR 
UART_ERR_NOISE_ERROR 
UART_ERR_BREAK_DETECTED 
UART_ERR_HARDWARE_FAULT 
UART_ERR_COMMUNICATION_FAILURE 
UART_ERR_DEVICE_NOT_RESPONDING 
UART_ERR_VOLTAGE_OUT_OF_RANGE 
UART_ERR_INVALID_CONFIGURATION 
UART_ERR_UNSUPPORTED_OPERATION 
UART_ERR_INVALID_BAUD_RATE 
UART_ERR_INVALID_DATA_BITS 
UART_ERR_INVALID_PARITY 
UART_ERR_INVALID_STOP_BITS 
UART_ERR_PIN_CONFIGURATION_ERROR 
UART_ERR_FLOW_CONTROL_ERROR 
UART_ERR_SYSTEM_ERROR 
UART_ERR_PERMISSION_DENIED 
UART_ERR_OPERATION_ABORTED 
UART_ERR_UNKNOWN 

Function Documentation

◆ HfUartErrToString()

constexpr std::string_view HfUartErrToString ( hf_uart_err_t err)
constexprnoexcept

Convert hf_uart_err_t to human-readable string.

Parameters
errThe error code to convert
Returns
String view of the error description