14#ifndef EXAMPLE_HAL_HPP
15#define EXAMPLE_HAL_HPP
108 uint32_t rx_data = 0;
147 std::span<const uint32_t> tx_data,
148 std::span<uint32_t> rx_data)
noexcept override {
155 if (tx_data.size() != rx_data.size()) {
167 for (
size_t i = 0; i < tx_data.size(); ++i) {
171 return std::unexpected(result.error());
173 rx_data[i] = *result;
244 [[nodiscard]]
bool is_ready() const noexcept
override {
Hardware Abstraction Layer (HAL) base class for TLE92466ED driver.
Example HAL implementation for 32-bit SPI.
Definition example_hal.hpp:42
bool initialized_
Initialization status.
Definition example_hal.hpp:266
int spi_device_
SPI device identifier.
Definition example_hal.hpp:264
HALResult< void > configure(const SPIConfig &config) noexcept override
Configure SPI parameters.
Definition example_hal.hpp:225
HALResult< void > chip_deselect() noexcept override
Deassert chip select.
Definition example_hal.hpp:194
HALResult< void > delay(uint32_t microseconds) noexcept override
Delay for specified duration.
Definition example_hal.hpp:205
int cs_pin_
Chip select pin.
Definition example_hal.hpp:265
HALResult< void > transfer_multi(std::span< const uint32_t > tx_data, std::span< uint32_t > rx_data) noexcept override
Transfer multiple 32-bit words.
Definition example_hal.hpp:146
HALError get_last_error() const noexcept override
Get last error.
Definition example_hal.hpp:251
HALResult< uint32_t > transfer32(uint32_t tx_data) noexcept override
Transfer 32-bit data via SPI.
Definition example_hal.hpp:101
HALResult< void > chip_select() noexcept override
Assert chip select.
Definition example_hal.hpp:183
SPIConfig config_
Current SPI configuration.
Definition example_hal.hpp:268
HALResult< void > deinit() noexcept override
Deinitialize SPI hardware.
Definition example_hal.hpp:85
bool is_ready() const noexcept override
Check if hardware is ready.
Definition example_hal.hpp:244
HALError last_error_
Last error code.
Definition example_hal.hpp:267
HALResult< void > init() noexcept override
Initialize SPI hardware for 32-bit communication.
Definition example_hal.hpp:60
ExampleHAL(int spi_device=0, int cs_pin=10) noexcept
Constructor.
Definition example_hal.hpp:50
HALResult< void > clear_errors() noexcept override
Clear errors.
Definition example_hal.hpp:258
Abstract Hardware Abstraction Layer (HAL) base class.
Definition TLE92466ED_HAL.hpp:124
Definition TLE92466ED.hpp:80
HALError
Error codes for HAL operations.
Definition TLE92466ED_HAL.hpp:41
@ HardwareNotReady
Hardware not initialized or ready.
@ InvalidParameter
Invalid parameter passed to function.
std::expected< T, HALError > HALResult
Result type for HAL operations using std::expected (C++23)
Definition TLE92466ED_HAL.hpp:62
SPI transaction configuration.
Definition TLE92466ED_HAL.hpp:69