LightHub
main.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "options.h"
4 
5 #if defined(M5STACK)
6 #include <M5Stack.h>
7 #endif
8 
9 #if defined(__SAM3X8E__)
10 #include <DueFlashStorage.h>
11 #include <watchdog.h>
12 #include <ArduinoHttpClient.h>
13 #endif
14 
15 #if defined(ARDUINO_ARCH_AVR)
16 #include "HTTPClientAVR.h"
17 #include <avr/pgmspace.h>
18 #include <avr/wdt.h>
19 #include <EEPROM.h>
20 #endif
21 
22 #if defined(ARDUINO_ARCH_ESP8266)
23 #include <FS.h> //this needs to be first, or it all crashes and burns...
24 //#include "SPIFFS.h"
25 #include <ESP_EEPROM.h>
26 //#include <ESP8266HTTPClient.h>
27 //#include <ArduinoHttpClient.h>
28 //#include "HttpClient.h"
29 //#include <WiFiManager.h>
30 //#include <DNSServer.h>
31 //#include <ESP8266WebServer.h>
32 //#include <ESP8266WiFi.h>
33 #include <user_interface.h>
34 //#define Ethernet WiFi
35 #endif
36 
37 #if defined ARDUINO_ARCH_ESP32
38 #include <FS.h> //this needs to be first, or it all crashes and burns...
39 //#include "SPIFFS.h"
40 //#include <EEPROM.h>
41 #include <NRFFlashStorage.h>
42 //#include "HttpClient.h"
43 //#include <ArduinoHttpClient.h>
44 //#include <HTTPClient.h>
45 //#include <WiFi.h>
46 //#include <WiFiClient.h>
47 //#include <WiFiClientSecure.h>
48 //#include <WebServer.h>
49 //#include <WiFiManager.h>
50 //include <DNSServer.h>
51 
52 //#define Ethernet WiFi
53 #endif
54 
55 #ifdef NRF5
56 #include <NRFFlashStorage.h>
57 #include <ArduinoHttpClient.h>
58 #endif
59 
60 #ifdef ARDUINO_ARCH_STM32
61 #include "HttpClient.h"
62 //#include "UIPEthernet.h"
63 #include <NRFFlashStorage.h>
64 //#include <EEPROM.h>
65 #endif
66 
67 #include "streamlog.h"
68 extern Streamlog debugSerial;
69 extern Streamlog infoSerial;
70 extern Streamlog errorSerial;
71 
72 #if defined(__SAM3X8E__)
73 #define wdt_res() watchdogReset()
74 #define wdt_en()
75 #define wdt_dis()
76 #endif
77 
78 #ifndef DHCP_RETRY_INTERVAL
79 #define DHCP_RETRY_INTERVAL 60000
80 #endif
81 
82 #if defined(ESP8266)
83 #define wdt_en() wdt_enable(WDTO_8S)
84 #define wdt_dis() wdt_disable()
85 #define wdt_res() wdt_reset()
86 #endif
87 
88 #ifdef ARDUINO_ARCH_ESP32
89 #define wdt_res()
90 #define wdt_en()
91 #define wdt_dis()
92 #endif
93 
94 #if defined(NRF5)
95 #define wdt_res()
96 #define wdt_en()
97 #define wdt_dis()
98 #endif
99 
100 #if defined(ARDUINO_ARCH_STM32)
101 #define wdt_res()
102 #define wdt_en()
103 #define wdt_dis()
104 #endif
105 
106 //#if defined(ESP8266)
107 //#define wdt_res()
108 //#define wdt_en()
109 //#define wdt_dis()
110 //#endif
111 #if defined(ARDUINO_ARCH_AVR)
112 #if defined(WATCH_DOG_TICKER_DISABLE)
113 #define wdt_en() wdt_disable()
114 #define wdt_dis() wdt_disable()
115 #define wdt_res() wdt_disable()
116 #else
117 #define wdt_en() wdt_enable(WDTO_8S)
118 #define wdt_dis() wdt_disable()
119 #define wdt_res() wdt_reset()
120 #endif
121 #endif
122 
123 #ifndef OWIRE_DISABLE
124 #include "DallasTemperature.h"
125 #endif
126 
127 #ifdef _modbus
128 #include <ModbusMaster.h>
129 #endif
130 
131 //#ifndef DMX_DISABLE
132 //#include "FastLED.h"
133 //#endif
134 
135 #ifdef _owire
136 #include "owTerm.h"
137 #endif
138 
139 #if defined(_dmxin) || defined(_dmxout) || defined (_artnet)
140 #include "dmx.h"
141 #endif
142 
143 #ifdef WIFI_ENABLE
144 
145  #if defined(ARDUINO_ARCH_ESP32)
146  #include <WiFi.h>
147  #include <HTTPClient.h>
148  #include <WiFiClient.h>
149  #include <WiFiClientSecure.h>
150  #include <WiFiManager.h>
151  #include <WebServer.h>
152  #else
153  #include <ESP8266WiFi.h>
154  #include <ESP8266HTTPClient.h>
155  #include <WiFiManager.h>
156  #include <DNSServer.h>
157  #include <ESP8266WebServer.h>
158  #endif
159 #define Ethernet WiFi
160 #else //Wired connection
161  #ifdef Wiz5500
162  #include <Ethernet2.h>
163  #else
164  #ifdef ARDUINO_ARCH_STM32
165  #include "UIPEthernet.h"
166  #else
167  #include <Ethernet.h>
168  #endif
169  #endif
170 #endif
171 
172 
173 #ifdef _artnet
174 #include <Artnet.h>
175 #endif
176 
177 #ifdef SD_CARD_INSERTED
178 #include "sd_card_w5100.h"
179 #endif
180 
181 #include "Arduino.h"
182 #include "utils.h"
183 #include "textconst.h"
184 #include <PubSubClient.h>
185 #include <SPI.h>
186 #include <string.h>
187 #include "aJSON.h"
188 #include <Cmd.h>
189 #include "stdarg.h"
190 #include "item.h"
191 #include "inputs.h"
192 
193 #ifdef _artnet
194 extern Artnet *artnet;
195 #endif
196 
205 
206  DO_REINIT = -10,
207  REINIT = - 11,
209  RECONNECT = 13,
211  DO_NOTHING = -15
212 };
213 
214 typedef union {
215  uint32_t UID_Long[5];
216  uint8_t UID_Byte[20];
217 } UID;
218 
219 bool isNotRetainingStatus();
220 //void watchdogSetup(void);
221 
222 void mqttCallback(char *topic, byte *payload, unsigned int length);
223 
224 void printMACAddress();
225 
227 
228 #ifndef OWIRE_DISABLE
229 void Changed(int i, DeviceAddress addr, float currentTemp);
230 #endif
231 
232 void modbusIdle(void);
233 
234 void cmdFunctionHelp(int arg_cnt, char **args);
235 
236 void cmdFunctionKill(int arg_cnt, char **args);
237 
238 void applyConfig();
239 
240 void cmdFunctionLoad(int arg_cnt, char **args);
241 
243 
244 void cmdFunctionReq(int arg_cnt, char **args);
245 
246 int mqttConfigRequest(int arg_cnt, char **args);
247 
248 int mqttConfigResp(char *as);
249 
250 void cmdFunctionSave(int arg_cnt, char **args);
251 
252 void cmdFunctionSetMac(int arg_cnt, char **args);
253 
254 void cmdFunctionGet(int arg_cnt, char **args);
255 
256 void printBool(bool arg);
257 
258 void saveFlash(short n, char *str);
259 
260 int loadFlash(short n, char *str, short l=MAXFLASHSTR);
261 
262 void saveFlash(short n, IPAddress& ip);
263 
264 int ipLoadFromFlash(short n, IPAddress &ip);
265 
266 lan_status loadConfigFromHttp(int arg_cnt = 0, char **args = NULL);
267 
268 void preTransmission();
269 
270 void postTransmission();
271 
272 void setup_main();
273 
274 void loop_main();
275 
276 void owIdle(void);
277 
278 void modbusIdle(void);
279 
280 void inputLoop(void);
281 
282 void inputSetup(void);
283 
284 void pollingLoop(void);
285 
286 void thermoLoop(void);
287 
288 short thermoSetCurTemp(char *name, float t);
289 
290 void modbusIdle(void);
291 
292 void printConfigSummary();
293 
294 void setupCmdArduino();
295 
296 void setupMacAddress();
297 
299 
300 bool IsThermostat(const aJsonObject *item);
301 
302 bool disabledDisconnected(const aJsonObject *thermoExtensionArray, int thermoLatestCommand);
303 
304 void resetHard();
305 
306 void onInitialStateInitLAN();
307 
309 
310 void printCurentLanConfig();
311 
312 //void printFreeRam();
loadFlash
int loadFlash(short n, char *str, short l=MAXFLASHSTR)
Definition: main.cpp:1346
ip_ready_config_loaded_connecting_to_broker
void ip_ready_config_loaded_connecting_to_broker()
Definition: main.cpp:700
cmdFunctionKill
void cmdFunctionKill(int arg_cnt, char **args)
Definition: main.cpp:996
modbusIdle
void modbusIdle(void)
Definition: main.cpp:1938
owTerm.h
DO_NOTHING
@ DO_NOTHING
Definition: main.h:211
printMACAddress
void printMACAddress()
Definition: main.cpp:337
setupMacAddress
void setupMacAddress()
Definition: main.cpp:1802
REINIT
@ REINIT
Definition: main.h:207
RETAINING_COLLECTING
@ RETAINING_COLLECTING
Definition: main.h:203
IsThermostat
bool IsThermostat(const aJsonObject *item)
errorSerial
Streamlog errorSerial
mqttConfigRequest
int mqttConfigRequest(int arg_cnt, char **args)
Definition: main.cpp:1177
options.h
loadConfigFromHttp
lan_status loadConfigFromHttp(int arg_cnt=0, char **args=NULL)
Definition: main.cpp:1370
IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER
@ IP_READY_CONFIG_LOADED_CONNECTING_TO_BROKER
Definition: main.h:202
cmdFunctionGet
void cmdFunctionGet(int arg_cnt, char **args)
Definition: main.cpp:1325
printConfigSummary
void printConfigSummary()
Definition: main.cpp:1111
OPERATION
@ OPERATION
Definition: main.h:204
dmx.h
AWAITING_ADDRESS
@ AWAITING_ADDRESS
Definition: main.h:199
onInitialStateInitLAN
void onInitialStateInitLAN()
Definition: main.cpp:809
cmdFunctionLoad
void cmdFunctionLoad(int arg_cnt, char **args)
Definition: main.cpp:1140
printCurentLanConfig
void printCurentLanConfig()
Definition: main.cpp:988
textconst.h
printBool
void printBool(bool arg)
Definition: main.cpp:1331
cmdFunctionSave
void cmdFunctionSave(int arg_cnt, char **args)
Definition: main.cpp:1229
inputLoop
void inputLoop(void)
Definition: main.cpp:1963
lan_status
lan_status
Definition: main.h:197
utils.h
INITIAL_STATE
@ INITIAL_STATE
Definition: main.h:198
thermoSetCurTemp
short thermoSetCurTemp(char *name, float t)
Definition: main.cpp:2151
mqttCallback
void mqttCallback(char *topic, byte *payload, unsigned int length)
Definition: main.cpp:255
setup_main
void setup_main()
Definition: main.cpp:1550
setupCmdArduino
void setupCmdArduino()
Definition: main.cpp:1842
LIBS_INITIALIZED
@ LIBS_INITIALIZED
Definition: main.h:201
saveFlash
void saveFlash(short n, char *str)
Definition: main.cpp:1333
RECONNECT
@ RECONNECT
Definition: main.h:209
loop_main
void loop_main()
Definition: main.cpp:1860
streamlog.h
printFirmwareVersionAndBuildOptions
void printFirmwareVersionAndBuildOptions()
Definition: main.cpp:1634
preTransmission
void preTransmission()
Definition: main.cpp:1532
Changed
void Changed(int i, DeviceAddress addr, float currentTemp)
Definition: main.cpp:920
owIdle
void owIdle(void)
Definition: main.cpp:1912
cmdFunctionHelp
void cmdFunctionHelp(int arg_cnt, char **args)
Definition: main.cpp:972
infoSerial
Streamlog infoSerial
Streamlog
Definition: streamlog.h:23
applyConfig
void applyConfig()
Definition: main.cpp:1008
inputs.h
debugSerial
Streamlog debugSerial
lanLoop
lan_status lanLoop()
Definition: main.cpp:420
READ_RE_CONFIG
@ READ_RE_CONFIG
Definition: main.h:210
pollingLoop
void pollingLoop(void)
Definition: main.cpp:2032
UID
Definition: main.h:214
MAXFLASHSTR
#define MAXFLASHSTR
Definition: options.h:46
loadConfigFromEEPROM
int loadConfigFromEEPROM()
Definition: main.cpp:1146
isNotRetainingStatus
bool isNotRetainingStatus()
Definition: main.cpp:251
mqttConfigResp
int mqttConfigResp(char *as)
Definition: main.cpp:1194
cmdFunctionSetMac
void cmdFunctionSetMac(int arg_cnt, char **args)
Definition: main.cpp:1314
thermoLoop
void thermoLoop(void)
Definition: main.cpp:2092
resetHard
void resetHard()
Definition: main.cpp:905
disabledDisconnected
bool disabledDisconnected(const aJsonObject *thermoExtensionArray, int thermoLatestCommand)
postTransmission
void postTransmission()
Definition: main.cpp:1541
inputSetup
void inputSetup(void)
Definition: main.cpp:2016
cmdFunctionReq
void cmdFunctionReq(int arg_cnt, char **args)
Definition: main.cpp:1171
ipLoadFromFlash
int ipLoadFromFlash(short n, IPAddress &ip)
Definition: main.cpp:1365
HAVE_IP_ADDRESS
@ HAVE_IP_ADDRESS
Definition: main.h:200
DO_REINIT
@ DO_REINIT
Definition: main.h:206
item.h
DO_RECONNECT
@ DO_RECONNECT
Definition: main.h:208