From 045d5a8feb62a772786950b7d477394b128fa79b Mon Sep 17 00:00:00 2001 From: Chris Giacofei Date: Mon, 24 Jan 2022 11:38:56 -0500 Subject: [PATCH] This is simpler and far easier to read. --- boil_kettle/src/functions.h | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/boil_kettle/src/functions.h b/boil_kettle/src/functions.h index e1fe8f6..5258386 100644 --- a/boil_kettle/src/functions.h +++ b/boil_kettle/src/functions.h @@ -12,24 +12,17 @@ void doEncoder() if (result) { uint8_t speed = rotary.speed(); speed >= 10 ? inc = 5 : inc = 1; + if (result == DIR_CCW) inc = inc * -1; } if (KettleController.Mode() == MANUAL) { uint8_t KettleDuty = (uint8_t)KettleController.Power(); - if (result == DIR_CW && KettleDuty < 100) { - KettleDuty = (KettleDuty / inc) * inc + inc; - } else if (result == DIR_CCW && KettleDuty > 0) { - KettleDuty = (KettleDuty / inc) * inc - inc; - } + KettleDuty = max(0, min((KettleDuty / inc) * inc + inc, 100)); KettleController.Power((double)KettleDuty); - } else { + } else if (KettleController.Mode() == AUTOMATIC) { uint8_t KettleTemp = (uint8_t)KettleController.Setpoint(); - if (result == DIR_CW && KettleTemp < 220) { - KettleTemp = (KettleTemp / inc) * inc + inc; - } else if (result == DIR_CCW && KettleTemp > 0) { - KettleTemp = (KettleTemp / inc) * inc - inc; - } + KettleTemp = max(0, min((KettleTemp / inc) * inc + inc, 220)); KettleController.Setpoint((double)KettleTemp); }