...
|
...
|
@@ -3,18 +3,19 @@ |
3
|
3
|
#include <stdbool.h> |
4
|
4
|
#include "hvc.h" |
5
|
5
|
#include "heat.h" |
|
6
|
+#include "pump.h" |
6
|
7
|
#include "printx.h" |
7
|
8
|
|
8
|
9
|
#define TASK_NUMBER 32 |
9
|
10
|
#define T_INIT_THRESH 40 |
10
|
|
-#define T_STEP_THRESH 80 //OP is 86 |
11
|
|
-#define T_HOLD_THRESH 82 //OP is 88 |
|
11
|
+#define T_STEP_THRESH 80 |
|
12
|
+#define T_HOLD_THRESH 85 //OP is 88 |
12
|
13
|
#define INIT_HEAT_TIME 15 |
13
|
14
|
#define INIT_WAIT_TIME 15 |
14
|
15
|
#define STEP_HEAT_TIME 2 |
15
|
16
|
#define STEP_WAIT_TIME 8 //OP is 5 |
16
|
17
|
#define HOLD_HEAT_TIME 1 |
17
|
|
-#define HOLD_WAIT_TIME 8 //OP is 4 |
|
18
|
+#define HOLD_WAIT_TIME 8 |
18
|
19
|
#define HOLD_PUMP_HEAT_TIME 3 |
19
|
20
|
#define HOLD_PUMP_WAIT_TIME 5 |
20
|
21
|
|
...
|
...
|
@@ -22,19 +23,16 @@ |
22
|
23
|
//Globals |
23
|
24
|
time_t tTask; |
24
|
25
|
time_t tNow; |
25
|
|
-float tAct; //Lecture de la température du capteur |
|
26
|
+float tAct; |
26
|
27
|
bool task[TASK_NUMBER]; |
27
|
28
|
bool stop=false; |
28
|
|
-bool heat_ok=false; |
29
|
29
|
bool hold_heat=true; |
30
|
|
-bool pumpitup=false; //Lecture de l'état de la pompe |
31
|
30
|
bool eco_mode=false; |
32
|
31
|
bool stopHeat=false; |
33
|
|
- |
|
32
|
+bool heat_ok=false; |
34
|
33
|
|
35
|
34
|
void initProcessHeat(void) |
36
|
35
|
{ |
37
|
|
- //Initialisation du tableau task |
38
|
36
|
task[0]=true; |
39
|
37
|
for (int i_initH=1;i_initH<TASK_NUMBER;i_initH++) |
40
|
38
|
task[i_initH]=false; |
...
|
...
|
@@ -50,6 +48,21 @@ void stopAutoHeat(void) |
50
|
48
|
stopHeat = true; |
51
|
49
|
} |
52
|
50
|
|
|
51
|
+void setHeatOk(void) |
|
52
|
+{ |
|
53
|
+ heat_ok=true; |
|
54
|
+} |
|
55
|
+ |
|
56
|
+void resetHeatOk(void) |
|
57
|
+{ |
|
58
|
+ heat_ok=false; |
|
59
|
+} |
|
60
|
+ |
|
61
|
+bool isHeatOk(void) |
|
62
|
+{ |
|
63
|
+ return heat_ok; |
|
64
|
+} |
|
65
|
+ |
53
|
66
|
void* processHeat(void* arg) |
54
|
67
|
{ |
55
|
68
|
while(!stopHeat) |
...
|
...
|
@@ -64,7 +77,7 @@ void* processHeat(void* arg) |
64
|
77
|
if (tAct < T_INIT_THRESH) |
65
|
78
|
{ |
66
|
79
|
setHeatOn(); |
67
|
|
- printx(INFO, BUS, "Début chauffe initiale 0"); |
|
80
|
+ printx(INFO, BUS, "Début chauffe initiale 0\n"); |
68
|
81
|
task[0] = false; |
69
|
82
|
task[1] = true; |
70
|
83
|
} |
...
|
...
|
@@ -88,7 +101,7 @@ void* processHeat(void* arg) |
88
|
101
|
if( ((tNow - tTask) / CLOCKS_PER_SEC) > INIT_HEAT_TIME ) |
89
|
102
|
{ |
90
|
103
|
setHeatOff(); |
91
|
|
- printx(INFO, BUS, "Fin chauffe initiale 1"); |
|
104
|
+ printx(INFO, BUS, "Fin chauffe initiale 1\n"); |
92
|
105
|
task[2] = false; |
93
|
106
|
task[3] = true; |
94
|
107
|
} |
...
|
...
|
@@ -105,7 +118,7 @@ void* processHeat(void* arg) |
105
|
118
|
{ |
106
|
119
|
if( ((tNow - tTask) / CLOCKS_PER_SEC) > INIT_WAIT_TIME ) |
107
|
120
|
{ |
108
|
|
- printx(INFO, BUS, "Fin attente %d sec 2", INIT_WAIT_TIME); |
|
121
|
+ printx(INFO, BUS, "Fin attente %d sec 2\n", INIT_WAIT_TIME); |
109
|
122
|
task[4] = false; |
110
|
123
|
task[5] = true; |
111
|
124
|
} |
...
|
...
|
@@ -125,7 +138,7 @@ void* processHeat(void* arg) |
125
|
138
|
{ |
126
|
139
|
if (tAct < T_STEP_THRESH) |
127
|
140
|
{ |
128
|
|
- printx(INFO, BUS, "Début Chauffe par palier 3"); |
|
141
|
+ printx(INFO, BUS, "Début Chauffe par palier 3\n"); |
129
|
142
|
setHeatOn(); |
130
|
143
|
task[6] = false; |
131
|
144
|
task[7] = true; |
...
|
...
|
@@ -149,7 +162,7 @@ void* processHeat(void* arg) |
149
|
162
|
{ |
150
|
163
|
if( ((tNow - tTask) / CLOCKS_PER_SEC) > STEP_HEAT_TIME ) |
151
|
164
|
{ |
152
|
|
- printx(INFO, BUS, "Fin de chauffe palier intermédiaire 4"); |
|
165
|
+ printx(INFO, BUS, "Fin de chauffe palier intermédiaire 4\n"); |
153
|
166
|
setHeatOff(); |
154
|
167
|
task[8] = false; |
155
|
168
|
task[9] = true; |
...
|
...
|
@@ -167,7 +180,7 @@ void* processHeat(void* arg) |
167
|
180
|
{ |
168
|
181
|
if( ((tNow - tTask) / CLOCKS_PER_SEC) > STEP_WAIT_TIME ) |
169
|
182
|
{ |
170
|
|
- printx(INFO, BUS, "Fin d'attente palier intermédiaire 5"); |
|
183
|
+ printx(INFO, BUS, "Fin d'attente palier intermédiaire 5\n"); |
171
|
184
|
|
172
|
185
|
if ( tAct < T_STEP_THRESH ) |
173
|
186
|
{ |
...
|
...
|
@@ -194,8 +207,8 @@ void* processHeat(void* arg) |
194
|
207
|
|
195
|
208
|
else if (task[12]) |
196
|
209
|
{ |
197
|
|
- printx(INFO, BUS, "Début Maintien au chaud 6"); |
198
|
|
- heat_ok = true; |
|
210
|
+ printx(INFO, BUS, "Début Maintien au chaud 6\n"); |
|
211
|
+ setHeatOk(); |
199
|
212
|
task[12]=false; |
200
|
213
|
task[13]=true; |
201
|
214
|
} |
...
|
...
|
@@ -212,10 +225,10 @@ void* processHeat(void* arg) |
212
|
225
|
if(hold_heat) |
213
|
226
|
{ |
214
|
227
|
if( (tAct < T_HOLD_THRESH)) |
215
|
|
- { |
216
|
|
- if (!pumpitup) |
|
228
|
+ { |
|
229
|
+ if (!isPumpOn()) |
217
|
230
|
{ |
218
|
|
- printx(INFO, BUS, "Début Chauffe maintien sans pompe 7"); |
|
231
|
+ printx(INFO, BUS, "Début Chauffe maintien sans pompe 7\n"); |
219
|
232
|
setHeatOn(); |
220
|
233
|
task[14] = false; |
221
|
234
|
task[15] = true; |
...
|
...
|
@@ -223,7 +236,7 @@ void* processHeat(void* arg) |
223
|
236
|
|
224
|
237
|
else |
225
|
238
|
{ |
226
|
|
- printx(INFO, BUS, "Début Chauffe maintien avec pompe 7'"); |
|
239
|
+ printx(INFO, BUS, "Début Chauffe maintien avec pompe 7'\n"); |
227
|
240
|
setHeatOn(); |
228
|
241
|
task[14]=false; |
229
|
242
|
task[19]=true; //Numéro de tache "T<Thold && pumpitup" |
...
|
...
|
@@ -234,7 +247,7 @@ void* processHeat(void* arg) |
234
|
247
|
|
235
|
248
|
else |
236
|
249
|
{ |
237
|
|
- printx(INFO, BUS, "Maintien au chaud annulé 7 ' ' Go etape de fin"); |
|
250
|
+ printx(INFO, BUS, "Maintien au chaud annulé 7 ' ' Go etape de fin\n"); |
238
|
251
|
task[14]=false; |
239
|
252
|
task[23]=true; //Sinon go étape d'attente fin |
240
|
253
|
} |
...
|
...
|
@@ -252,7 +265,7 @@ void* processHeat(void* arg) |
252
|
265
|
{ |
253
|
266
|
if( ((tNow - tTask) / CLOCKS_PER_SEC) > HOLD_HEAT_TIME ) |
254
|
267
|
{ |
255
|
|
- printx(INFO, BUS, "Fin chauffe maintien sans pompe 8"); |
|
268
|
+ printx(INFO, BUS, "Fin chauffe maintien sans pompe 8\n"); |
256
|
269
|
setHeatOff(); |
257
|
270
|
task[16] = false; |
258
|
271
|
task[17] = true; |
...
|
...
|
@@ -272,7 +285,7 @@ void* processHeat(void* arg) |
272
|
285
|
{ |
273
|
286
|
if ( tAct < T_HOLD_THRESH) |
274
|
287
|
{ |
275
|
|
- printx(INFO, BUS, "Fin d'attente chauffe intermédiaire maintien 9"); |
|
288
|
+ printx(INFO, BUS, "Fin d'attente chauffe intermédiaire maintien 9\n"); |
276
|
289
|
task[18] = false; |
277
|
290
|
task[11] = true; //Retour au début de "Maintien au chaud" |
278
|
291
|
} |
...
|
...
|
@@ -291,7 +304,7 @@ void* processHeat(void* arg) |
291
|
304
|
{ |
292
|
305
|
if( ((tNow - tTask) / CLOCKS_PER_SEC) > HOLD_PUMP_HEAT_TIME ) |
293
|
306
|
{ |
294
|
|
- printx(INFO, BUS, "Fin chauffe maintien avec pompe 10"); |
|
307
|
+ printx(INFO, BUS, "Fin chauffe maintien avec pompe 10\n"); |
295
|
308
|
setHeatOff(); |
296
|
309
|
task[20] = false; |
297
|
310
|
task[21] = true; |
...
|
...
|
@@ -311,7 +324,7 @@ void* processHeat(void* arg) |
311
|
324
|
{ |
312
|
325
|
if ( tAct < T_HOLD_THRESH) |
313
|
326
|
{ |
314
|
|
- printx(INFO, BUS, "Fin d'attente chauffe intermédiaire maintien avec pompe 11"); |
|
327
|
+ printx(INFO, BUS, "Fin d'attente chauffe intermédiaire maintien avec pompe 11\n"); |
315
|
328
|
task[22] = false; |
316
|
329
|
task[11] = true; //Retour au début de "Maintien au chaud" |
317
|
330
|
} |
...
|
...
|
|