145 {
146
147 if (
halt.check())
return;
148
149 FL_WARN(
"\n╔════════════════════════════════════════════════════════════════╗");
151 FL_WARN(
"╚════════════════════════════════════════════════════════════════╝\n");
152
153
156 config.hz = 1000000;
157 config.signal_range_min_ns = 100;
158 config.signal_range_max_ns = 10000000;
159 config.start_low = true;
160
161
162 FL_WARN(
"[TEST] Initializing RX channel and executing toggles...");
164 rx_channel->setConfig(config);
166
167
170
172 FL_ERROR(
"Timeout waiting for data");
174 FL_ERROR(
"Buffer overflow during capture");
175 } else {
176 FL_WARN(
"[TEST] ✓ Data captured successfully");
177
178
180 size_t edge_count = rx_channel->getRawEdgeTimes(edge_buffer);
181
182
183 const uint32_t TOLERANCE_PERCENT = 15;
185 }
186
187 FL_WARN(
"\n╔════════════════════════════════════════════════════════════════╗");
188 FL_WARN(
"║ TEST COMPLETE - Waiting 5 seconds...");
189 FL_WARN(
"╚════════════════════════════════════════════════════════════════╝\n");
190
192}
const fl::RxBackend RX_BACKEND
fl::shared_ptr< fl::RxChannel > & rxChannelSingleton()
const fl::array< PinToggle, 6 > TEST_PATTERN
A fixed-size array implementation similar to std::array.
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...
@ TIMEOUT
Operation timed out.
@ BUFFER_OVERFLOW
Buffer overflow.
void executeToggles(fl::RxChannel &rx, fl::span< const PinToggle > toggles, int pin_tx, uint32_t wait_ms)
Execute pin toggles and initialize RX channel for capture.
bool validateEdgeTiming(fl::span< const fl::EdgeTime > edges, size_t edge_count, fl::span< const PinToggle > expected_pattern, uint32_t tolerance_percent)
Validate captured edge timings against expected pattern.