|
tin
1.5.9
|
Embedded I/O contracts for driver-to-runtime adapters. More...
#include <concepts>#include <cstddef>#include <cstdint>#include <span>#include <type_traits>#include <utility>#include "tsm/ticks.h"

Go to the source code of this file.
Classes | |
| struct | tsm::io::digital_input_state |
| struct | tsm::io::adc_sample |
| struct | tsm::io::pwm_duty |
| struct | tsm::io::can_id |
| struct | tsm::io::can_frame |
Namespaces | |
| tsm | |
| tsm::io | |
Enumerations | |
| enum class | tsm::io::level : unsigned char { tsm::io::low , tsm::io::high } |
| enum class | tsm::io::bus_status : unsigned char { tsm::io::ok , tsm::io::busy , tsm::io::error , tsm::io::timeout } |
Functions | |
| template<typename Sink , typename Payload > | |
| requires isr_payload_sink< Sink &, Payload > bool | tsm::io::push_from_isr (Sink &sink, Payload &&payload) |
| template<adc Converter, typename Sink > | |
| requires isr_payload_sink< Sink &, adc_sample > bool | tsm::io::sample_adc_from_isr (Converter &converter, Sink &sink) |
| template<gpio_input Pin, typename Sink > | |
| requires isr_payload_sink< Sink &, digital_input_state > bool | tsm::io::sample_gpio_from_isr (Pin &pin, Sink &sink) |
| template<isr_notifier Source> | |
| void | tsm::io::notify_from_isr (Source &source) |
Variables | |
| template<typename Awaitable > | |
| concept | tsm::io::awaitable |
| template<typename Pin > | |
| concept | tsm::io::gpio_input |
| template<typename Pin > | |
| concept | tsm::io::gpio_output |
| template<typename Pin > | |
| concept | tsm::io::input_pin = gpio_input<Pin> |
| template<typename Pin > | |
| concept | tsm::io::output_pin = gpio_output<Pin> |
| template<typename Pin > | |
| concept | tsm::io::async_gpio_input |
| template<typename Converter > | |
| concept | tsm::io::adc |
| template<typename Converter > | |
| concept | tsm::io::async_adc |
| template<typename Bus > | |
| concept | tsm::io::uart |
| template<typename Bus > | |
| concept | tsm::io::async_uart |
| template<typename Bus > | |
| concept | tsm::io::spi |
| template<typename Bus > | |
| concept | tsm::io::async_spi |
| template<typename Bus > | |
| concept | tsm::io::i2c |
| template<typename Bus > | |
| concept | tsm::io::async_i2c |
| template<typename Output > | |
| concept | tsm::io::pwm |
| template<typename Bus > | |
| concept | tsm::io::can |
| template<typename Bus > | |
| concept | tsm::io::async_can |
| template<typename Timer > | |
| concept | tsm::io::tick_source_rep |
| template<typename Timer > | |
| concept | tsm::io::tick_source_duration |
| template<typename Timer > | |
| concept | tsm::io::tick_source = tick_source_rep<Timer> || tick_source_duration<Timer> |
| template<typename Sink , typename Payload > | |
| concept | tsm::io::isr_payload_sink |
| template<typename Source > | |
| concept | tsm::io::isr_notifier |
Embedded I/O contracts for driver-to-runtime adapters.
The HSM core should not know about peripheral registers, DMA descriptors, or RTOS handles. This header gives examples and applications a small vocabulary for driver facades that produce typed events and payloads for a runtime.