diff --git a/dualpid/src/outputdrv.cpp b/dualpid/src/outputdrv.cpp index a72e91e..875c46f 100644 --- a/dualpid/src/outputdrv.cpp +++ b/dualpid/src/outputdrv.cpp @@ -190,7 +190,7 @@ void UnitSSRDriver::_off() { _ssr.setRelay(_inverted); }; #endif // OUTPUTDRV_M5UNIT_SSR_ENABLED #ifdef OUTPUTDRV_M5UNIT_HBRIDGE_ENABLED -#include +#include bool M5UnitHbridgeDriver::begin(const output_driver_config_t &cfg, const int32_t channel_id) { uint8_t addr = cfg.m5unit_hbridge.i2c_addr ? (uint8_t)cfg.m5unit_hbridge.i2c_addr : M5UNIT_HBRIDGE_ADDRESS_DEFAULT; diff --git a/dualpid/src/outputdrv.h b/dualpid/src/outputdrv.h index 9d2c37c..a8e7ded 100644 --- a/dualpid/src/outputdrv.h +++ b/dualpid/src/outputdrv.h @@ -185,7 +185,7 @@ class UnitSSRDriver : public SlowPWMBase #endif // OUTPUTDRV_M5UNIT_SSR_ENABLED #ifdef OUTPUTDRV_M5UNIT_HBRIDGE_ENABLED -#include +#include class M5UnitHbridgeDriver : public SlowPWMBase { public: @@ -200,4 +200,4 @@ class M5UnitHbridgeDriver : public SlowPWMBase }; #endif // OUTPUTDRV_M5UNIT_HBRIDGE_ENABLED -#endif // __OUTPUT_H \ No newline at end of file +#endif // __OUTPUT_H diff --git a/dualpid/src/pidloop.cpp b/dualpid/src/pidloop.cpp index 69dae47..7c5fc14 100644 --- a/dualpid/src/pidloop.cpp +++ b/dualpid/src/pidloop.cpp @@ -307,7 +307,7 @@ void PIDLoop::do_input() return; }; - double read = _inputdrv->read(); + double read = _inputdrv->read() + _settings.input_offset; // reset filter if previous was NaN if(isnan(_input_value)) diff --git a/dualpid/src/pidloop.h b/dualpid/src/pidloop.h index 2f97e29..e120738 100644 --- a/dualpid/src/pidloop.h +++ b/dualpid/src/pidloop.h @@ -58,9 +58,11 @@ class PIDLoop: private NonCopyable int32_t _reserved; // left from previous double lock_window int32_t lock_time; double input_filter; + double input_offset; int32_t input_drv; // input_driver_config_t input_cfg; int32_t fixed_output_value; + double temp_offset_c; } settings_t; PIDLoop(uint32_t id, PIDLoop::settings_t& s); @@ -109,4 +111,4 @@ class PIDLoop: private NonCopyable bool _outputdrv_ok; }; -#endif // __PIDLOOP_H \ No newline at end of file +#endif // __PIDLOOP_H diff --git a/dualpid/src/screens/menu.cpp b/dualpid/src/screens/menu.cpp index f786a22..759c007 100644 --- a/dualpid/src/screens/menu.cpp +++ b/dualpid/src/screens/menu.cpp @@ -209,6 +209,7 @@ MenuScreen::MenuScreen(SooghGUI& g) : Screen(g) sub->addSeparator("Input"); sub->addSelector("Sensor", &set.input_drv, input_drivers)->onChange(set_need_reboot); sub->addSpinbox("Input Filter", &set.input_filter, 0, 1, 2); + sub->addSpinbox("Input Offset", &set.input_offset, -99, 99, 2); sub->addSeparator("PID"); sub->addSelector("Looptime", &set.looptime, pid_loop_times); sub->addSelector("Lock Time", &set.lock_time, lock_times);