Pass reference to NeoPixels to Display class.
This commit is contained in:
parent
3aecd54880
commit
60d91a5def
3 changed files with 38 additions and 11 deletions
|
@ -8,16 +8,19 @@
|
|||
class Display {
|
||||
public:
|
||||
// Constructor
|
||||
Display();
|
||||
Display(Adafruit_NeoPixel& p_leds);
|
||||
|
||||
public:
|
||||
// Public methods
|
||||
void setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_aqi,
|
||||
ArduinoJson::V710PB22::JsonArray p_pollen);
|
||||
void setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_pollen,
|
||||
ArduinoJson::V710PB22::JsonArray p_aqi);
|
||||
void setPrecipitationForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_precipitation);
|
||||
void setUVIForecastLed(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_uvi);
|
||||
void setLocalAirQualityLed();
|
||||
void setWifiStatusLed(bool p_enable);
|
||||
void setPixelColor(uint32_t p_index, uint8_t p_red, uint8_t p_green, uint8_t p_blue, uint8_t p_white);
|
||||
void clear();
|
||||
void show();
|
||||
|
||||
private:
|
||||
// Private methods
|
||||
|
@ -35,7 +38,7 @@ class Display {
|
|||
|
||||
private:
|
||||
// Private members
|
||||
Adafruit_NeoPixel m_leds;
|
||||
Adafruit_NeoPixel& m_leds;
|
||||
std::array<uint8_t, 12U> m_precipitation_forecast_map;
|
||||
std::array<uint8_t, 12U> m_air_quality_forecast_map;
|
||||
uint8_t m_max_pollen_map;
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
#include "../include/display.hpp"
|
||||
|
||||
Display::Display() {
|
||||
// m_leds = Adafruit_NeoPixel(m_NUM_LEDS_PROTO_V1, m_DATA_PIN_PROTO_V1, NEO_RGBW + NEO_KHZ800);
|
||||
|
||||
Display::Display(Adafruit_NeoPixel& p_leds) : m_leds(p_leds) {
|
||||
m_precipitation_forecast_map = {11, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
||||
m_air_quality_forecast_map = {23, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22};
|
||||
m_max_pollen_map = 26;
|
||||
|
@ -13,8 +11,8 @@ Display::Display() {
|
|||
return;
|
||||
}
|
||||
|
||||
void Display::setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_aqi,
|
||||
ArduinoJson::V710PB22::JsonArray p_pollen) {
|
||||
void Display::setPollenPlusAQIForecastLeds(uint32_t p_current_time, ArduinoJson::V710PB22::JsonArray p_pollen,
|
||||
ArduinoJson::V710PB22::JsonArray p_aqi) {
|
||||
uint32_t first_aqi_time = p_pollen[0]["aqi"].as<uint32_t>();
|
||||
uint32_t first_pollen_time = p_pollen[0]["time"].as<uint32_t>();
|
||||
|
||||
|
@ -77,6 +75,20 @@ void Display::setLocalAirQualityLed() {}
|
|||
|
||||
void Display::setWifiStatusLed(bool p_enable) {}
|
||||
|
||||
void Display::setPixelColor(uint32_t p_index, uint8_t p_red, uint8_t p_green, uint8_t p_blue, uint8_t p_white) {
|
||||
m_leds.setPixelColor(p_index, m_leds.Color(p_red, p_green, p_blue, p_white));
|
||||
}
|
||||
|
||||
void Display::clear() {
|
||||
m_leds.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
void Display::show() {
|
||||
m_leds.show();
|
||||
return;
|
||||
}
|
||||
|
||||
float Display::findMaxValueInTwelveHourInterval(uint32_t p_time_stamp, ArduinoJson::V710PB22::JsonArray p_array) {
|
||||
float max_value = 0.0f;
|
||||
|
||||
|
|
16
src/main.cpp
16
src/main.cpp
|
@ -1,3 +1,4 @@
|
|||
#include <Adafruit_NeoPixel.h>
|
||||
#include <dESPatch.h>
|
||||
|
||||
#include "../include/backend_communication.hpp"
|
||||
|
@ -15,12 +16,18 @@
|
|||
#define CONNECT_BUTTON BUTTON_BUILTIN
|
||||
|
||||
DESPatch dESPatch;
|
||||
Display display;
|
||||
|
||||
Adafruit_NeoPixel leds = Adafruit_NeoPixel(29, 14, NEO_GRBW + NEO_KHZ800);
|
||||
Display display(leds);
|
||||
|
||||
WifiHandler wifi_handler(LED_BUILTIN, display);
|
||||
|
||||
BackendCommunication backend_communication(wifi_handler);
|
||||
|
||||
void setup() {
|
||||
display.clear();
|
||||
display.show();
|
||||
|
||||
Serial.begin(115200);
|
||||
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
|
@ -88,7 +95,12 @@ void loop(void) {
|
|||
text = String(millis()) + " time: " + std::to_string(time).c_str();
|
||||
Serial.println(text);
|
||||
|
||||
// display.setUVIForecastLed(time, backend_communication.m_weather_data["UVI"].as<JsonArray>());
|
||||
// display.setPollenPlusAQIForecastLeds(time, backend_communication.m_weather_data["pollen"].as<JsonArray>(),
|
||||
// backend_communication.m_weather_data["AQI"].as<JsonArray>());
|
||||
// display.setPrecipitationForecastLeds(time,
|
||||
// backend_communication.m_weather_data["precipitation"].as<JsonArray>());
|
||||
display.setUVIForecastLed(time, backend_communication.m_weather_data["UVI"].as<JsonArray>());
|
||||
display.show();
|
||||
}
|
||||
dESPatch.checkForUpdate(true);
|
||||
delay(2000);
|
||||
|
|
Loading…
Reference in a new issue