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

Detailed Description

Common RX interfaces and shared types.

Definition in file rx.h.

#include "fl/stl/stdint.h"
#include "fl/stl/optional.h"
#include "fl/stl/result.h"
#include "fl/stl/cstddef.h"
#include "fl/stl/noexcept.h"
#include "fl/stl/shared_ptr.h"
#include "fl/stl/span.h"
+ Include dependency graph for rx.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  fl::ChipsetTiming4Phase
 4-phase RX timing thresholds for chipset detection More...
 
struct  fl::EdgeRange
 Edge range specification for getRawEdgeTimes() debugging. More...
 
struct  fl::EdgeTime
 Universal edge timing representation (platform-agnostic) More...
 
struct  fl::RxConfig
 Configuration for RX device initialization. More...
 
class  fl::RxDevice
 Common interface for RX devices. More...
 

Namespaces

namespace  fl
 Base definition for an LED controller.
 

Enumerations

enum class  fl::DecodeError : u8 { fl::OK = 0 , fl::HIGH_ERROR_RATE , fl::BUFFER_OVERFLOW , fl::INVALID_ARGUMENT }
 Error codes for RX decoder operations. More...
 
enum class  fl::RxDeviceType : u8 {
  fl::PLATFORM_DEFAULT = 0 , fl::ISR = 1 , fl::RMT = 2 , fl::FLEXPWM = 3 ,
  fl::FLEXIO = 4 , fl::LPC_SCT_CAPTURE = 5
}
 RX device type enumeration. More...
 
enum class  fl::RxWaitResult : u8 { fl::SUCCESS = 0 , fl::TIMEOUT = 1 , fl::BUFFER_OVERFLOW = 2 }
 Result codes for RX wait() operations. More...
 

Functions

ChipsetTiming4Phase fl::make4PhaseTiming (const ChipsetTiming &timing_3phase, u32 tolerance_ns=150) FL_NOEXCEPT
 Create 4-phase RX timing from 3-phase chipset timing with tolerance.
 
template<>
fl::shared_ptr< RxDevicefl::RxDevice::create< RxDeviceType::FLEXPWM > (int pin) FL_NOEXCEPT
 
template<>
fl::shared_ptr< RxDevicefl::RxDevice::create< RxDeviceType::ISR > (int pin) FL_NOEXCEPT
 
template<>
fl::shared_ptr< RxDevicefl::RxDevice::create< RxDeviceType::LPC_SCT_CAPTURE > (int pin) FL_NOEXCEPT
 
template<>
fl::shared_ptr< RxDevicefl::RxDevice::create< RxDeviceType::PLATFORM_DEFAULT > (int pin) FL_NOEXCEPT
 
template<>
fl::shared_ptr< RxDevicefl::RxDevice::create< RxDeviceType::RMT > (int pin) FL_NOEXCEPT
 
const char * fl::toString (RxDeviceType type) FL_NOEXCEPT
 Convert RxDeviceType to human-readable string.
 

Class Documentation

◆ fl::ChipsetTiming4Phase

struct fl::ChipsetTiming4Phase
Class Members
u32 gap_tolerance_ns = 0 Maximum gap duration to tolerate (0 = no gap tolerance, treat as error)

Pulses longer than reset_min_us but shorter than gap_tolerance_ns are skipped during decoding without triggering errors. Useful for PARLIO ~20us DMA gaps between frames.

u32 reset_min_us Reset pulse minimum duration (e.g., 50us)
u32 t0h_max_ns Bit 0 high time maximum (e.g., 550ns)
u32 t0h_min_ns Bit 0 high time minimum (e.g., 250ns)
u32 t0l_max_ns Bit 0 low time maximum (e.g., 1000ns)
u32 t0l_min_ns Bit 0 low time minimum (e.g., 700ns)
u32 t1h_max_ns Bit 1 high time maximum (e.g., 950ns)
u32 t1h_min_ns Bit 1 high time minimum (e.g., 650ns)
u32 t1l_max_ns Bit 1 low time maximum (e.g., 600ns)
u32 t1l_min_ns Bit 1 low time minimum (e.g., 300ns)