1129 {
1131 ss << "\n========================================\n";
1132 ss <<
"Testing (LEGACY API): " << config.
timing_name <<
"\n";
1139 ss <<
" Lane " << i <<
": pin=" << config.
tx_configs[i].getDataPin()
1141 }
1142 ss << "========================================";
1144
1145
1151
1153 if (!proxy->valid()) {
1154 FL_ERROR(
"Legacy proxy invalid for lane " << i <<
" (pin " << pin <<
" out of range 0-8)");
1155 return;
1156 }
1158 }
1159
1161
1162
1165 }
1168 FL_ERROR(
"[LEGACY] TX wait timeout - driver may be stalled");
1169 return;
1170 }
1171
1173
1174
1175 int total = 0;
1176 int passed = 0;
1177
1179 multi_config.
num_runs = (num_runs_per_pattern > 0) ? num_runs_per_pattern : 1;
1183
1184
1186
1187 for (int pattern_id = 0; pattern_id < 4; pattern_id++) {
1188
1193 pattern_id
1194 );
1195 }
1197 }
1198
1199 out_show_duration_ms +=
millis() - show_start_ms;
1200
1201 driver_total += total;
1202 driver_passed += passed;
1203
1204
1205}
const char * getBitPatternName(int pattern_id)
void runMultiTest(const char *test_name, fl::AutoResearchConfig &config, const fl::MultiRunConfig &multi_config, int &total, int &passed, fl::vector< fl::RunResult > *out_results)
void setMixedBitPattern(CRGB *leds, size_t count, int pattern_id)
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
const T * data() const FL_NOEXCEPT
constexpr fl::size size() const FL_NOEXCEPT
string str() const FL_NOEXCEPT
void push_back(const T &value) FL_NOEXCEPT
void fill_solid(CRGB *targetArray, int numToFill, const CRGB &color) FL_NOEXCEPT
Fill a range of LEDs with a solid color.
constexpr remove_reference< T >::type && move(T &&t) FL_NOEXCEPT
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
fl::enable_if<!fl::is_array< T >::value, unique_ptr< T > >::type make_unique(Args &&... args) FL_NOEXCEPT
void delay(u32 ms, bool run_async=true) FL_NOEXCEPT
Public delay wrapper that keeps bare Arduino delay() preferred after using fl::delay; while still all...
const fl::ChipsetTimingConfig & timing
Chipset timing configuration to test.
const char * timing_name
Timing name for logging (e.g., "WS2812B-V5")
fl::span< fl::ChannelConfig > tx_configs
TX channel configurations to test (mutable for LED manipulation)
@ Black
<div style='background:#000000;width:4em;height:4em;'></div>
u32 t1_ns
T0H: High time for bit 0 (nanoseconds)
u32 t2_ns
T1H-T0H: Additional high time for bit 1 (nanoseconds)
u32 reset_us
Reset/latch time (microseconds)
u32 t3_ns
T0L: Low tail duration (nanoseconds)
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.