private void timerTick(object sender, EventArgs e) { double val = ReadNewValue(); Logger.Info(string.Format("Monitor {0} got value {1:N4}", Key, val)); if (MinValue > 0) { val = val - MinValue; if (val < 0) { val = 0; } val = val / (100 - MinValue) * 100; } Value += (val - Value) * (1 - Smooth); Logger.Info(string.Format("Monitor {0} reported value {1:N4}", Key, Value)); Updated.Fire(this); }