38# define NUM_UARTS UART_LAST
46 #ifdef ARDUINO_ARCH_ESP8266
47 #define OM_MAX_NUM_CHANNELS (1200 * 3)
49 #define OM_MAX_NUM_CHANNELS (3000 * 3)
52 c_OutputI2S OutputI2S;
63 void GetConfig (
byte * Response, uint32_t maxlen);
66 void SetConfig (ArduinoJson::JsonDocument & NewConfig);
74 void WriteChannelData (uint32_t StartChannelId, uint32_t ChannelCount, uint8_t * pData);
75 void ReadChannelData (uint32_t StartChannelId, uint32_t ChannelCount, uint8_t *pTargetData);
78 void RelayUpdate (uint8_t RelayId, String & NewValue, String & Response);
82 c_OutputI2S * GetI2sDriver () {
return &OutputI2S;}
90 #ifdef SUPPORT_OutputProtocol_WS2811
91 OutputProtocol_WS2811 = 1,
94 #ifdef SUPPORT_OutputProtocol_GECE
95 OutputProtocol_GECE = 2,
98 #ifdef SUPPORT_OutputProtocol_DMX
99 OutputProtocol_DMX = 3,
102 #ifdef SUPPORT_OutputProtocol_Renard
103 OutputProtocol_Renard = 4,
106 #ifdef SUPPORT_OutputProtocol_Serial
107 OutputProtocol_Serial = 5,
110 #ifdef SUPPORT_OutputProtocol_Relay
111 OutputProtocol_Relay = 6,
114 #ifdef SUPPORT_OutputProtocol_Servo_PCA9685
115 OutputProtocol_Servo_PCA9685 = 7,
118 #ifdef SUPPORT_OutputProtocol_UCS1903
119 OutputProtocol_UCS1903 = 8,
122 #ifdef SUPPORT_OutputProtocol_TM1814
123 OutputProtocol_TM1814 = 9,
126 #ifdef SUPPORT_OutputProtocol_WS2801
127 OutputProtocol_WS2801 = 10,
130 #ifdef SUPPORT_OutputProtocol_APA102
131 OutputProtocol_APA102 = 11,
134 #ifdef SUPPORT_OutputProtocol_GS8208
135 OutputProtocol_GS8208 = 12,
138 #ifdef SUPPORT_OutputProtocol_UCS8903
139 OutputProtocol_UCS8903 = 13,
142 #ifdef SUPPORT_OutputProtocol_TLS3001
143 OutputProtocol_TLS3001 = 14,
146 #ifdef SUPPORT_OutputProtocol_GRINCH
147 OutputProtocol_GRINCH = 15,
150 #ifdef SUPPORT_OutputProtocol_FireGod
151 OutputProtocol_FireGod = 16,
167 #define NO_CONFIG_NEEDED time_t(-1)
188 #ifndef DEFAULT_CONSOLE_TX_GPIO
189 #define DEFAULT_CONSOLE_TX_GPIO gpio_num_t::GPIO_NUM_1
190 #define DEFAULT_CONSOLE_RX_GPIO gpio_num_t::GPIO_NUM_3
196#if defined(ARDUINO_ARCH_ESP32)
197 TaskHandle_t myTaskHandle = NULL;
c_FileMgr FileMgr
Definition FileMgr.cpp:2531
#define OM_MAX_NUM_CHANNELS
Definition OutputMgr.hpp:49
#define DEFAULT_CONSOLE_RX_GPIO
Definition OutputMgr.hpp:190
#define NO_CONFIG_NEEDED
Definition OutputMgr.hpp:167
#define DEFAULT_CONSOLE_TX_GPIO
Definition OutputMgr.hpp:189
c_OutputMgr OutputMgr
Definition OutputMgr.cpp:1832
uint8_t OM_PortId_t
Definition OutputMgrPortDefs.hpp:71
void DeleteFlashFile(String FileName)
Definition FileMgr.cpp:646
Definition OutputCommon.hpp:32
Definition OutputMgr.hpp:44
uint32_t NumberOfOutputProtocols
Definition OutputMgr.hpp:159
uint8_t * pOutputBuffer
Definition OutputMgr.hpp:185
void GetDriverName(String &Name)
Definition OutputMgr.hpp:73
void LoadConfig()
Read the current configuration data from nvram.
Definition OutputMgr.cpp:1211
void CreateJsonConfig(JsonObject &jsonConfig)
Definition OutputMgr.cpp:400
gpio_num_t ConsoleRxGpio
Definition OutputMgr.hpp:194
void UpdateDisplayBufferReferences(void)
Definition OutputMgr.cpp:1575
bool ProcessJsonConfig(JsonDocument &jsonConfig)
Definition OutputMgr.cpp:1341
c_OutputMgr()
< Start up the driver and put it into a safe mode
Definition OutputMgr.cpp:248
void ClearStatistics(void)
Definition OutputMgr.cpp:627
e_OutputProtocolType
Definition OutputMgr.hpp:87
@ OutputProtocol_Disabled
Definition OutputMgr.hpp:88
@ OutputProtocol_Last
Definition OutputMgr.hpp:157
void GetConfig(byte *Response, uint32_t maxlen)
Definition OutputMgr.cpp:594
virtual ~c_OutputMgr()
< deallocate any resources and put the output channels into a safe state
Definition OutputMgr.cpp:303
uint32_t UsedBufferSize
Definition OutputMgr.hpp:186
void GetStatus(JsonObject &jsonStatus)
Definition OutputMgr.cpp:605
uint8_t NumOutputPorts
Definition OutputMgr.hpp:164
void SetConfig(const char *NewConfig)
Save the current configuration data to nvram.
Definition OutputMgr.cpp:1446
void InstantiateNewOutputChannel(uint32_t PortIndex, e_OutputProtocolType NewChannelType, bool StartDriver=true)
Definition OutputMgr.cpp:655
void DeleteConfig()
Definition OutputMgr.hpp:71
IRAM_ATTR uint8_t * ISR_GetBufferAddress()
Get the address of the buffer into which the E1.31 handler will stuff data.
Definition OutputMgr.hpp:68
void ClearBuffer()
Definition OutputMgr.cpp:1821
bool BuildingNewConfig
Definition OutputMgr.hpp:172
time_t ConfigLoadNeeded
Definition OutputMgr.hpp:169
bool SetPortDefnitionDefaults(uint32_t PortIndex, e_OutputProtocolType TargetProtocolType)
Definition OutputMgr.cpp:1118
uint8_t GetNumPorts()
Definition OutputMgr.hpp:80
bool ConfigInProgress
Definition OutputMgr.hpp:170
void Begin()
set up the operating environment based on the current config (or defaults)
Definition OutputMgr.cpp:321
void SetSerialUart()
Definition OutputMgr.cpp:1495
uint32_t GetBufferUsedSize()
Get the size (in intensities) of the buffer into which the E1.31 handler will stuff data.
Definition OutputMgr.hpp:69
void PauseOutputs(bool NewState)
Definition OutputMgr.cpp:1678
uint32_t GetBufferSize()
Get the size (in intensities) of the buffer into which the E1.31 handler will stuff data.
Definition OutputMgr.hpp:70
void WriteChannelData(uint32_t StartChannelId, uint32_t ChannelCount, uint8_t *pData)
Definition OutputMgr.cpp:1695
gpio_num_t ConsoleTxGpio
Definition OutputMgr.hpp:193
void ScheduleLoadConfig()
Definition OutputMgr.hpp:61
void CreateNewConfig()
Definition OutputMgr.cpp:481
bool FindJsonChannelConfig(JsonDocument &jsonConfig, OM_PortId_t PortId, JsonObject &ChanConfig)
Definition OutputMgr.cpp:1250
void ReadChannelData(uint32_t StartChannelId, uint32_t ChannelCount, uint8_t *pTargetData)
Definition OutputMgr.cpp:1760
String ConfigFileName
Definition OutputMgr.hpp:183
void RelayUpdate(uint8_t RelayId, String &NewValue, String &Response)
Definition OutputMgr.cpp:1647
void Poll()
Call from loop(), renders output data.
Definition OutputMgr.cpp:1541
bool HasBeenInitialized
Definition OutputMgr.hpp:168
bool OutputIsPaused
Definition OutputMgr.hpp:171