Comprehensive PIO testing suite for ESP32-C6 DevKit-M-1 with RMT peripheral (noexcept)
More...
|
| void | TestTransmitCallback (hf_u8_t channel_id, size_t symbols_sent, void *user_data) |
| |
| void | TestReceiveCallback (hf_u8_t channel_id, const hf_pio_symbol_t *symbols, size_t symbol_count, void *user_data) |
| |
| void | TestErrorCallback (hf_u8_t channel_id, hf_pio_err_t error, void *user_data) |
| |
| hf_pio_channel_config_t | create_test_channel_config (hf_gpio_num_t gpio_pin, hf_pio_direction_t direction=hf_pio_direction_t::Transmit) noexcept |
| | Create a default PIO channel configuration for testing using resolution_ns ESP32-C6 specific configuration for RMT compatibility with latest improvements.
|
| |
| void | create_ws2812_rgb_symbols (uint8_t r, uint8_t g, uint8_t b, hf_pio_symbol_t *symbols, uint32_t resolution_ns) noexcept |
| | Create WS2812 symbols for RGB data using resolution_ns timing.
|
| |
| hf_pio_symbol_t | create_ws2812_reset_symbol (uint32_t resolution_ns) noexcept |
| | Create WS2812 reset symbol using resolution_ns timing.
|
| |
| void | create_logic_analyzer_test_pattern (hf_pio_symbol_t *symbols, size_t &symbol_count, uint32_t resolution_ns) noexcept |
| | Create test pattern for logic analyzer verification using resolution_ns timing.
|
| |
| void | ensure_minimum_tick_duration (hf_pio_symbol_t *symbols, size_t symbol_count, uint32_t min_ticks=1) noexcept |
| | Ensure minimum tick duration for symbols to prevent "Duration too short" errors.
|
| |
| bool | test_esp32_variant_detection () noexcept |
| |
| bool | test_channel_allocation_helpers () noexcept |
| |
| bool | test_channel_direction_validation () noexcept |
| |
| bool | test_resolution_ns_usage () noexcept |
| |
| bool | test_constructor_default () noexcept |
| |
| bool | test_destructor_cleanup () noexcept |
| |
| bool | test_initialization_states () noexcept |
| |
| bool | test_lazy_initialization () noexcept |
| |
| bool | test_channel_configuration () noexcept |
| |
| bool | test_multiple_channel_configuration () noexcept |
| |
| bool | test_basic_symbol_transmission () noexcept |
| |
| bool | test_transmission_edge_cases () noexcept |
| |
| bool | test_ws2812_single_led () noexcept |
| |
| bool | test_ws2812_multiple_leds () noexcept |
| |
| bool | test_ws2812_color_cycle () noexcept |
| |
| bool | test_ws2812_brightness_sweep () noexcept |
| |
| bool | test_ws2812_pattern_validation () noexcept |
| |
| bool | test_ws2812_rainbow_transition () noexcept |
| |
| bool | test_logic_analyzer_patterns () noexcept |
| |
| bool | test_frequency_sweep () noexcept |
| |
| bool | test_rmt_encoder_configuration () noexcept |
| |
| bool | test_rmt_carrier_modulation () noexcept |
| |
| bool | test_rmt_advanced_configuration () noexcept |
| |
| bool | test_loopback_functionality () noexcept |
| |
| bool | test_hardware_loopback_gpio8_to_gpio18 () noexcept |
| |
| bool | test_callback_functionality () noexcept |
| |
| bool | test_statistics_and_diagnostics () noexcept |
| |
| bool | test_stress_transmission () noexcept |
| |
| bool | test_pio_system_validation () noexcept |
| |
| void | app_main () |
| |
Comprehensive PIO testing suite for ESP32-C6 DevKit-M-1 with RMT peripheral (noexcept)
This comprehensive test suite validates all functionality of the EspPio class using ESP-IDF v5.5 RMT with the latest improvements including:
- Channel-specific callback system with proper user data handling
- Resolution_ns user interface with internal conversion to resolution_hz
- ESP32 variant-specific channel validation (TX/RX allocation per variant)
- Enhanced clock divider calculation with overflow protection
- Constructor/Destructor behavior
- Lifecycle management (Initialize/Deinitialize)
- Channel configuration and management
- Symbol transmission and reception
- RMT-specific features (carrier modulation, loopback, encoder configuration)
- WS2812 LED protocol timing validation with comprehensive color testing (GPIO8) • Primary colors (R/G/B) at maximum brightness for timing stress testing • Secondary colors (Yellow/Magenta/Cyan) and white variations • Brightness sweep tests (0-255) for each color channel • Bit pattern validation (alternating, edge cases, specific patterns) • Rainbow color wheel transitions with HSV to RGB conversion • Rapid color change sequences for protocol stress testing
- Automated loopback testing (GPIO8 TX -> GPIO18 RX)
- Logic analyzer test scenarios
- Advanced RMT features (DMA, memory blocks, queue depth)
- Status and diagnostics (statistics, error reporting)
- Channel-specific callbacks (transmit, receive, error)
- Edge cases and stress testing
- ASCII Art test result decoration
- Note
- This test suite is designed for ESP32-C6 DevKitM-1 with ESP-IDF v5.5+ RMT driver
-
Uses built-in RGB LED on GPIO8 for WS2812 testing and automated loopback
-
Automated testing: Connect GPIO8 (TX) to GPIO18 (RX) with jumper wire
-
Incorporates latest PIO improvements: channel-specific callbacks, resolution_hz, variant validation