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};
#ifndef EMSESP_STANDALONE
portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;
unsigned long AnalogSensor::edge[] = {0, 0, 0};
unsigned long AnalogSensor::edgecnt[] = {0, 0, 0};
@@ -45,6 +46,7 @@ void IRAM_ATTR AnalogSensor::freqIrq2() {
edge[2] = micros();
portEXIT_CRITICAL_ISR(&mux);
}
#endif
void AnalogSensor::start(const bool factory_settings) {
// 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_value(0);
publish_sensor(sensor);
#ifndef EMSESP_STANDALONE
} else if (sensor.type() >= AnalogType::FREQ_0 && sensor.type() <= AnalogType::FREQ_2) {
LOG_DEBUG("Frequency on GPIO %02d", sensor.gpio());
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);
lastedge[index] = edge[index] = micros();
edgecnt[index] = 0;
#endif
} else if (sensor.type() == AnalogType::DIGITAL_IN) {
LOG_DEBUG("Digital Read on GPIO %02d", sensor.gpio());
pinMode(sensor.gpio(), INPUT_PULLUP);
@@ -369,6 +373,7 @@ void AnalogSensor::measure() {
changed_ = true;
publish_sensor(sensor);
}
#ifndef EMSESP_STANDALONE
} else if (sensor.type() >= AnalogType::FREQ_0 && sensor.type() <= AnalogType::FREQ_2) {
auto index = sensor.type() - AnalogType::FREQ_0;
auto oldval = sensor.value();
@@ -386,6 +391,7 @@ void AnalogSensor::measure() {
changed_ = true;
publish_sensor(sensor);
}
#endif
}
}
}

View File

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

View File

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