diff --git a/ampel-firmware/co2_sensor.cpp b/ampel-firmware/co2_sensor.cpp index 9bfa371eb6cbd557962975560adc32a8b4177ee3..48761a4307087c60a44f904cbde6ef0ab6994ccb 100644 --- a/ampel-firmware/co2_sensor.cpp +++ b/ampel-firmware/co2_sensor.cpp @@ -113,7 +113,7 @@ namespace sensor { scd30.setForcedRecalibrationFactor(config::co2_calibration_level); Serial.println(F(" Done!")); Serial.println(F("Sensor calibrated.")); - resetAmpel(); + ESP.restart(); // softer than ESP.reset } void logToSerial() { diff --git a/ampel-firmware/csv_writer.h b/ampel-firmware/csv_writer.h index c6b71a1ed980fbd5ceca472056000af72b50ae8c..e0e0d5314ae9060ca8c39315737da2a73beb5d99 100644 --- a/ampel-firmware/csv_writer.h +++ b/ampel-firmware/csv_writer.h @@ -11,8 +11,10 @@ # error Board should be either ESP8266 or ESP832 #endif -#include "led_effects.h" #include "config.h" +#include "util.h" +#include "led_effects.h" + namespace config { extern uint16_t csv_interval; // [s] } diff --git a/ampel-firmware/led_effects.cpp b/ampel-firmware/led_effects.cpp index 3af6a06ac5189ee964993a66fafc01fb36263325..ebe8beef0565a89bec811d64b9aedc870c6ff3b2 100644 --- a/ampel-firmware/led_effects.cpp +++ b/ampel-firmware/led_effects.cpp @@ -139,14 +139,14 @@ namespace led_effects { pixels.show(); } - void showRainbowWheel(int duration_s, uint16_t hue_increment) { + void showRainbowWheel(int duration_ms, uint16_t hue_increment) { if (config::night_mode) { return; } static uint16_t wheel_offset = 0; - unsigned long t0 = seconds(); + unsigned long t0 = millis(); pixels.setBrightness(config::max_brightness); - while (seconds() < t0 + duration_s) { + while (millis() < t0 + duration_ms) { for (int i = 0; i < NUMPIXELS; i++) { pixels.setPixelColor(i, pixels.ColorHSV(i * 65535 / NUMPIXELS + wheel_offset)); wheel_offset += hue_increment; diff --git a/ampel-firmware/led_effects.h b/ampel-firmware/led_effects.h index da5757dc3d2393ced9d5cd954469670128af4d63..03aee3dc24a02dc403b0e20105c3013f678488e5 100644 --- a/ampel-firmware/led_effects.h +++ b/ampel-firmware/led_effects.h @@ -1,7 +1,6 @@ #ifndef LED_EFFECTS_H_INCLUDED #define LED_EFFECTS_H_INCLUDED #include <Arduino.h> -#include "util.h" #include "config.h" // Adafruit NeoPixel (Arduino library for controlling single-wire-based LED pixels and strip) @@ -30,7 +29,7 @@ namespace led_effects { int countdownToZero(); void showWaitingLED(uint32_t color); void showKITTWheel(uint32_t color, uint16_t duration_s = 2); - void showRainbowWheel(int duration_s = 1, uint16_t hue_increment = 50); + void showRainbowWheel(int duration_ms = 1000, uint16_t hue_increment = 50); void displayCO2color(uint16_t co2); } #endif diff --git a/ampel-firmware/mqtt.cpp b/ampel-firmware/mqtt.cpp index 7f54c383422733cf7922832ea53c81d858557805..29f609fdf0751bbcebcc0b501c08e12d7212b6a6 100644 --- a/ampel-firmware/mqtt.cpp +++ b/ampel-firmware/mqtt.cpp @@ -167,7 +167,7 @@ namespace mqtt { } else if (messageString == "local_ip") { sendInfoAboutLocalNetwork(); } else if (messageString == "reset") { - resetAmpel(); + ESP.restart(); // softer than ESP.reset() } else { led_effects::showKITTWheel(color::red, 1); Serial.println(F("Message not supported. Doing nothing.")); diff --git a/ampel-firmware/util.cpp b/ampel-firmware/util.cpp index 43ead3a706e13cd95cd07f31bb8c1e29cd93d4eb..31df19dd856e5c3f17b5eb929979660eb27db715 100644 --- a/ampel-firmware/util.cpp +++ b/ampel-firmware/util.cpp @@ -38,16 +38,6 @@ namespace ntp { } } -void resetAmpel() { - Serial.print(F("Resetting")); -#ifdef AMPEL_CSV - FS_LIB.end(); -#endif - led_effects::LEDsOff(); - delay(1000); - ESP.restart(); -} - uint32_t max_loop_duration = 0; //FIXME: Remove every instance of Strings, to avoid heap fragmentation problems. (Start: "Free heap space : 17104 bytes") diff --git a/ampel-firmware/util.h b/ampel-firmware/util.h index 4bd28109b1979ab97cd743f0867f370853b46f57..0ffe5eb4d35d2243512035c07e09c1d44464fea8 100644 --- a/ampel-firmware/util.h +++ b/ampel-firmware/util.h @@ -2,20 +2,17 @@ #define AMPEL_UTIL_H_INCLUDED #include <Arduino.h> #include "config.h" -#ifdef AMPEL_CSV -# include "csv_writer.h" // To close filesystem before reset -#endif -#include <WiFiUdp.h> //required for NTP +#include <WiFiUdp.h> // required for NTP #include "src/lib/NTPClient-master/NTPClient.h" // NTP #if defined(ESP8266) # define BOARD "ESP8266" -# include <ESP8266WiFi.h> +# include <ESP8266WiFi.h> // required to get MAC address # define get_free_heap_size() system_get_free_heap_size() #elif defined(ESP32) # define BOARD "ESP32" -# include <WiFi.h> +# include <WiFi.h> // required to get MAC address # define get_free_heap_size() esp_get_free_heap_size() #else # define BOARD "Unknown" @@ -43,6 +40,4 @@ namespace util { extern uint32_t max_loop_duration; const extern String SENSOR_ID; -void resetAmpel(); - #endif diff --git a/ampel-firmware/wifi_util.h b/ampel-firmware/wifi_util.h index 3fb47131c03959f706898793f9dc545dbb5ee85b..7520ed78e070cf552500441f4828bb7d339392b8 100644 --- a/ampel-firmware/wifi_util.h +++ b/ampel-firmware/wifi_util.h @@ -1,8 +1,10 @@ #ifndef WIFI_UTIL_H_INCLUDED #define WIFI_UTIL_H_INCLUDED -#include "led_effects.h" #include "config.h" +#include "util.h" +#include "led_effects.h" + void WiFiConnect(const String &hostname); #endif