-
Notifications
You must be signed in to change notification settings - Fork 40
/
setting.h
294 lines (273 loc) · 9.69 KB
/
setting.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
// Проект центра открытого проектирования у Счастливчика https://LuckyCenter.ru
#ifndef _SETTING_h
#define _SETTING_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include "user_config.h"
#include "pwm_out.h"
#include <Ticker.h>
#include <Adafruit_PWMServoDriver.h>
#include <ESP8266WebServer.h>
#include <WiFiClient.h>
#include <EEPROM.h>
#include <PID_v1.h>
struct TPL_Str {
bool dsMember[8];
byte dsPriority[8];
float dsAllertValue[8];
bool dsDelta[8];
bool dsCutoff[8];
bool pwmMember[8];
bool adcMember[4];
};
struct DS_present_Str {
byte addrSearch[8]; // серийный номер датчика для поиска
byte num; // порядковый номер датчика
byte pos; // номер датчика в массиве
};
struct DS_Str {
//byte addrSearch[8]; // серийный номер датчика для поиска
byte addr[8]; // серийный номер датчика
byte num; // порядковый номер датчика
bool member; // участвует в выводе или нет
byte timeErr; // секунды ошибочного опроса (не совпала CRC)
float data; // значение температуры
float dataT[4]; // значение температуры для усреднения и исключения глюков опроса
uint16_t color; // цвет для графика
bool delta; // признак что выставляем дельту для уставки
bool cutoff; // признак что выставляем значение температуры для уставки
float allertValue; // значение требуемой температуры (расчитанное)
float allertValueIn; // значение введенное пользователем
bool allert; // сигнализация достижения требуемой температуры
byte priority; // приоритет
char name[60]; // название назначенное пользователем
};
struct BMP_Str {
float data; // значение атмосферного давления
float dataP[4]; // значение температуры для усреднения и исключения глюков опроса
float dataStart; // значение атмосферного давления для коррекции дельты
bool status; // наличие датчика
uint16_t color; // цвет для графика
bool member; // участвует в выводе или нет
};
struct OUT_Pwm {
uint16_t data; // значение PWM или ON/OFF
bool member; // используется или нет
bool allert; // для индикации
bool invert; // для клапанов - НО или НЗ
char name[60]; // название назначенное пользователем
};
struct IN_Adc {
uint16_t data; // данные АЦП
bool member; // используется или нет
bool allert; // сигнализация аварии по датчику
char name[60]; // название назначенное пользователем
};
struct PR_Type {
uint8_t allow; // какой процесс (дистилляция, ректификация или затирание) включен
uint8_t step; // номер шага алгоритма
unsigned long timeStep; // время шага алгоритма в секундах
unsigned long timeStart; // время старта процесса
uint8_t number; // тип (номер) алгоритма для ректификации или затирания
};
struct PR_Mashing {
uint16_t time;
float temperature;
uint8_t step;
bool stop;
};
struct PR_Power {
bool heaterStatus;
uint8_t heaterPower;
uint8_t heaterPowerCorr;
uint8_t inPowerHigh;
uint8_t inPowerLow;
};
extern struct TPL_Str tpl2web;
extern struct DS_present_Str temperatureSensorPresent[DS_Cnt];
extern struct DS_Str temperatureSensor[DS_Cnt];
extern struct BMP_Str pressureSensor;
extern struct OUT_Pwm pwmOut[PWM_Cnt];
extern struct IN_Adc adcIn[ADC_Cnt];
extern struct PR_Type processMode;
extern struct PR_Mashing processMashing[5];
extern struct PR_Power power;
extern Ticker tickerSet;
#ifdef power_PWM
extern Ticker tickerSetPower;
#endif
extern Adafruit_PWMServoDriver pwm;
// Web интерфейс для устройства
extern ESP8266WebServer HTTP;
extern WiFiClient client;
//#ifdef set_MQTT
//extern PubSubClient mqttclient;
//#endif
extern PID myPID;
extern uint16_t percentCorrectSquare[];
extern String curVersion;
extern uint16_t versionForWeb;
/*
#ifdef set_MQTT
extern uint8_t numDataSendMQTT;
extern unsigned long timeDelaySendDevicesMQTT;
extern unsigned long timeDelaySendMQTT;
extern char mqttServer[];
extern String clientId;
extern String clientPass;
extern char publishTopicData[];
extern char subscribeTopicDistill[];
extern char subscribeTopicStart[];
extern char subscribeTopicSet[];
extern char subscribeTopicDevices[];
#endif
*/
// Определяем переменные wifi
extern String _ssid;
extern String _password;
extern String _ssidAP;
extern String _ssidAPconnect;
extern String _passwordAP;
extern String SSDP_Name;
//extern char NBNS_Name[60];
extern String addrMacMod;
extern int myNetworkNum;
extern bool touchInvert;
extern bool tftInvert;
extern String jsonConfig;
extern int port;
extern int timezone;
extern uint8_t StateDsReset;
extern byte DS_Count;
extern int temp_min;
extern int temp_max;
extern unsigned long timeSecDsRead;
extern byte byteDsRead;
extern byte DS_Cube;
extern byte DS_Tube;
extern byte DS_Out;
extern byte DS_Def;
extern byte DS_Res1;
extern byte DS_Res2;
extern byte DS_Res3;
extern byte DS_Res4;
extern unsigned long timePauseOff;
extern unsigned long timeAllertInterval;
extern unsigned long displayTimeInterval;
extern unsigned long adcTimeRead;
extern unsigned long sdTimeWriteInterval;
extern uint16_t graphOutInterval;
extern uint16_t scaleCount;
extern byte tempBigOut;
extern byte tempBigOutOld;
extern bool reSetTemperatureStartPressure;
//extern bool settingColumnSet;
extern float deltaBoilTube;
extern float settingBoilTube;
extern float settingColumn;
extern float temperatureStartPressure;
extern float settingColumnShow;
extern float temperatureAlcoholBoil;
extern float temperatureCubeAlcohol;
extern uint8_t counterStartStop;
extern uint8_t sensorNumberRead;
extern unsigned long timeSec;
extern bool settingAlarm;
extern bool headValve;
extern unsigned long headValveOn;
extern unsigned long headValveOff;
extern byte touchArea;
extern byte touchScreen;
extern byte touchScreenDV;
extern boolean outHeater;
extern uint16_t Voltage;
extern uint16_t servoOld;
extern int modeWiFi;
extern uint8_t DefCubOut;
extern int16_t touch_x;
extern int16_t touch_y;
extern bool touch_in;
extern bool sdStatus;
extern uint8_t numSenseMashBrew;
extern double Setpoint, Input, Output;
extern double Kp, Ki, Kd;
extern double setKp, setKi, setKd;
extern float setTempForPID;
extern int WindowSize;
extern unsigned long windowStartTime, stepTime;
extern unsigned long timeStopDistLevelErr;
extern String processInfo;
extern String nameProcessStep;
extern String name_Process_Step;
extern String commandWriteSD;
extern bool startWriteSD;
extern bool endWriteSD;
extern bool commandSD_en;
extern bool CH_all;
extern bool CH_up1;
extern bool CH_up2;
extern bool CH_up3;
extern bool CH_up4;
extern bool CH1;
extern bool CH2;
extern bool CH3;
extern bool CH4;
extern unsigned long timeSetHighVoltage;
// для импульсного режима руления клапанам
// для web
extern uint8_t headTimeCycle;
extern float headtimeOn;
extern uint8_t bodyTimeCycle;
extern float bodytimeOn;
extern uint8_t decline;
extern unsigned long bodyTimeOffCount;
// для управления шаровым краном
extern uint8_t headSteamPercent; // % открытия шарового крана на отборе голов по пару
extern uint8_t bodyPrimaPercentStart; // % открытия шарового крана в начале отбора тела
extern uint8_t bodyPrimaPercentStop; // % открытия шарового крана в конце отбора тела
extern uint8_t bodyPrimaDecline; // % уменьшения открытия шарового крана по старт/стопу
// переход на следующий шаг
extern uint8_t stepNext;
// подтверждение обмена в web
extern uint8_t answer;
extern uint8_t timeStabilizationReflux;
extern uint8_t timeBoilTubeSetReflux;
extern bool stopInfoOutScreen;
// Для датчиков безопасности
extern uint8_t numOkStop;
extern uint8_t numCrashStop;
extern bool errA;
extern bool errT;
extern unsigned long timePauseErrA;
extern unsigned long timePauseErrT;
extern bool alertEnable;
extern bool alertLevelEnable;
extern uint16_t BuzzerVolumeLevel;
extern uint8_t powerType;
extern uint8_t powerSendOld;
extern uint8_t TX_BUF_IO_Power[8];
extern uint8_t RX_BUF_IO[8];
extern uint8_t RXio_cnt;
extern unsigned long RX_Pause;
extern unsigned long Tx_WiFi_Pause;
extern uint8_t powerSendOldWiFi;
extern bool powerWiFiPresent;
//extern unsigned long timeScaleGet;
extern uint16_t scaleWiFiOunces;
extern uint16_t scaleWiFiSpeed;
//extern bool scaleWiFiPresent;
extern uint8_t DistillationTransitionTemperature;
extern uint8_t RefluxTransitionTemperature;
extern uint8_t TapCorrectionWeb;
extern float TapCorrection;
extern unsigned long timeSetWChead;
extern float temperatureOld_DS_Out;
extern float temperatureOld_DS_Def;
extern byte touchRead;
extern bool RU;
//extern bool updateSet;
extern uint8_t timeScaleResponse;
#endif