Functions

dtadc_espidf_oneshot   ESP-IDF one-shot ADC backend for the dtadc interface.

Implements the dtadc vtable using the ESP-IDF one-shot ADC driver. Up to four channels are configured by GPIO number, attenuation, and bit width; the backend resolves GPIO numbers to ADC unit and channel internally so the public config remains free of ESP-IDF-specific types. A background task scans all configured channels at a configurable interval and delivers results via a per-scan callback.

dtmc_espidf_library/include/dtmc/dtadc_espidf_oneshot.h

dtdotstar_espidf   ESP-IDF SPI backend for the dtdotstar APA102 LED strip interface.

Implements the dtdotstar vtable using the ESP-IDF SPI master driver, driving an APA102/DotStar addressable LED strip over a configurable SPI host and GPIO pins. The LED count, MOSI and clock pins, and SPI host are set at configuration time. An optional post callback supports async completion notification after each transmitted frame.

dtmc_espidf_library/include/dtmc/dtdotstar_espidf.h

dtethernet_espidf   ESP-IDF Ethernet connection manager.

Manages the ESP-IDF Ethernet driver lifecycle: configure from a dtradioconfig reference, connect, and query link status. Connection state is tracked internally via a FreeRTOS event group. The struct exposes method pointers directly, providing a lightweight object interface without the model-number registry used by later modules.

dtmc_espidf_library/include/dtmc/dtethernet_espidf.h

dtgpiopin_espidf   ESP-IDF GPIO backend for the dtgpiopin cross-platform interface.

Implements the dtgpiopin vtable for ESP32-class SoCs using the ESP-IDF GPIO driver. A single GPIO number (0-40 typical) is combined with mode (input/output/inout), pull (none/up/down), and drive strength at configuration time. ISR attach and enable/disable follow the common dtgpiopin contract, leaving application code portable across platforms.

dtmc_espidf_library/include/dtmc/dtgpiopin_espidf.h

dtinterval_espidf   ESP-IDF FreeRTOS task backend for the dtinterval periodic timer interface.

Implements the dtinterval vtable using a FreeRTOS task as the timing source. The callback function, context pointer, task name, and interval in microseconds are all set at configuration time. The callback receives a should_pause flag, enabling self-cancellation without external coordination.

dtmc_espidf_library/include/dtmc/dtinterval_espidf.h

dtiox_espidf_canbus   ESP-IDF TWAI (CAN) backend for the dtiox byte-stream interface.

Implements the dtiox vtable over the ESP-IDF TWAI controller, presenting CAN traffic as a plain byte stream: outbound bytes are sliced into 0-8-byte CAN frames using a configurable TX identifier, and inbound frame payloads are reassembled into an RX ring buffer. GPIO pins, bitrate, frame format (11-bit or 29-bit), operating mode, and queue depths are all set through dtiox_espidf_canbus_config_t without exposing any TWAI-specific types.

dtmc_espidf_library/include/dtmc/dtiox_espidf_canbus.h

dtiox_espidf_uart   ESP-IDF UART backend for the dtiox byte-stream interface.

Implements the dtiox vtable over an ESP-IDF UART port. Baud rate, parity, data bits, stop bits, and flow control are set through the shared dtuart_helper_config_t; GPIO pin assignments for TX, RX, RTS, and CTS are provided separately. The UART port number is stored as a plain int to avoid exposing uart_port_t in the public header.

dtmc_espidf_library/include/dtmc/dtiox_espidf_uart.h

dtmc   Canonical top-level include for the ESP-IDF platform library.

Re-exports the full dtmc_espidf interface under the platform-agnostic name . Application code includes this header to remain decoupled from the underlying platform selection while still gaining access to flavor strings, QEMU detection, esp_err_t macros, and the task-registry entry point provided by dtmc_espidf.

dtmc_espidf_library/include/dtmc/dtmc.h

dtmc_espidf   ESP-IDF platform entry point for the dtmc embedded framework.

Declares the platform flavor and version strings, a QEMU environment detector, diagnostic helpers for printing environment and task state, an error-log iterator compatible with dterr_each, and the task-registry entry point that wires all ESP-IDF-specific tasks at startup. Also provides DTMC_ESPIDF_C and DTMC_ESPIDF_PASS macros that convert esp_err_t and FreeRTOS pdTRUE return values into dterr_t chains using the standard goto-cleanup pattern.

dtmc_espidf_library/include/dtmc/dtmc_espidf.h

dtmcp4728_espidf   ESP-IDF I2C driver for the MCP4728 quad 12-bit DAC.

Drives a Microchip MCP4728 four-channel 12-bit DAC over ESP-IDF I2C. Each channel is independently configured with a 12-bit output value, voltage reference (VDD or internal 2.048 V), gain (x1 or x2), and power- down mode. The API covers fast write (volatile only), multi write (one channel at a time), sequential write (starting channel to N), and single write with EEPROM commit, plus general-call reset, wake-up, and software update. I2C port, GPIO pins, clock speed, and device address are all configurable.

dtmc_espidf_library/include/dtmc/dtmcp4728_espidf.h

dtmqttclient_espidf   ESP-IDF MQTT client backend for the dtmqttclient interface.

Implements the dtmqttclient vtable using the ESP-IDF MQTT client stack. Connection parameters are drawn from a dtradioconfig reference, avoiding redundant broker and credential fields at each call site. A configurable retry limit controls reconnect attempts before a persistent failure is reported.

dtmc_espidf_library/include/dtmc/dtmqttclient_espidf.h

dtnetportal_espmqtt   ESP-IDF MQTT backend for the dtnetportal interface.

Implements the dtnetportal vtable using the ESP-IDF MQTT client stack. Broker host, port, credentials, and WiFi parameters are supplied through a dtradioconfig reference, keeping provisioning data in one place. A configurable retry limit governs reconnect attempts before the backend reports a permanent failure through the standard dterr_t error chain.

dtmc_espidf_library/include/dtmc/dtnetportal_espmqtt.h

dtnvblob_espidf_nvs   ESP-IDF NVS backend for the dtnvblob persistent storage interface.

Implements the dtnvblob vtable by reading and writing an opaque binary blob to an ESP-IDF NVS namespace and key. Configuration requires only the NVS namespace string and key name. The backend satisfies the same read/write/ dispose contract as other dtnvblob backends, allowing persistent storage code to run unmodified across ESP-IDF and non-embedded targets.

dtmc_espidf_library/include/dtmc/dtnvblob_espidf_nvs.h

dtprepper_espidf   ESP-IDF startup sequencer for WiFi station and Ethernet.

Orchestrates early-boot network initialization on ESP-IDF: loads radio configuration, initializes the ESP system, and then brings up either a WiFi station or an Ethernet interface (or both) in sequence. The struct owns a dtradioconfig, a dtstation_espidf, and a dtethernet_espidf inline, and exposes method pointers for each startup phase so the caller controls the order of operations.

dtmc_espidf_library/include/dtmc/dtprepper_espidf.h

dtstation_espidf   ESP-IDF WiFi station connection manager.

Manages the ESP-IDF WiFi stack in station mode: configure from a dtradioconfig reference, attempt connection with a bounded retry count, and query link status. Connection state is tracked internally via a FreeRTOS event group. The struct exposes method pointers directly, providing a lightweight object interface without the model-number registry used by later modules.

dtmc_espidf_library/include/dtmc/dtstation_espidf.h

dtmc_espidf   Library flavor and version identification macros.

Provides DTMC_ESPIDF_VERSION string constants that identify the library build at runtime. Used by dtruntime and diagnostic routines to report the active library variant in environment tables and log output.

This file is processed by tooling in the automated build system. It's important to maintain the structure and formatting of the version macros for compatibility with version parsing scripts.

dtmc_espidf_library/include/dtmc/version.h