From fc6e5e9d9a36b1e4c87e875ef8a3ac68a0277422 Mon Sep 17 00:00:00 2001 From: david gauchard Date: Tue, 10 May 2022 22:22:43 +0200 Subject: [PATCH] fix ::getStatus() for all archs document esp8266's begin() --- src/ECSensor.cpp | 8 ++++++++ src/ECSensor.h | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ECSensor.cpp b/src/ECSensor.cpp index 7276742..0654ba5 100644 --- a/src/ECSensor.cpp +++ b/src/ECSensor.cpp @@ -192,9 +192,11 @@ uint32_t ECSensor::readSensor() { uint32_t averageCycles; if (timeout) { + sensorStatus = EC_FAIL; averageCycles = 0; } else { + sensorStatus = EC_SUCCESS; averageCycles = (totalCycles >> oversamplingRate); } EIMSK &= ~(1 << INT0); // Disable INT0. @@ -313,9 +315,11 @@ uint32_t ECSensor::readSensor() { delayMicroseconds(DISCHARGEDELAY); } if (timeout) { + sensorStatus = EC_FAIL; dischargeCycles = 0; } else { + sensorStatus = EC_SUCCESS; dischargeCycles = (totalCycles >> oversamplingRate); } yield(); // For the ESP8266: allow for background processes to run. @@ -360,6 +364,7 @@ void ECSensor::begin() { uint32_t ECSensor::readSensor() { uint32_t totalCycles = 0; bool timeout = false; + sensorStatus = EC_SUCCESS; for (uint8_t i = 0; i < (1 << oversamplingRate); i++) { /////////////////////////////////////////////////////////////////////// @@ -399,6 +404,7 @@ uint32_t ECSensor::readSensor() { totalCycles += dischargeCycles; PCMSK &= ~(1 << INTERRUPT); // Clear the pin change interrupt on CAPPOS. if (timeout) { // A timeout here means the sensor is not measuring anything. + sensorStatus = EC_FAIL; break; } @@ -697,9 +703,11 @@ uint32_t ECSensor::readSensor() { EIMSK &= ~(1 << INT4); // Disable INT4 uint32_t averageCycles; if (timeout) { + sensorStatus = EC_FAIL; averageCycles = 0; } else { + sensorStatus = EC_SUCCESS; averageCycles = (totalCycles >> oversamplingRate); } return averageCycles; diff --git a/src/ECSensor.h b/src/ECSensor.h index aecb1de..45f2535 100644 --- a/src/ECSensor.h +++ b/src/ECSensor.h @@ -60,7 +60,7 @@ class ECSensor { #if defined(__AVR__) void begin(void); #elif defined(ESP8266) - void begin(uint8_t, uint8_t, uint8_t); + void begin(uint8_t cp, uint8_t cn, uint8_t ec); #endif uint32_t readSensor(void);