skip frequ-measurement in standalone build

This commit is contained in:
MichaelDvP
2025-10-07 12:38:19 +02:00
parent eb14e89c35
commit aeee318cca
3 changed files with 9 additions and 1 deletions

View File

@@ -23,6 +23,7 @@ namespace emsesp {
uuid::log::Logger AnalogSensor::logger_{F_(analogsensor), uuid::log::Facility::DAEMON}; uuid::log::Logger AnalogSensor::logger_{F_(analogsensor), uuid::log::Facility::DAEMON};
#ifndef EMSESP_STANDALONE
portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED; portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;
unsigned long AnalogSensor::edge[] = {0, 0, 0}; unsigned long AnalogSensor::edge[] = {0, 0, 0};
unsigned long AnalogSensor::edgecnt[] = {0, 0, 0}; unsigned long AnalogSensor::edgecnt[] = {0, 0, 0};
@@ -45,6 +46,7 @@ void IRAM_ATTR AnalogSensor::freqIrq2() {
edge[2] = micros(); edge[2] = micros();
portEXIT_CRITICAL_ISR(&mux); portEXIT_CRITICAL_ISR(&mux);
} }
#endif
void AnalogSensor::start(const bool factory_settings) { void AnalogSensor::start(const bool factory_settings) {
// if (factory_settings && EMSESP::nvs_.getString("boot").equals("E32V2_2") && EMSESP::nvs_.getString("hwrevision").equals("3.0")) { // if (factory_settings && EMSESP::nvs_.getString("boot").equals("E32V2_2") && EMSESP::nvs_.getString("hwrevision").equals("3.0")) {
@@ -228,6 +230,7 @@ void AnalogSensor::reload(bool get_nvs) {
sensor.set_offset(0); sensor.set_offset(0);
sensor.set_value(0); sensor.set_value(0);
publish_sensor(sensor); publish_sensor(sensor);
#ifndef EMSESP_STANDALONE
} else if (sensor.type() >= AnalogType::FREQ_0 && sensor.type() <= AnalogType::FREQ_2) { } else if (sensor.type() >= AnalogType::FREQ_0 && sensor.type() <= AnalogType::FREQ_2) {
LOG_DEBUG("Frequency on GPIO %02d", sensor.gpio()); LOG_DEBUG("Frequency on GPIO %02d", sensor.gpio());
pinMode(sensor.gpio(), INPUT_PULLUP); pinMode(sensor.gpio(), INPUT_PULLUP);
@@ -238,6 +241,7 @@ void AnalogSensor::reload(bool get_nvs) {
attachInterrupt(sensor.gpio(), index == 0 ? freqIrq0 : index == 1 ? freqIrq1 : freqIrq2, FALLING); attachInterrupt(sensor.gpio(), index == 0 ? freqIrq0 : index == 1 ? freqIrq1 : freqIrq2, FALLING);
lastedge[index] = edge[index] = micros(); lastedge[index] = edge[index] = micros();
edgecnt[index] = 0; edgecnt[index] = 0;
#endif
} else if (sensor.type() == AnalogType::DIGITAL_IN) { } else if (sensor.type() == AnalogType::DIGITAL_IN) {
LOG_DEBUG("Digital Read on GPIO %02d", sensor.gpio()); LOG_DEBUG("Digital Read on GPIO %02d", sensor.gpio());
pinMode(sensor.gpio(), INPUT_PULLUP); pinMode(sensor.gpio(), INPUT_PULLUP);
@@ -369,6 +373,7 @@ void AnalogSensor::measure() {
changed_ = true; changed_ = true;
publish_sensor(sensor); publish_sensor(sensor);
} }
#ifndef EMSESP_STANDALONE
} else if (sensor.type() >= AnalogType::FREQ_0 && sensor.type() <= AnalogType::FREQ_2) { } else if (sensor.type() >= AnalogType::FREQ_0 && sensor.type() <= AnalogType::FREQ_2) {
auto index = sensor.type() - AnalogType::FREQ_0; auto index = sensor.type() - AnalogType::FREQ_0;
auto oldval = sensor.value(); auto oldval = sensor.value();
@@ -386,6 +391,7 @@ void AnalogSensor::measure() {
changed_ = true; changed_ = true;
publish_sensor(sensor); publish_sensor(sensor);
} }
#endif
} }
} }
} }

View File

@@ -195,12 +195,14 @@ class AnalogSensor {
uint32_t sensorfails_ = 0; uint32_t sensorfails_ = 0;
uint32_t sensorreads_ = 0; uint32_t sensorreads_ = 0;
#ifndef EMSESP_STANDALONE
static void IRAM_ATTR freqIrq0(); static void IRAM_ATTR freqIrq0();
static void IRAM_ATTR freqIrq1(); static void IRAM_ATTR freqIrq1();
static void IRAM_ATTR freqIrq2(); static void IRAM_ATTR freqIrq2();
static unsigned long edge[3]; static unsigned long edge[3];
static unsigned long edgecnt[3]; static unsigned long edgecnt[3];
unsigned long lastedge[3] = {0, 0, 0}; unsigned long lastedge[3] = {0, 0, 0};
#endif
}; };
} // namespace emsesp } // namespace emsesp

View File

@@ -518,7 +518,7 @@ std::string calculate(const std::string & expr) {
#ifndef EMSESP_STANDALONE #ifndef EMSESP_STANDALONE
stack.push_back(to_string(rhd * esp_random() / UINT32_MAX)); stack.push_back(to_string(rhd * esp_random() / UINT32_MAX));
#else #else
stack.push_back(to_string(rhd * random())); stack.push_back(to_string(rhd * rand() / RAND_MAX));
#endif #endif
break; break;
} }