123void runTest(
const char* test_name,
125 int& total,
int& passed);
138 int& total,
int& passed,
150 int& total,
int& passed,
151 uint32_t& out_show_duration_ms,
153 int num_runs_per_pattern = 1);
163 int& total,
int& passed,
164 uint32_t& out_show_duration_ms,
166 int num_runs_per_pattern = 1);
void runMultiTest(const char *test_name, fl::AutoResearchConfig &config, const fl::MultiRunConfig &multi_config, int &total, int &passed, fl::vector< fl::RunResult > *out_results=nullptr)
void autoResearchChipsetTimingLegacy(fl::AutoResearchConfig &config, int &total, int &passed, uint32_t &out_show_duration_ms, fl::vector< fl::RunResult > *out_results=nullptr, int num_runs_per_pattern=1)
const char * getBitPatternName(int pattern_id)
void runTest(const char *test_name, fl::AutoResearchConfig &config, int &total, int &passed)
size_t capture(fl::shared_ptr< fl::RxChannel > rx_channel, fl::span< uint8_t > rx_buffer, const fl::ChipsetTimingConfig &timing, const char *driver_name)
void autoResearchChipsetTiming(fl::AutoResearchConfig &config, int &total, int &passed, uint32_t &out_show_duration_ms, fl::vector< fl::RunResult > *out_results=nullptr, int num_runs_per_pattern=1)
void setMixedBitPattern(CRGB *leds, size_t count, int pattern_id)
ClocklessEncoder
Identifies which encoder to use for clockless chipsets in the Channel API.
@ CLOCKLESS_ENCODER_WS2812
Default, no preamble (WS2812 and compatible)
RxDeviceType
RX device type enumeration.
Base definition for an LED controller.
int num_leds
Number of LEDs in this lane.
const char * rx_type_name
RX device type name (e.g., "RMT", "ISR")
int base_strip_size
Base strip size (10 or 300 LEDs)
const char * driver_name
Driver name (e.g., "RMT", "SPI", "PARLIO")
const char * timing_name
Timing name (e.g., "WS2812B-V5")
int lane_index
Current lane index (0-15)
const char * pattern_name
Pattern name (e.g., "Pattern A (R=0xF0...)")
int lane_count
Total number of lanes (1-16)
int pin_number
TX pin number for this lane.
Test context for detailed error reporting Aggregates all test configuration parameters for error mess...
const fl::ChipsetTimingConfig & timing
Chipset timing configuration to test.
fl::RxDeviceType rx_type
RX device type (RMT or ISR)
const char * timing_name
Timing name for logging (e.g., "WS2812B-V5")
const char * driver_name
Driver name for logging (e.g., "RMT", "SPI", "PARLIO")
int base_strip_size
Base strip size (10 or 300 LEDs)
fl::span< fl::ChannelConfig > tx_configs
TX channel configurations to test (mutable for LED manipulation)
fl::ClocklessEncoder encoder
Encoder selector (peer of timing; see issue #2467)
AutoResearchConfig(const fl::ChipsetTimingConfig &t, const char *tn, fl::span< fl::ChannelConfig > tc, const char *dn, fl::shared_ptr< fl::RxChannel > rc, fl::span< uint8_t > rb, int bss, fl::RxDeviceType rt, fl::ClocklessEncoder enc=fl::ClocklessEncoder::CLOCKLESS_ENCODER_WS2812)
fl::shared_ptr< fl::RxChannel > rx_channel
RX channel for loopback capture (created in .ino, passed in)
fl::span< uint8_t > rx_buffer
Buffer to store received bytes.
Configuration for driver-agnostic autoresearch testing Contains all input parameters needed for autor...
Runtime bit-period timing for a clockless chipset.
uint8_t expected_b
Expected B value.
uint8_t expected_r
Expected R value.
int led_index
LED index where error occurred.
LEDError(int idx, uint8_t exp_r, uint8_t exp_g, uint8_t exp_b, uint8_t act_r, uint8_t act_g, uint8_t act_b)
uint8_t actual_r
Actual R value.
uint8_t expected_g
Expected G value.
uint8_t actual_b
Actual B value.
uint8_t actual_g
Actual G value.
bool print_per_led_errors
Print every LED error (default: false)
int max_errors_per_run
Max errors to store per run (default: 5)
bool print_all_runs
Print all run results (default: only errors)
int num_runs
Number of runs to execute.
Multi-run test configuration.
fl::vector< LEDError > errors
First few errors (up to 10)
int total_leds
Total LEDs tested.
bool passed
True if no errors.
int run_number
Run iteration number (1-based)
int totalBytes
Total bytes compared (num_leds * 3)
int mismatchedBytes
Number of individual bytes that differ.
int lsbOnlyErrors
Bytes where (expected ^ actual) == 0x01.
int mismatches
Number of LED mismatches.