Correctly invert the float output state (#2368)

This commit is contained in:
Jesse Hills 2021-09-22 22:59:03 +12:00 committed by GitHub
parent 8e36e1b92e
commit 654e31124e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -31,14 +31,13 @@ void FloatOutput::set_level(float state) {
this->power_.unrequest();
}
#endif
if (!(state == 0.0f && this->zero_means_zero_)) // regardless of min_power_, 0.0 means off
state = (state * (this->max_power_ - this->min_power_)) + this->min_power_;
if (this->is_inverted())
state = 1.0f - state;
if (state == 0.0f && this->zero_means_zero_) { // regardless of min_power_, 0.0 means off
this->write_state(state);
return;
}
float adjusted_value = (state * (this->max_power_ - this->min_power_)) + this->min_power_;
this->write_state(adjusted_value);
this->write_state(state);
}
void FloatOutput::write_state(bool state) { this->set_level(state != this->inverted_ ? 1.0f : 0.0f); }