| @@ -3,18 +3,19 @@ |
| @@ -3,18 +3,19 @@ |
3
| #include <stdbool.h> |
3
| #include <stdbool.h> |
4
| #include "hvc.h" |
4
| #include "hvc.h" |
5
| #include "heat.h" |
5
| #include "heat.h" |
| |
6
| +#include "pump.h" |
6
| #include "printx.h" |
7
| #include "printx.h" |
7
| |
8
| |
8
| #define TASK_NUMBER 32 |
9
| #define TASK_NUMBER 32 |
9
| #define T_INIT_THRESH 40 |
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
| #define INIT_HEAT_TIME 15 |
13
| #define INIT_HEAT_TIME 15 |
13
| #define INIT_WAIT_TIME 15 |
14
| #define INIT_WAIT_TIME 15 |
14
| #define STEP_HEAT_TIME 2 |
15
| #define STEP_HEAT_TIME 2 |
15
| #define STEP_WAIT_TIME 8 //OP is 5 |
16
| #define STEP_WAIT_TIME 8 //OP is 5 |
16
| #define HOLD_HEAT_TIME 1 |
17
| #define HOLD_HEAT_TIME 1 |
17
| -#define HOLD_WAIT_TIME 8 //OP is 4 |
18
| +#define HOLD_WAIT_TIME 8 |
18
| #define HOLD_PUMP_HEAT_TIME 3 |
19
| #define HOLD_PUMP_HEAT_TIME 3 |
19
| #define HOLD_PUMP_WAIT_TIME 5 |
20
| #define HOLD_PUMP_WAIT_TIME 5 |
20
| |
21
| |
| @@ -22,19 +23,16 @@ |
| @@ -22,19 +23,16 @@ |
22
| //Globals |
23
| //Globals |
23
| time_t tTask; |
24
| time_t tTask; |
24
| time_t tNow; |
25
| time_t tNow; |
25
| -float tAct; //Lecture de la température du capteur |
26
| +float tAct; |
26
| bool task[TASK_NUMBER]; |
27
| bool task[TASK_NUMBER]; |
27
| bool stop=false; |
28
| bool stop=false; |
28
| -bool heat_ok=false; |
| |
29
| bool hold_heat=true; |
29
| bool hold_heat=true; |
30
| -bool pumpitup=false; //Lecture de l'état de la pompe |
| |
31
| bool eco_mode=false; |
30
| bool eco_mode=false; |
32
| bool stopHeat=false; |
31
| bool stopHeat=false; |
33
| - |
32
| +bool heat_ok=false; |
34
| |
33
| |
35
| void initProcessHeat(void) |
34
| void initProcessHeat(void) |
36
| { |
35
| { |
37
| - //Initialisation du tableau task |
| |
38
| task[0]=true; |
36
| task[0]=true; |
39
| for (int i_initH=1;i_initH<TASK_NUMBER;i_initH++) |
37
| for (int i_initH=1;i_initH<TASK_NUMBER;i_initH++) |
40
| task[i_initH]=false; |
38
| task[i_initH]=false; |
| @@ -50,6 +48,21 @@ void stopAutoHeat(void) |
| @@ -50,6 +48,21 @@ void stopAutoHeat(void) |
50
| stopHeat = true; |
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
| void* processHeat(void* arg) |
66
| void* processHeat(void* arg) |
54
| { |
67
| { |
55
| while(!stopHeat) |
68
| while(!stopHeat) |
| @@ -64,7 +77,7 @@ void* processHeat(void* arg) |
| @@ -64,7 +77,7 @@ void* processHeat(void* arg) |
64
| if (tAct < T_INIT_THRESH) |
77
| if (tAct < T_INIT_THRESH) |
65
| { |
78
| { |
66
| setHeatOn(); |
79
| setHeatOn(); |
67
| - printx(INFO, BUS, "Début chauffe initiale 0"); |
80
| + printx(INFO, BUS, "Début chauffe initiale 0\n"); |
68
| task[0] = false; |
81
| task[0] = false; |
69
| task[1] = true; |
82
| task[1] = true; |
70
| } |
83
| } |
| @@ -88,7 +101,7 @@ void* processHeat(void* arg) |
| @@ -88,7 +101,7 @@ void* processHeat(void* arg) |
88
| if( ((tNow - tTask) / CLOCKS_PER_SEC) > INIT_HEAT_TIME ) |
101
| if( ((tNow - tTask) / CLOCKS_PER_SEC) > INIT_HEAT_TIME ) |
89
| { |
102
| { |
90
| setHeatOff(); |
103
| setHeatOff(); |
91
| - printx(INFO, BUS, "Fin chauffe initiale 1"); |
104
| + printx(INFO, BUS, "Fin chauffe initiale 1\n"); |
92
| task[2] = false; |
105
| task[2] = false; |
93
| task[3] = true; |
106
| task[3] = true; |
94
| } |
107
| } |
| @@ -105,7 +118,7 @@ void* processHeat(void* arg) |
| @@ -105,7 +118,7 @@ void* processHeat(void* arg) |
105
| { |
118
| { |
106
| if( ((tNow - tTask) / CLOCKS_PER_SEC) > INIT_WAIT_TIME ) |
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
| task[4] = false; |
122
| task[4] = false; |
110
| task[5] = true; |
123
| task[5] = true; |
111
| } |
124
| } |
| @@ -125,7 +138,7 @@ void* processHeat(void* arg) |
| @@ -125,7 +138,7 @@ void* processHeat(void* arg) |
125
| { |
138
| { |
126
| if (tAct < T_STEP_THRESH) |
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
| setHeatOn(); |
142
| setHeatOn(); |
130
| task[6] = false; |
143
| task[6] = false; |
131
| task[7] = true; |
144
| task[7] = true; |
| @@ -149,7 +162,7 @@ void* processHeat(void* arg) |
| @@ -149,7 +162,7 @@ void* processHeat(void* arg) |
149
| { |
162
| { |
150
| if( ((tNow - tTask) / CLOCKS_PER_SEC) > STEP_HEAT_TIME ) |
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
| setHeatOff(); |
166
| setHeatOff(); |
154
| task[8] = false; |
167
| task[8] = false; |
155
| task[9] = true; |
168
| task[9] = true; |
| @@ -167,7 +180,7 @@ void* processHeat(void* arg) |
| @@ -167,7 +180,7 @@ void* processHeat(void* arg) |
167
| { |
180
| { |
168
| if( ((tNow - tTask) / CLOCKS_PER_SEC) > STEP_WAIT_TIME ) |
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
| if ( tAct < T_STEP_THRESH ) |
185
| if ( tAct < T_STEP_THRESH ) |
173
| { |
186
| { |
| @@ -194,8 +207,8 @@ void* processHeat(void* arg) |
| @@ -194,8 +207,8 @@ void* processHeat(void* arg) |
194
| |
207
| |
195
| else if (task[12]) |
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
| task[12]=false; |
212
| task[12]=false; |
200
| task[13]=true; |
213
| task[13]=true; |
201
| } |
214
| } |
| @@ -212,10 +225,10 @@ void* processHeat(void* arg) |
| @@ -212,10 +225,10 @@ void* processHeat(void* arg) |
212
| if(hold_heat) |
225
| if(hold_heat) |
213
| { |
226
| { |
214
| if( (tAct < T_HOLD_THRESH)) |
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
| setHeatOn(); |
232
| setHeatOn(); |
220
| task[14] = false; |
233
| task[14] = false; |
221
| task[15] = true; |
234
| task[15] = true; |
| @@ -223,7 +236,7 @@ void* processHeat(void* arg) |
| @@ -223,7 +236,7 @@ void* processHeat(void* arg) |
223
| |
236
| |
224
| else |
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
| setHeatOn(); |
240
| setHeatOn(); |
228
| task[14]=false; |
241
| task[14]=false; |
229
| task[19]=true; //Numéro de tache "T<Thold && pumpitup" |
242
| task[19]=true; //Numéro de tache "T<Thold && pumpitup" |
| @@ -234,7 +247,7 @@ void* processHeat(void* arg) |
| @@ -234,7 +247,7 @@ void* processHeat(void* arg) |
234
| |
247
| |
235
| else |
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
| task[14]=false; |
251
| task[14]=false; |
239
| task[23]=true; //Sinon go étape d'attente fin |
252
| task[23]=true; //Sinon go étape d'attente fin |
240
| } |
253
| } |
| @@ -252,7 +265,7 @@ void* processHeat(void* arg) |
| @@ -252,7 +265,7 @@ void* processHeat(void* arg) |
252
| { |
265
| { |
253
| if( ((tNow - tTask) / CLOCKS_PER_SEC) > HOLD_HEAT_TIME ) |
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
| setHeatOff(); |
269
| setHeatOff(); |
257
| task[16] = false; |
270
| task[16] = false; |
258
| task[17] = true; |
271
| task[17] = true; |
| @@ -272,7 +285,7 @@ void* processHeat(void* arg) |
| @@ -272,7 +285,7 @@ void* processHeat(void* arg) |
272
| { |
285
| { |
273
| if ( tAct < T_HOLD_THRESH) |
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
| task[18] = false; |
289
| task[18] = false; |
277
| task[11] = true; //Retour au début de "Maintien au chaud" |
290
| task[11] = true; //Retour au début de "Maintien au chaud" |
278
| } |
291
| } |
| @@ -291,7 +304,7 @@ void* processHeat(void* arg) |
| @@ -291,7 +304,7 @@ void* processHeat(void* arg) |
291
| { |
304
| { |
292
| if( ((tNow - tTask) / CLOCKS_PER_SEC) > HOLD_PUMP_HEAT_TIME ) |
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
| setHeatOff(); |
308
| setHeatOff(); |
296
| task[20] = false; |
309
| task[20] = false; |
297
| task[21] = true; |
310
| task[21] = true; |
| @@ -311,7 +324,7 @@ void* processHeat(void* arg) |
| @@ -311,7 +324,7 @@ void* processHeat(void* arg) |
311
| { |
324
| { |
312
| if ( tAct < T_HOLD_THRESH) |
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
| task[22] = false; |
328
| task[22] = false; |
316
| task[11] = true; //Retour au début de "Maintien au chaud" |
329
| task[11] = true; //Retour au début de "Maintien au chaud" |
317
| } |
330
| } |