25#if defined(SUPPORT_OutputProtocol_TLS3001) && defined (ARDUINO_ARCH_ESP32)
31class c_OutputTLS3001Rmt :
public c_OutputTLS3001
37 virtual ~c_OutputTLS3001Rmt ();
41 bool SetConfig (ArduinoJson::JsonObject& jsonConfig);
44 void GetStatus (ArduinoJson::JsonObject& jsonStatus);
45 void SetOutputBufferSize (uint32_t NumChannelsAvailable);
46 void PauseOutput(
bool State);
47 bool ISR_GetNextBitToSend (rmt_item32_t &DataToSend);
48 void StartNewDataFrame();
54 friend class fsm_RMT_state_SendSync;
55 friend class fsm_RMT_state_SendReset;
56 friend class fsm_RMT_state_SendDataStart;
57 friend class fsm_RMT_state_SendData;
58 friend class fsm_RMT_state_SendDataIdle;
59 friend class fsm_RMT_state;
60 OutputTLS3001RmtFsmStates_t CurrentFsmState = OutputTLS3001RmtFsmStates_t::TLS3001DataIdle;
62 fsm_RMT_state_SendSync fsm_RMT_state_SendSync_imp;
63 fsm_RMT_state_SendReset fsm_RMT_state_SendReset_imp;
64 fsm_RMT_state_SendDataStart fsm_RMT_state_SendDataStart_imp;
65 fsm_RMT_state_SendData fsm_RMT_state_SendData_imp;
66 fsm_RMT_state_SendDataIdle fsm_RMT_state_SendDataIdle_imp;
68 rmt_item32_t RmtResetOneMsDelay;
69 uint32_t NumResetDelayBits = 1;
71 rmt_item32_t RmtSyncIdle;
72 uint32_t NumSyncIdleBits = 1;
74 rmt_item32_t RmtIfgBit;
75 uint32_t NumIfgBitsPerFrame = 1;
77 #define TLS3001_PIXEL_RMT_TICKS_BIT uint16_t(TLS3001_PIXEL_NS_BIT / RMT_TickLengthNS)
78 const rmt_item32_t RmtOneBit = {TLS3001_PIXEL_RMT_TICKS_BIT / 2, 1, TLS3001_PIXEL_RMT_TICKS_BIT / 2, 0};
79 const rmt_item32_t RmtZeroBit = {TLS3001_PIXEL_RMT_TICKS_BIT / 2, 0, TLS3001_PIXEL_RMT_TICKS_BIT / 2, 1};
81 bool SendingData =
false;
86 #ifdef USE_TLS3001RMT_COUNTERS
87 #define INCREMENT_TLS3001_COUNTER(c) (++TLS3001RMTCounters.c)
88 #define INCREMENT_TLS3001_FSM_COUNTER(c) (++Parent->TLS3001RMTCounters.c)
89 struct TLS3001RMTCounters_t
91 uint32_t FrameStarted = 0;
92 uint32_t FrameErrorNotFinished = 0;
93 uint32_t MinFrameLenMs = uint32_t(-1);
94 uint32_t MaxFrameLenMs = 0;
95 uint32_t MinPollTimeMs = uint32_t(-1);
96 uint32_t MaxPollTimeMs = 0;
97 uint32_t PollCounter = 0;
100 uint32_t SendReset_Init = 0;
101 uint32_t SendReset_GetNextBitToSend = 0;
102 uint32_t SendSync_Init = 0;
103 uint32_t SendSync_GetNextBitToSend = 0;
104 uint32_t SendDataStart_Init = 0;
105 uint32_t SendDataStart_GetNextBitToSend = 0;
106 uint32_t SendData_Init = 0;
107 uint32_t SendData_GetNextBitToSend = 0;
108 uint32_t SendData_RefreshData = 0;
109 uint32_t SendDataIdle_Init = 0;
110 uint32_t SendDataIdle_GetNextBitToSend = 0;
111 } TLS3001RMTCounters;
114 #define INCREMENT_TLS3001_COUNTER(c)
115 #define INCREMENT_TLS3001_FSM_COUNTER(c)
e_OutputProtocolType
Definition OutputMgr.hpp:78
void SetConfig(const char *DataString)
Definition main.cpp:329
Definition OutputMgrPortDefs.hpp:90