25#if defined(SUPPORT_OutputProtocol_TLS3001) && defined (ARDUINO_ARCH_ESP32)
28class c_OutputTLS3001Rmt;
30enum OutputTLS3001RmtFsmStates_t
48 virtual ~fsm_RMT_state() {}
49 void SetParent(c_OutputTLS3001Rmt *_Parent) {Parent = _Parent;};
52 c_OutputTLS3001Rmt *Parent =
nullptr;
53 uint32_t NumberOfOneBitsToSend = 0;
54 uint32_t CommandCodeMask = 0;
55 uint32_t NumberOfZeroBitsToSend = 0;
56 uint32_t NumberOfIdleBitsToSend = 0;
61class fsm_RMT_state_SendSync :
public fsm_RMT_state
64 fsm_RMT_state_SendSync() {}
65 virtual ~fsm_RMT_state_SendSync() {}
66 IRAM_ATTR
void Init();
67 IRAM_ATTR
bool ISR_GetNextBitToSend (uint32_t &DataToSend);
68 virtual void GetDriverName (String& Name) { Name =
"TLS3001SYN"; }
70 const uint8_t CommandCode = 0b0001;
74class fsm_RMT_state_SendReset :
public fsm_RMT_state
77 fsm_RMT_state_SendReset() {}
78 virtual ~fsm_RMT_state_SendReset() {}
79 IRAM_ATTR
void Init();
80 IRAM_ATTR
bool ISR_GetNextBitToSend (uint32_t &DataToSend);
81 virtual void GetDriverName (String& Name) { Name =
"TLS3001RST"; }
83 const uint8_t CommandCode = 0b0100;
87class fsm_RMT_state_SendDataStart :
public fsm_RMT_state
90 fsm_RMT_state_SendDataStart() {}
91 virtual ~fsm_RMT_state_SendDataStart() {}
92 IRAM_ATTR
void Init();
93 IRAM_ATTR
bool ISR_GetNextBitToSend (uint32_t &DataToSend);
94 virtual void GetDriverName (String& Name) { Name =
"TLS3001STR"; }
96 const uint8_t CommandCode = 0b0010;
101class fsm_RMT_state_SendData :
public fsm_RMT_state
104 fsm_RMT_state_SendData() {}
105 virtual ~fsm_RMT_state_SendData() {}
106 IRAM_ATTR
void Init();
107 IRAM_ATTR
bool ISR_GetNextBitToSend (uint32_t &DataToSend);
108 IRAM_ATTR
bool ISR_RefreshData ();
109 virtual void GetDriverName (String& Name) { Name =
"TLS3001DAT"; }
111 uint32_t DataPattern = 0;
112 uint32_t DataPatternMask = 0;
113 bool MoreDataAvailable =
false;
114 uint32_t NumPostDataBitsToSend = 0;
118class fsm_RMT_state_SendDataIdle :
public fsm_RMT_state
121 fsm_RMT_state_SendDataIdle() {}
122 virtual ~fsm_RMT_state_SendDataIdle() {}
123 IRAM_ATTR
void Init();
124 IRAM_ATTR
bool ISR_GetNextBitToSend (uint32_t &DataToSend);
125 virtual void GetDriverName (String& Name) { Name =
"TLS3001IDL"; }
void GetDriverName(String &Name)
Definition main.cpp:121