thermferm/thermferm.c

changeset 273
b863e0147296
parent 270
df81d583c2c3
child 274
111b0e9663dc
equal deleted inserted replaced
272:f436d826de4b 273:b863e0147296
1285 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out); 1285 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out);
1286 syslog(LOG_NOTICE, "sp=%.2f pv=%.2f err_old=%.2f err=%.2f P_err=%.2f I_err=%.2f D_err=%.2f Out=%.2f", 1286 syslog(LOG_NOTICE, "sp=%.2f pv=%.2f err_old=%.2f err=%.2f P_err=%.2f I_err=%.2f D_err=%.2f Out=%.2f",
1287 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out); 1287 sp, pv, unit->PID_err_old, err, P_err, unit->PID_I_err, D_err, Out);
1288 } 1288 }
1289 if (unit->heater_address) { 1289 if (unit->heater_address) {
1290 if (unit->heater_wait < unit->heater_delay) { 1290 if (Out >= 2) {
1291 unit->heater_wait++; 1291 if (unit->heater_wait < unit->heater_delay) {
1292 syslog(LOG_NOTICE, "heater_wait %d/%d", unit->heater_wait, unit->heater_delay); 1292 unit->heater_wait++;
1293 syslog(LOG_NOTICE, "heater_wait + %d/%d", unit->heater_wait, unit->heater_delay);
1294 } else {
1295 if (! unit->heater_state && ! unit->cooler_state) {
1296 syslog(LOG_NOTICE, "Heater Off => On");
1297 unit->heater_state = 100;
1298 }
1299 }
1293 } else { 1300 } else {
1294 if (Out >= 2) { 1301 if (unit->heater_wait > 0) {
1295 if (! unit->heater_state && ! unit->cooler_state) { 1302 unit->heater_wait--;
1296 syslog(LOG_NOTICE, "Heater Off => On"); 1303 syslog(LOG_NOTICE, "heater_wait - %d/%d", unit->heater_wait, unit->heater_delay);
1297 unit->heater_wait = 0; 1304 } else {
1298 unit->heater_state = 100; 1305 if (unit->heater_state) {
1306 syslog(LOG_NOTICE, "Heater On => Off");
1307 unit->heater_state = 0;
1299 } 1308 }
1309 }
1310 }
1311 device_out(unit->heater_address, unit->heater_state);
1312 }
1313 if (unit->cooler_address) {
1314 if (Out <= -2) {
1315 if (unit->cooler_wait < unit->cooler_delay) {
1316 unit->cooler_wait++;
1317 syslog(LOG_NOTICE, "cooler_wait + %d/%d", unit->cooler_wait, unit->cooler_delay);
1300 } else { 1318 } else {
1301 if (unit->heater_state) {
1302 syslog(LOG_NOTICE, "Heater On => Off");
1303 unit->heater_wait = 0;
1304 unit->heater_state = 0;
1305 }
1306 }
1307 }
1308 device_out(unit->heater_address, unit->heater_state);
1309 }
1310 if (unit->cooler_address) {
1311 if (unit->cooler_wait < unit->cooler_delay) {
1312 unit->cooler_wait++;
1313 } else {
1314 if (Out <= -2) {
1315 if (! unit->cooler_state && ! unit->heater_state) { 1319 if (! unit->cooler_state && ! unit->heater_state) {
1316 syslog(LOG_NOTICE, "Cooler Off => On"); 1320 syslog(LOG_NOTICE, "Cooler Off => On");
1317 unit->cooler_wait = 0;
1318 unit->cooler_state = 100; 1321 unit->cooler_state = 100;
1319 } 1322 }
1323 }
1324 } else {
1325 if (unit->cooler_wait > 0) {
1326 unit->cooler_wait--;
1327 syslog(LOG_NOTICE, "cooler_wait - %d/%d", unit->cooler_wait, unit->cooler_delay);
1320 } else { 1328 } else {
1321 if (unit->cooler_state) { 1329 if (unit->cooler_state) {
1322 syslog(LOG_NOTICE, "Cooler On => Off"); 1330 syslog(LOG_NOTICE, "Cooler On => Off");
1323 unit->cooler_wait = 0;
1324 unit->cooler_state = 0; 1331 unit->cooler_state = 0;
1325 } 1332 }
1326 } 1333 }
1327 } 1334 }
1328 device_out(unit->cooler_address, unit->cooler_state); 1335 device_out(unit->cooler_address, unit->cooler_state);

mercurial