mirror of
https://github.com/esphome/esphome.git
synced 2024-11-27 17:27:59 +01:00
pulse_counter: Use 64 bit time always
This commit is contained in:
parent
5efcbf8dfc
commit
146f733be9
2 changed files with 9 additions and 11 deletions
|
@ -252,7 +252,10 @@ void PulseCounterSensor::setup() {
|
|||
return;
|
||||
}
|
||||
#ifdef CONF_USE_TIME
|
||||
this->time_id_->add_on_time_sync_callback([this]() { this->time_is_synchronized_ = true; this->update(); });
|
||||
this->time_id_->add_on_time_sync_callback([this]() {
|
||||
this->time_is_synchronized_ = true;
|
||||
this->update();
|
||||
});
|
||||
this->pref_ = global_preferences->make_preference<timestamp_t>(this->get_object_id_hash());
|
||||
this->pref_.load(&this->last_time_);
|
||||
#endif
|
||||
|
@ -285,13 +288,12 @@ void PulseCounterSensor::update() {
|
|||
timestamp_t now;
|
||||
timestamp_t interval;
|
||||
#ifdef CONF_USE_TIME
|
||||
now = this->time_id_->timestamp_now();
|
||||
// Convert to ms to match units when not using a Time component.
|
||||
interval = (now - this->last_time_) * 1000;
|
||||
now = this->time_id_->timestamp_now() * 1000;
|
||||
#else
|
||||
now = millis();
|
||||
interval = now - this->last_time_;
|
||||
#endif
|
||||
interval = now - this->last_time_;
|
||||
if (this->last_time_ != 0) {
|
||||
float value = (60000.0f * raw) / float(interval); // per minute
|
||||
ESP_LOGD(TAG, "'%s': Retrieved counter: %0.2f pulses/min", this->get_name().c_str(), value);
|
||||
|
@ -304,9 +306,9 @@ void PulseCounterSensor::update() {
|
|||
this->total_sensor_->publish_state(current_total_);
|
||||
}
|
||||
this->last_time_ = now;
|
||||
#ifdef CONF_USE_TIME
|
||||
#ifdef CONF_USE_TIME
|
||||
this->pref_.save(&this->last_time_);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
} // namespace pulse_counter
|
||||
|
|
|
@ -30,11 +30,7 @@ using pulse_counter_t = int16_t;
|
|||
using pulse_counter_t = int32_t;
|
||||
#endif
|
||||
|
||||
#ifdef CONF_USE_TIME
|
||||
using timestamp_t = time_t;
|
||||
#else
|
||||
using timestamp_t = int32_t;
|
||||
#endif
|
||||
using timestamp_t = int64_t;
|
||||
|
||||
struct PulseCounterStorageBase {
|
||||
virtual bool pulse_counter_setup(InternalGPIOPin *pin) = 0;
|
||||
|
|
Loading…
Reference in a new issue