Reclock I2C for sensors is aware of screen I2C frequency (#9898)
* Add define for screen I2C frequency * Add functions to get I2C screen frequency and port * Make reclock function aware of screen-set I2C speeds * Refurbish ReClockI2C API * Make ReClockI2C API class * Use new API in AirQualityTelemetry module * Minor changes on some logs * Update esp8266-oled library * Fix esp8266 library * Minor logging changes * Improve setClock and restoreClock cases * Make getter functions const, fix capitalisaiton of new functions * Minor typo, remove pragma once * Low prio debug fixes * Mark getter functions as const (properly) * Fix LOG based on coderabbit feedback --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
This commit is contained in:
co-authored by
GitHub
Ben Meadors
parent
a5cf82c69e
commit
4673ed22fc
@@ -110,10 +110,10 @@ int32_t AirQualityTelemetryModule::runOnce()
|
||||
}
|
||||
|
||||
// Wake up the sensors that need it
|
||||
LOG_INFO("Waking up sensors...");
|
||||
uint32_t lastTelemetry =
|
||||
transmitHistory ? transmitHistory->getLastSentToMeshMillis(TX_HISTORY_KEY_AIR_QUALITY_TELEMETRY) : 0;
|
||||
for (TelemetrySensor *sensor : sensors) {
|
||||
LOG_DEBUG("Checking if %s needs to wake up", sensor->sensorName);
|
||||
if (!sensor->canSleep()) {
|
||||
LOG_DEBUG("%s sensor doesn't have sleep feature. Skipping", sensor->sensorName);
|
||||
} else if (((lastTelemetry == 0) || !Throttle::isWithinTimespanMs(lastTelemetry - sensor->wakeUpTimeMs(),
|
||||
@@ -154,8 +154,8 @@ int32_t AirQualityTelemetryModule::runOnce()
|
||||
}
|
||||
|
||||
// Send to sleep sensors that consume power
|
||||
LOG_DEBUG("Sending sensors to sleep");
|
||||
for (TelemetrySensor *sensor : sensors) {
|
||||
LOG_DEBUG("Checking if %s can be sent to sleep", sensor->sensorName);
|
||||
if (sensor->isActive() && sensor->canSleep()) {
|
||||
if (sensor->wakeUpTimeMs() <
|
||||
(int32_t)Default::getConfiguredOrDefaultMsScaled(moduleConfig.telemetry.air_quality_interval,
|
||||
|
||||
Reference in New Issue
Block a user