Browse Source
Merge pull request #1274 from IoTThinks/MCdev-FixedMCUTemperature
To fix MCU Temperature for repeaters
pull/1299/head
ripplebiz
5 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
14 additions and
6 deletions
-
examples/simple_repeater/MyMesh.cpp
-
src/helpers/ESP32Board.h
|
|
|
@ -174,17 +174,18 @@ int MyMesh::handleRequest(ClientInfo *sender, uint32_t sender_timestamp, uint8_t |
|
|
|
telemetry.reset(); |
|
|
|
telemetry.addVoltage(TELEM_CHANNEL_SELF, (float)board.getBattMilliVolts() / 1000.0f); |
|
|
|
|
|
|
|
float temperature = board.getMCUTemperature(); |
|
|
|
if(!isnan(temperature)) { // Supported boards with built-in temperature sensor. ESP32-C3 may return NAN
|
|
|
|
telemetry.addTemperature(TELEM_CHANNEL_SELF, temperature); // Built-in MCU Temperature
|
|
|
|
} |
|
|
|
|
|
|
|
// query other sensors -- target specific
|
|
|
|
if ((sender->permissions & PERM_ACL_ROLE_MASK) == PERM_ACL_GUEST) { |
|
|
|
perm_mask = 0x00; // just base telemetry allowed
|
|
|
|
} |
|
|
|
sensors.querySensors(perm_mask, telemetry); |
|
|
|
|
|
|
|
// This default temperature will be overridden by external sensors (if any)
|
|
|
|
float temperature = board.getMCUTemperature(); |
|
|
|
if(!isnan(temperature)) { // Supported boards with built-in temperature sensor. ESP32-C3 may return NAN
|
|
|
|
telemetry.addTemperature(TELEM_CHANNEL_SELF, temperature); // Built-in MCU Temperature
|
|
|
|
} |
|
|
|
|
|
|
|
uint8_t tlen = telemetry.getSize(); |
|
|
|
memcpy(&reply_data[4], telemetry.getBuffer(), tlen); |
|
|
|
return 4 + tlen; // reply_len
|
|
|
|
|
|
|
|
@ -44,7 +44,14 @@ public: |
|
|
|
|
|
|
|
// Temperature from ESP32 MCU
|
|
|
|
float getMCUTemperature() override { |
|
|
|
return temperatureRead(); |
|
|
|
uint32_t raw = 0; |
|
|
|
|
|
|
|
// To get and average the temperature so it is more accurate, especially in low temperature
|
|
|
|
for (int i = 0; i < 4; i++) { |
|
|
|
raw += temperatureRead(); |
|
|
|
} |
|
|
|
|
|
|
|
return raw / 4; |
|
|
|
} |
|
|
|
|
|
|
|
uint8_t getStartupReason() const override { return startup_reason; } |
|
|
|
|