FastLED 3.9.15
Loading...
Searching...
No Matches
AutoResearchParlioStream.h File Reference

Detailed Description

PARLIO ISR-streaming functional validation (#2548 deep-dive follow-up).

Validates the engine's ISR-chunked streaming path on real hardware:

  • Initializes PARLIO with 16 lanes (forces the engine's 16-lane Wave8 branch, which dispatches to wave8Transpose_16x4_bf1_pipe4 shipped in #2559).
  • Fills with a known pattern.
  • Calls FastLED.show() — which goes through ParlioEngine's 3-buffer ring
    • txDoneCallback ISR streaming + BF1 encode.
  • Measures wall-clock time for show()+wait() to complete across N back- to-back frames.

Pass criterion: every show()+wait() completes within timeoutMs. Catches hangs / stalls in the streaming engine.

Does NOT validate transmitted byte correctness — that's covered by the host bit-exactness test in tests/fl/channels/wave8.cpp added in #2559, and by the RX-loopback path in the existing autoresearch CLI when run with a jumper wire.

Invoked via the parlioStreamValidate JSON-RPC handler registered in AutoResearchRemote.cpp.

Definition in file AutoResearchParlioStream.h.

#include "FastLED.h"
#include "fl/chipsets/chipset_timing_config.h"
#include "fl/chipsets/led_timing.h"
#include "fl/stl/int.h"
#include "fl/stl/span.h"
#include "fl/stl/vector.h"
+ Include dependency graph for AutoResearchParlioStream.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  autoresearch::parlio_stream::ValidateResult
 

Namespaces

namespace  autoresearch
 
namespace  autoresearch::parlio_stream
 

Functions

bool autoresearch::parlio_stream::isFastLedOutputPinValid (int pin)
 
ValidateResult autoresearch::parlio_stream::validateParlioStreaming (int base_tx_pin, int num_lanes, int num_leds, int iterations, uint32_t timeout_ms, const int *tx_pins=nullptr)
 Run the PARLIO streaming functional test.
 

Variables

constexpr int autoresearch::parlio_stream::kMaxIterations = 16
 
constexpr int autoresearch::parlio_stream::kMaxLanes = 16
 

Class Documentation

◆ autoresearch::parlio_stream::ValidateResult

struct autoresearch::parlio_stream::ValidateResult
Class Members
int base_tx_pin
uint32_t bytes_total
uint32_t bytes_transmitted
bool channels_ok
bool completed
bool explicit_tx_pins
int failed_iter
bool hardware_idle
int iterations
int lanes
int leds_per_lane
uint32_t per_iter_show_us[kMaxIterations]
uint32_t per_iter_us[kMaxIterations]
uint32_t per_iter_wait_us[kMaxIterations]
uint32_t ring_count
bool ring_error
uint32_t steady_avg_show_us
uint32_t steady_avg_us
uint32_t steady_avg_wait_us
uint32_t timeout_ms
uint32_t tx_done_count
int tx_pins[kMaxLanes]
uint32_t underrun_count
uint32_t worker_isr_count