Refactor code to use OpenWeatherMap
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/**The MIT License (MIT)
|
/**The MIT License (MIT)
|
||||||
Copyright (c) 2017 by Daniel Eichhorn
|
Copyright (c) 2018 by Daniel Eichhorn
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
in the Software without restriction, including without limitation the rights
|
in the Software without restriction, including without limitation the rights
|
||||||
@@ -41,9 +41,9 @@ See more at https://blog.squix.org
|
|||||||
***/
|
***/
|
||||||
|
|
||||||
#include <JsonListener.h>
|
#include <JsonListener.h>
|
||||||
#include <WundergroundConditions.h>
|
#include <OpenWeatherMapCurrent.h>
|
||||||
#include <WundergroundForecast.h>
|
#include <OpenWeatherMapForecast.h>
|
||||||
#include <WundergroundAstronomy.h>
|
#include <Astronomy.h>
|
||||||
#include <MiniGrafx.h>
|
#include <MiniGrafx.h>
|
||||||
#include <Carousel.h>
|
#include <Carousel.h>
|
||||||
#include <ILI9341_SPI.h>
|
#include <ILI9341_SPI.h>
|
||||||
@@ -91,13 +91,10 @@ void calibrationCallback(int16_t x, int16_t y);
|
|||||||
CalibrationCallback calibration = &calibrationCallback;
|
CalibrationCallback calibration = &calibrationCallback;
|
||||||
|
|
||||||
|
|
||||||
|
OpenWeatherMapCurrentData currentWeather;
|
||||||
WGConditions conditions;
|
OpenWeatherMapForecastData forecasts[MAX_FORECASTS];
|
||||||
WGForecast forecasts[MAX_FORECASTS];
|
|
||||||
WGAstronomy astronomy;
|
|
||||||
|
|
||||||
// Setup simpleDSTadjust Library rules
|
|
||||||
simpleDSTadjust dstAdjusted(StartRule, EndRule);
|
simpleDSTadjust dstAdjusted(StartRule, EndRule);
|
||||||
|
Astronomy::MoonData moonData;
|
||||||
|
|
||||||
void updateData();
|
void updateData();
|
||||||
void drawProgress(uint8_t percentage, String text);
|
void drawProgress(uint8_t percentage, String text);
|
||||||
@@ -112,12 +109,14 @@ void drawLabelValue(uint8_t line, String label, String value);
|
|||||||
void drawForecastTable(uint8_t start);
|
void drawForecastTable(uint8_t start);
|
||||||
void drawAbout();
|
void drawAbout();
|
||||||
void drawSeparator(uint16_t y);
|
void drawSeparator(uint16_t y);
|
||||||
|
String getTime(time_t *timestamp);
|
||||||
const char* getMeteoconIconFromProgmem(String iconText);
|
const char* getMeteoconIconFromProgmem(String iconText);
|
||||||
const char* getMiniMeteoconIconFromProgmem(String iconText);
|
const char* getMiniMeteoconIconFromProgmem(String iconText);
|
||||||
void drawForecast1(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y);
|
void drawForecast1(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y);
|
||||||
void drawForecast2(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y);
|
void drawForecast2(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y);
|
||||||
FrameCallback frames[] = { drawForecast1, drawForecast2 };
|
void drawForecast3(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y);
|
||||||
int frameCount = 2;
|
FrameCallback frames[] = { drawForecast1, drawForecast2, drawForecast3 };
|
||||||
|
int frameCount = 3;
|
||||||
|
|
||||||
// how many different screens do we have?
|
// how many different screens do we have?
|
||||||
int screenCount = 5;
|
int screenCount = 5;
|
||||||
@@ -127,6 +126,7 @@ String moonAgeImage = "";
|
|||||||
uint16_t screen = 0;
|
uint16_t screen = 0;
|
||||||
long timerPress;
|
long timerPress;
|
||||||
bool canBtnPress;
|
bool canBtnPress;
|
||||||
|
time_t dstOffset = 0;
|
||||||
|
|
||||||
void connectWifi() {
|
void connectWifi() {
|
||||||
if (WiFi.status() == WL_CONNECTED) return;
|
if (WiFi.status() == WL_CONNECTED) return;
|
||||||
@@ -146,6 +146,8 @@ void connectWifi() {
|
|||||||
i+=10;
|
i+=10;
|
||||||
Serial.print(".");
|
Serial.print(".");
|
||||||
}
|
}
|
||||||
|
drawProgress(100,"Connected to WiFi '" + String(WIFI_SSID) + "'");
|
||||||
|
Serial.print("Connected...");
|
||||||
}
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
@@ -165,12 +167,17 @@ void setup() {
|
|||||||
|
|
||||||
connectWifi();
|
connectWifi();
|
||||||
|
|
||||||
|
Serial.println("Initializing touch screen...");
|
||||||
ts.begin();
|
ts.begin();
|
||||||
|
|
||||||
|
Serial.println("Mounting file system...");
|
||||||
bool isFSMounted = SPIFFS.begin();
|
bool isFSMounted = SPIFFS.begin();
|
||||||
if (!isFSMounted) {
|
if (!isFSMounted) {
|
||||||
|
Serial.println("Formatting file system...");
|
||||||
|
drawProgress(50,"Formatting file system");
|
||||||
SPIFFS.format();
|
SPIFFS.format();
|
||||||
}
|
}
|
||||||
|
drawProgress(100,"Formatting done");
|
||||||
//SPIFFS.remove("/calibration.txt");
|
//SPIFFS.remove("/calibration.txt");
|
||||||
boolean isCalibrationAvailable = touchController.loadCalibration();
|
boolean isCalibrationAvailable = touchController.loadCalibration();
|
||||||
if (!isCalibrationAvailable) {
|
if (!isCalibrationAvailable) {
|
||||||
@@ -200,19 +207,28 @@ void setup() {
|
|||||||
|
|
||||||
long lastDrew = 0;
|
long lastDrew = 0;
|
||||||
bool btnClick;
|
bool btnClick;
|
||||||
|
uint8_t MAX_TOUCHPOINTS = 10;
|
||||||
|
TS_Point points[10];
|
||||||
|
uint8_t currentTouchPoint = 0;
|
||||||
void loop() {
|
void loop() {
|
||||||
|
gfx.fillBuffer(MINI_BLACK);
|
||||||
if (touchController.isTouched(500)) {
|
if (touchController.isTouched(0)) {
|
||||||
TS_Point p = touchController.getPoint();
|
TS_Point p = touchController.getPoint();
|
||||||
|
|
||||||
if (p.y < 80) {
|
if (p.y < 80) {
|
||||||
IS_STYLE_12HR = !IS_STYLE_12HR;
|
IS_STYLE_12HR = !IS_STYLE_12HR;
|
||||||
} else {
|
} else {
|
||||||
screen = (screen + 1) % screenCount;
|
screen = (screen + 1) % screenCount;
|
||||||
}
|
}
|
||||||
|
/*points[currentTouchPoint] = p;
|
||||||
|
currentTouchPoint = (currentTouchPoint+1) % MAX_TOUCHPOINTS;
|
||||||
|
for (uint8_t i = 0; i < MAX_TOUCHPOINTS; i++) {
|
||||||
|
TS_Point tsp = points[i];
|
||||||
|
gfx.drawCircle(tsp.x -5 , tsp.y - 5, 10);
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
gfx.fillBuffer(MINI_BLACK);
|
|
||||||
if (screen == 0) {
|
if (screen == 0) {
|
||||||
drawTime();
|
drawTime();
|
||||||
drawWifiQuality();
|
drawWifiQuality();
|
||||||
@@ -230,7 +246,7 @@ void loop() {
|
|||||||
} else if (screen == 2) {
|
} else if (screen == 2) {
|
||||||
drawForecastTable(0);
|
drawForecastTable(0);
|
||||||
} else if (screen == 3) {
|
} else if (screen == 3) {
|
||||||
drawForecastTable(6);
|
drawForecastTable(4);
|
||||||
} else if (screen == 4) {
|
} else if (screen == 4) {
|
||||||
drawAbout();
|
drawAbout();
|
||||||
}
|
}
|
||||||
@@ -263,37 +279,49 @@ void updateData() {
|
|||||||
|
|
||||||
drawProgress(10, "Updating time...");
|
drawProgress(10, "Updating time...");
|
||||||
configTime(UTC_OFFSET * 3600, 0, NTP_SERVERS);
|
configTime(UTC_OFFSET * 3600, 0, NTP_SERVERS);
|
||||||
|
while(!time(nullptr)) {
|
||||||
|
Serial.print("#");
|
||||||
|
delay(100);
|
||||||
|
}
|
||||||
|
// calculate for time calculation how much the dst class adds.
|
||||||
|
dstOffset = UTC_OFFSET * 3600 + dstAdjusted.time(nullptr) - time(nullptr);
|
||||||
|
Serial.printf("Time difference for DST: %d", dstOffset);
|
||||||
|
|
||||||
drawProgress(50, "Updating conditions...");
|
drawProgress(50, "Updating conditions...");
|
||||||
WundergroundConditions *conditionsClient = new WundergroundConditions(IS_METRIC);
|
OpenWeatherMapCurrent *currentWeatherClient = new OpenWeatherMapCurrent();
|
||||||
conditionsClient->updateConditions(&conditions, WUNDERGRROUND_API_KEY, WUNDERGRROUND_LANGUAGE, WUNDERGROUND_COUNTRY, WUNDERGROUND_CITY);
|
currentWeatherClient->setMetric(IS_METRIC);
|
||||||
delete conditionsClient;
|
currentWeatherClient->setLanguage(OPEN_WEATHER_MAP_LANGUAGE);
|
||||||
conditionsClient = nullptr;
|
currentWeatherClient->updateCurrent(¤tWeather, OPEN_WEATHER_MAP_APP_ID, OPEN_WEATHER_MAP_LOCATION);
|
||||||
|
delete currentWeatherClient;
|
||||||
|
currentWeatherClient = nullptr;
|
||||||
|
|
||||||
drawProgress(70, "Updating forecasts...");
|
drawProgress(70, "Updating forecasts...");
|
||||||
WundergroundForecast *forecastClient = new WundergroundForecast(IS_METRIC);
|
OpenWeatherMapForecast *forecastClient = new OpenWeatherMapForecast();
|
||||||
forecastClient->updateForecast(forecasts, MAX_FORECASTS, WUNDERGRROUND_API_KEY, WUNDERGRROUND_LANGUAGE, WUNDERGROUND_COUNTRY, WUNDERGROUND_CITY);
|
forecastClient->setMetric(IS_METRIC);
|
||||||
|
forecastClient->setLanguage(OPEN_WEATHER_MAP_LANGUAGE);
|
||||||
|
uint8_t allowedHours[] = {12, 0};
|
||||||
|
forecastClient->setAllowedHours(allowedHours, sizeof(allowedHours));
|
||||||
|
forecastClient->updateForecasts(forecasts, OPEN_WEATHER_MAP_APP_ID, OPEN_WEATHER_MAP_LOCATION, MAX_FORECASTS);
|
||||||
delete forecastClient;
|
delete forecastClient;
|
||||||
forecastClient = nullptr;
|
forecastClient = nullptr;
|
||||||
|
|
||||||
drawProgress(80, "Updating astronomy...");
|
drawProgress(80, "Updating astronomy...");
|
||||||
WundergroundAstronomy *astronomyClient = new WundergroundAstronomy(IS_STYLE_12HR);
|
Astronomy *astronomy = new Astronomy();
|
||||||
astronomyClient->updateAstronomy(&astronomy, WUNDERGRROUND_API_KEY, WUNDERGRROUND_LANGUAGE, WUNDERGROUND_COUNTRY, WUNDERGROUND_CITY);
|
moonData = astronomy->calculateMoonData(time(nullptr));
|
||||||
delete astronomyClient;
|
moonAgeImage = String((char) (65 + ((uint8_t) (26 * moonData.illumination)) % 26 ));
|
||||||
astronomyClient = nullptr;
|
delete astronomy;
|
||||||
moonAgeImage = String((char) (65 + 26 * (((15 + astronomy.moonAge.toInt()) % 30) / 30.0)));
|
astronomy = nullptr;
|
||||||
|
|
||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Progress bar helper
|
// Progress bar helper
|
||||||
void drawProgress(uint8_t percentage, String text) {
|
void drawProgress(uint8_t percentage, String text) {
|
||||||
gfx.fillBuffer(MINI_BLACK);
|
gfx.fillBuffer(MINI_BLACK);
|
||||||
gfx.drawPalettedBitmapFromPgm(23, 30, SquixLogo);
|
gfx.drawPalettedBitmapFromPgm(20, 5, ThingPulseLogo);
|
||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
gfx.setColor(MINI_WHITE);
|
gfx.setColor(MINI_WHITE);
|
||||||
gfx.drawString(120, 80, "https://thingpulse.com");
|
gfx.drawString(120, 90, "https://thingpulse.com");
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
|
|
||||||
gfx.drawString(120, 146, text);
|
gfx.drawString(120, 146, text);
|
||||||
@@ -308,8 +336,8 @@ void drawProgress(uint8_t percentage, String text) {
|
|||||||
// draws the clock
|
// draws the clock
|
||||||
void drawTime() {
|
void drawTime() {
|
||||||
|
|
||||||
char *dstAbbrev;
|
|
||||||
char time_str[11];
|
char time_str[11];
|
||||||
|
char *dstAbbrev;
|
||||||
time_t now = dstAdjusted.time(&dstAbbrev);
|
time_t now = dstAdjusted.time(&dstAbbrev);
|
||||||
struct tm * timeinfo = localtime (&now);
|
struct tm * timeinfo = localtime (&now);
|
||||||
|
|
||||||
@@ -346,61 +374,60 @@ void drawTime() {
|
|||||||
// draws current weather information
|
// draws current weather information
|
||||||
void drawCurrentWeather() {
|
void drawCurrentWeather() {
|
||||||
gfx.setTransparentColor(MINI_BLACK);
|
gfx.setTransparentColor(MINI_BLACK);
|
||||||
gfx.drawPalettedBitmapFromPgm(0, 55, getMeteoconIconFromProgmem(conditions.weatherIcon));
|
gfx.drawPalettedBitmapFromPgm(0, 55, getMeteoconIconFromProgmem(currentWeather.icon));
|
||||||
// Weather Text
|
// Weather Text
|
||||||
|
|
||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
gfx.setColor(MINI_BLUE);
|
gfx.setColor(MINI_BLUE);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
||||||
gfx.drawString(220, 65, DISPLAYED_CITY_NAME);
|
gfx.drawString(220, 65, currentWeather.cityName);
|
||||||
|
|
||||||
gfx.setFont(ArialRoundedMTBold_36);
|
gfx.setFont(ArialRoundedMTBold_36);
|
||||||
gfx.setColor(MINI_WHITE);
|
gfx.setColor(MINI_WHITE);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
||||||
String degreeSign = "°F";
|
|
||||||
if (IS_METRIC) {
|
|
||||||
degreeSign = "°C";
|
|
||||||
}
|
|
||||||
|
|
||||||
String temp = conditions.currentTemp + degreeSign;
|
gfx.drawString(220, 78, String(currentWeather.temp, 1) + (IS_METRIC ? "°C" : "°F"));
|
||||||
|
|
||||||
gfx.drawString(220, 78, temp);
|
|
||||||
|
|
||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
||||||
gfx.drawString(220, 118, conditions.weatherText);
|
gfx.drawString(220, 118, currentWeather.description);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawForecast1(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y) {
|
void drawForecast1(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y) {
|
||||||
drawForecastDetail(x + 10, y + 165, 0);
|
drawForecastDetail(x + 10, y + 165, 0);
|
||||||
drawForecastDetail(x + 95, y + 165, 2);
|
drawForecastDetail(x + 95, y + 165, 1);
|
||||||
drawForecastDetail(x + 180, y + 165, 4);
|
drawForecastDetail(x + 180, y + 165, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawForecast2(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y) {
|
void drawForecast2(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y) {
|
||||||
drawForecastDetail(x + 10, y + 165, 6);
|
drawForecastDetail(x + 10, y + 165, 3);
|
||||||
drawForecastDetail(x + 95, y + 165, 8);
|
drawForecastDetail(x + 95, y + 165, 4);
|
||||||
drawForecastDetail(x + 180, y + 165, 10);
|
drawForecastDetail(x + 180, y + 165, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawForecast3(MiniGrafx *display, CarouselState* state, int16_t x, int16_t y) {
|
||||||
|
drawForecastDetail(x + 10, y + 165, 6);
|
||||||
|
drawForecastDetail(x + 95, y + 165, 7);
|
||||||
|
drawForecastDetail(x + 180, y + 165, 8);
|
||||||
|
}
|
||||||
|
|
||||||
// helper for the forecast columns
|
// helper for the forecast columns
|
||||||
void drawForecastDetail(uint16_t x, uint16_t y, uint8_t dayIndex) {
|
void drawForecastDetail(uint16_t x, uint16_t y, uint8_t dayIndex) {
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
String day = forecasts[dayIndex].forecastTitle.substring(0, 3);
|
time_t time = forecasts[dayIndex].observationTime + dstOffset;
|
||||||
day.toUpperCase();
|
struct tm * timeinfo = localtime (&time);
|
||||||
gfx.drawString(x + 25, y - 15, day);
|
gfx.drawString(x + 25, y - 15, WDAY_NAMES[timeinfo->tm_wday] + " " + String(timeinfo->tm_hour) + ":00");
|
||||||
|
|
||||||
gfx.setColor(MINI_WHITE);
|
gfx.setColor(MINI_WHITE);
|
||||||
gfx.drawString(x + 25, y, forecasts[dayIndex].forecastLowTemp + "|" + forecasts[dayIndex].forecastHighTemp);
|
gfx.drawString(x + 25, y, String(forecasts[dayIndex].temp, 1) + (IS_METRIC ? "°C" : "°F"));
|
||||||
|
|
||||||
gfx.drawPalettedBitmapFromPgm(x, y + 15, getMiniMeteoconIconFromProgmem(forecasts[dayIndex].forecastIcon));
|
gfx.drawPalettedBitmapFromPgm(x, y + 15, getMiniMeteoconIconFromProgmem(forecasts[dayIndex].icon));
|
||||||
gfx.setColor(MINI_BLUE);
|
gfx.setColor(MINI_BLUE);
|
||||||
gfx.drawString(x + 25, y + 60, forecasts[dayIndex].PoP + "%");
|
gfx.drawString(x + 25, y + 60, String(forecasts[dayIndex].rain, 1) + (IS_METRIC ? "mm" : "in"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// draw moonphase and sunrise/set and moonrise/set
|
// draw moonphase and sunrise/set and moonrise/set
|
||||||
@@ -415,20 +442,23 @@ void drawAstronomy() {
|
|||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
gfx.drawString(120, 250, astronomy.moonPhase);
|
gfx.drawString(120, 250, MOON_PHASES[moonData.phase]);
|
||||||
|
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
gfx.drawString(5, 250, "Sun");
|
gfx.drawString(5, 250, "Sun");
|
||||||
gfx.setColor(MINI_WHITE);
|
gfx.setColor(MINI_WHITE);
|
||||||
gfx.drawString(5, 276, astronomy.sunriseTime);
|
time_t time = currentWeather.sunrise + dstOffset;
|
||||||
gfx.drawString(5, 291, astronomy.sunsetTime);
|
gfx.drawString(5, 276, getTime(&time));
|
||||||
|
time = currentWeather.sunset + dstOffset;
|
||||||
|
gfx.drawString(5, 291, getTime(&time));
|
||||||
|
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
/*gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
gfx.drawString(235, 250, "Moon");
|
gfx.drawString(235, 250, "Moon");
|
||||||
gfx.setColor(MINI_WHITE);
|
gfx.setColor(MINI_WHITE);
|
||||||
gfx.drawString(235, 276, astronomy.moonriseTime);
|
gfx.drawString(235, 276, astronomy.moonriseTime);
|
||||||
gfx.drawString(235, 291, astronomy.moonsetTime);
|
gfx.drawString(235, 291, astronomy.moonsetTime);*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,21 +477,20 @@ void drawCurrentWeatherDetail() {
|
|||||||
}
|
}
|
||||||
// String weatherIcon;
|
// String weatherIcon;
|
||||||
// String weatherText;
|
// String weatherText;
|
||||||
drawLabelValue(0, "Temperature:", conditions.currentTemp + degreeSign);
|
drawLabelValue(0, "Temperature:", currentWeather.temp + degreeSign);
|
||||||
drawLabelValue(1, "Feels Like:", conditions.feelslike + degreeSign);
|
drawLabelValue(1, "Wind Speed:", String(currentWeather.windSpeed, 1) + (IS_METRIC ? "m/s" : "mph") );
|
||||||
drawLabelValue(2, "Dew Point:", conditions.dewPoint + degreeSign);
|
drawLabelValue(2, "Wind Dir:", String(currentWeather.windDeg, 1) + "°");
|
||||||
drawLabelValue(3, "Wind Speed:", conditions.windSpeed);
|
drawLabelValue(3, "Humidity:", String(currentWeather.humidity) + "%");
|
||||||
drawLabelValue(4, "Wind Dir:", conditions.windDir);
|
drawLabelValue(4, "Pressure:", String(currentWeather.pressure) + "hPa");
|
||||||
drawLabelValue(5, "Humidity:", conditions.humidity);
|
drawLabelValue(5, "Clouds:", String(currentWeather.clouds) + "%");
|
||||||
drawLabelValue(6, "Pressure:", conditions.pressure);
|
drawLabelValue(6, "Visibility:", String(currentWeather.visibility) + "m");
|
||||||
drawLabelValue(7, "Precipitation:", conditions.precipitationToday);
|
|
||||||
drawLabelValue(8, "UV:", conditions.UV);
|
|
||||||
|
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
|
||||||
|
/*gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
gfx.drawString(15, 185, "Description: ");
|
gfx.drawString(15, 185, "Description: ");
|
||||||
gfx.setColor(MINI_WHITE);
|
gfx.setColor(MINI_WHITE);
|
||||||
gfx.drawStringMaxWidth(15, 200, 240 - 2 * 15, forecasts[0].forecastText);
|
gfx.drawStringMaxWidth(15, 200, 240 - 2 * 15, forecasts[0].forecastText);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawLabelValue(uint8_t line, String label, String value) {
|
void drawLabelValue(uint8_t line, String label, String value) {
|
||||||
@@ -511,48 +540,67 @@ void drawForecastTable(uint8_t start) {
|
|||||||
if (IS_METRIC) {
|
if (IS_METRIC) {
|
||||||
degreeSign = "°C";
|
degreeSign = "°C";
|
||||||
}
|
}
|
||||||
for (uint8_t i = start; i < start + 6; i++) {
|
for (uint8_t i = start; i < start + 4; i++) {
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
||||||
y = 30 + (i - start) * 45;
|
y = 45 + (i - start) * 75;
|
||||||
if (y > 320) {
|
if (y > 320) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gfx.drawPalettedBitmapFromPgm(0, y, getMiniMeteoconIconFromProgmem(forecasts[i].forecastIcon));
|
gfx.setColor(MINI_WHITE);
|
||||||
|
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
|
time_t time = forecasts[i].observationTime + dstOffset;
|
||||||
|
struct tm * timeinfo = localtime (&time);
|
||||||
|
gfx.drawString(120, y - 15, WDAY_NAMES[timeinfo->tm_wday] + " " + String(timeinfo->tm_hour) + ":00");
|
||||||
|
|
||||||
|
|
||||||
|
gfx.drawPalettedBitmapFromPgm(0, 15 + y, getMiniMeteoconIconFromProgmem(forecasts[i].icon));
|
||||||
|
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
||||||
gfx.setColor(MINI_YELLOW);
|
gfx.setColor(MINI_YELLOW);
|
||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
|
gfx.drawString(10, y, forecasts[i].main);
|
||||||
|
gfx.setTextAlignment(TEXT_ALIGN_LEFT);
|
||||||
|
|
||||||
gfx.drawString(50, y, forecasts[i].forecastTitle);
|
|
||||||
gfx.setColor(MINI_WHITE);
|
|
||||||
gfx.drawString(50, y + 15, getShortText(forecasts[i].forecastIcon));
|
|
||||||
gfx.setColor(MINI_WHITE);
|
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
|
|
||||||
|
|
||||||
String temp = "";
|
|
||||||
if (i % 2 == 0) {
|
|
||||||
temp = forecasts[i].forecastHighTemp;
|
|
||||||
} else {
|
|
||||||
temp = forecasts[i - 1].forecastLowTemp;
|
|
||||||
}
|
|
||||||
gfx.drawString(235, y, temp + degreeSign);
|
|
||||||
/*gfx.setColor(MINI_WHITE);
|
|
||||||
gfx.drawString(x + 25, y, forecasts[dayIndex].forecastLowTemp + "|" + forecasts[dayIndex].forecastHighTemp);
|
|
||||||
|
|
||||||
gfx.drawPalettedBitmapFromPgm(x, y + 15, getMiniMeteoconIconFromProgmem(forecasts[dayIndex].forecastIcon));*/
|
|
||||||
gfx.setColor(MINI_BLUE);
|
gfx.setColor(MINI_BLUE);
|
||||||
gfx.drawString(235, y + 15, forecasts[i].PoP + "%");
|
gfx.drawString(50, y, "T:");
|
||||||
|
gfx.setColor(MINI_WHITE);
|
||||||
|
gfx.drawString(70, y, String(forecasts[i].temp, 0) + degreeSign);
|
||||||
|
|
||||||
|
gfx.setColor(MINI_BLUE);
|
||||||
|
gfx.drawString(50, y + 15, "H:");
|
||||||
|
gfx.setColor(MINI_WHITE);
|
||||||
|
gfx.drawString(70, y + 15, String(forecasts[i].humidity) + "%");
|
||||||
|
|
||||||
|
gfx.setColor(MINI_BLUE);
|
||||||
|
gfx.drawString(50, y + 30, "P: ");
|
||||||
|
gfx.setColor(MINI_WHITE);
|
||||||
|
gfx.drawString(70, y + 30, String(forecasts[i].rain, 2) + (IS_METRIC ? "mm" : "in"));
|
||||||
|
|
||||||
|
gfx.setColor(MINI_BLUE);
|
||||||
|
gfx.drawString(130, y, "Pr:");
|
||||||
|
gfx.setColor(MINI_WHITE);
|
||||||
|
gfx.drawString(170, y, String(forecasts[i].pressure, 0) + "hPa");
|
||||||
|
|
||||||
|
gfx.setColor(MINI_BLUE);
|
||||||
|
gfx.drawString(130, y + 15, "WSp:");
|
||||||
|
gfx.setColor(MINI_WHITE);
|
||||||
|
gfx.drawString(170, y + 15, String(forecasts[i].windSpeed, 0) + (IS_METRIC ? "m/s" : "mph") );
|
||||||
|
|
||||||
|
gfx.setColor(MINI_BLUE);
|
||||||
|
gfx.drawString(130, y + 30, "WDi: ");
|
||||||
|
gfx.setColor(MINI_WHITE);
|
||||||
|
gfx.drawString(170, y + 30, String(forecasts[i].windDeg, 0) + "°");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawAbout() {
|
void drawAbout() {
|
||||||
gfx.fillBuffer(MINI_BLACK);
|
gfx.fillBuffer(MINI_BLACK);
|
||||||
gfx.drawPalettedBitmapFromPgm(23, 30, SquixLogo);
|
gfx.drawPalettedBitmapFromPgm(20, 5, ThingPulseLogo);
|
||||||
|
|
||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
gfx.setColor(MINI_WHITE);
|
gfx.setColor(MINI_WHITE);
|
||||||
gfx.drawString(120, 80, "https://thingpulse.com");
|
gfx.drawString(120, 90, "https://thingpulse.com");
|
||||||
|
|
||||||
gfx.setFont(ArialRoundedMTBold_14);
|
gfx.setFont(ArialRoundedMTBold_14);
|
||||||
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
gfx.setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
@@ -583,3 +631,11 @@ void calibrationCallback(int16_t x, int16_t y) {
|
|||||||
gfx.fillCircle(x, y, 10);
|
gfx.fillCircle(x, y, 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getTime(time_t *timestamp) {
|
||||||
|
struct tm *timeInfo = gmtime(timestamp);
|
||||||
|
|
||||||
|
char buf[6];
|
||||||
|
sprintf(buf, "%02d:%02d", timeInfo->tm_hour, timeInfo->tm_min);
|
||||||
|
return String(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
40
settings.h
40
settings.h
@@ -40,22 +40,32 @@ const int SLEEP_INTERVAL_SECS = 0; // Going to Sleep after idle times, set 0 f
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Wunderground Settings
|
// OpenWeatherMap Settings
|
||||||
// To check your settings first try them out in your browser:
|
// Sign up here to get an API key:
|
||||||
// http://api.wunderground.com/api/WUNDERGROUND_API_KEY/conditions/q/WUNDERGROUND_COUNTTRY/WUNDERGROUND_CITY.json
|
// https://home.openweathermap.org/users/sign_up
|
||||||
// e.g. http://api.wunderground.com/api/808ba87ed77c4511/conditions/q/CH/Zurich.json
|
const boolean IS_METRIC = true;
|
||||||
// e.g. http://api.wunderground.com/api/808ba87ed77c4511/conditions/q/CA/SAN_FRANCISCO.json <- note that in the US you use the state instead of country code
|
String OPEN_WEATHER_MAP_APP_ID = "6bdd4d9d45a97d690103477a4c67c38f";
|
||||||
// If you want to have control over the exact weather station ("observation location") that WU uses you need to replace
|
String OPEN_WEATHER_MAP_LOCATION = "Zurich,CH";
|
||||||
// the city with "pws:STATION_ID". So, for the Aquatic Park in San Francisco you'd use "pws:KCASANFR359".
|
|
||||||
// Alternative query options are documented at https://www.wunderground.com/weather/api/d/docs?d=data/index&MR=1#standard_request_url_format
|
|
||||||
|
|
||||||
const String DISPLAYED_CITY_NAME = "Zurich";
|
// Pick a language code from this list:
|
||||||
const String WUNDERGRROUND_API_KEY = "<YOUR_WUNDERGROUND_API_KEY>";
|
// Arabic - ar, Bulgarian - bg, Catalan - ca, Czech - cz, German - de, Greek - el,
|
||||||
const String WUNDERGRROUND_LANGUAGE = "EN"; // as per https://www.wunderground.com/weather/api/d/docs?d=resources/country-to-iso-matching
|
// English - en, Persian (Farsi) - fa, Finnish - fi, French - fr, Galician - gl,
|
||||||
const String WUNDERGROUND_COUNTRY = "CH";
|
// Croatian - hr, Hungarian - hu, Italian - it, Japanese - ja, Korean - kr,
|
||||||
const String WUNDERGROUND_CITY = "Zurich";
|
// Latvian - la, Lithuanian - lt, Macedonian - mk, Dutch - nl, Polish - pl,
|
||||||
|
// Portuguese - pt, Romanian - ro, Russian - ru, Swedish - se, Slovak - sk,
|
||||||
|
// Slovenian - sl, Spanish - es, Turkish - tr, Ukrainian - ua, Vietnamese - vi,
|
||||||
|
// Chinese Simplified - zh_cn, Chinese Traditional - zh_tw.
|
||||||
|
|
||||||
#define UTC_OFFSET + 1
|
String OPEN_WEATHER_MAP_LANGUAGE = "en";
|
||||||
|
const uint8_t MAX_FORECASTS = 10;
|
||||||
|
|
||||||
|
// Adjust according to your language
|
||||||
|
const String WDAY_NAMES[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
|
||||||
|
const String MONTH_NAMES[] = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
|
||||||
|
const String MOON_PHASES[] = {"New Moon", "Waxing Crescent", "First Quarter", "Waxing Gibbous",
|
||||||
|
"Full Moon", "Waning Gibbous", "Third quarter", "Waning Crescent"};
|
||||||
|
|
||||||
|
#define UTC_OFFSET +1
|
||||||
struct dstRule StartRule = {"CEST", Last, Sun, Mar, 2, 3600}; // Central European Summer Time = UTC/GMT +2 hours
|
struct dstRule StartRule = {"CEST", Last, Sun, Mar, 2, 3600}; // Central European Summer Time = UTC/GMT +2 hours
|
||||||
struct dstRule EndRule = {"CET", Last, Sun, Oct, 2, 0}; // Central European Time = UTC/GMT +1 hour
|
struct dstRule EndRule = {"CET", Last, Sun, Oct, 2, 0}; // Central European Time = UTC/GMT +1 hour
|
||||||
|
|
||||||
@@ -64,8 +74,6 @@ struct dstRule EndRule = {"CET", Last, Sun, Oct, 2, 0}; // Central Europea
|
|||||||
// struct dstRule StartRule = {"EDT", Second, Sun, Mar, 2, 3600}; // Eastern Daylight time = UTC/GMT -4 hours
|
// struct dstRule StartRule = {"EDT", Second, Sun, Mar, 2, 3600}; // Eastern Daylight time = UTC/GMT -4 hours
|
||||||
// struct dstRule EndRule = {"EST", First, Sun, Nov, 1, 0}; // Eastern Standard time = UTC/GMT -5 hour
|
// struct dstRule EndRule = {"EST", First, Sun, Nov, 1, 0}; // Eastern Standard time = UTC/GMT -5 hour
|
||||||
|
|
||||||
// values in metric or imperial system?
|
|
||||||
bool IS_METRIC = true;
|
|
||||||
|
|
||||||
// Change for 12 Hour/ 24 hour style clock
|
// Change for 12 Hour/ 24 hour style clock
|
||||||
bool IS_STYLE_12HR = false;
|
bool IS_STYLE_12HR = false;
|
||||||
|
|||||||
379
weathericons.h
379
weathericons.h
@@ -1,10 +1,141 @@
|
|||||||
|
const char ThingPulseLogo[] PROGMEM = {
|
||||||
const char SquixLogo[] PROGMEM = {
|
|
||||||
0x01, // Version: 1
|
0x01, // Version: 1
|
||||||
0x02, // BitDepth: 2
|
0x02, // BitDepth: 2
|
||||||
0x00, 0xC1, // Width: 193
|
0x00, 0xC8, // Width: 200
|
||||||
0x00, 0x38, // Height: 56
|
0x00, 0x50, // Height: 80
|
||||||
// Round width to next byte: 200
|
// Round width to next byte: 200
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA,
|
||||||
|
0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xA0,
|
||||||
|
0x0F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xA0, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0,
|
||||||
|
0x0F, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xA0, 0x0F, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xA0,
|
||||||
|
0x0F, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xA0, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xA0,
|
||||||
|
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0xA0, 0x00,
|
||||||
|
0x0A, 0xAA, 0xAA, 0xAA, 0x80, 0x02, 0xAA, 0xAA, 0xAA, 0xA0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xA0, 0x0A, 0xAA, 0xAA, 0xAA, 0x00,
|
||||||
|
0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x02, 0xAA, 0xAA, 0xA0, 0x2A, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xA0, 0x2A, 0xAA, 0xAA, 0x00, 0x00,
|
||||||
|
0x0F, 0xF0, 0x00, 0x3F, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x0A, 0xAA, 0x80, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x0F, 0xFF, 0xC0, 0x0F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0x82, 0xAA, 0xAA, 0xA0, 0x00, 0x00,
|
||||||
|
0x0F, 0xFF, 0xF0, 0x03, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0x02, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0A, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x0A, 0xAA, 0xAA, 0x00, 0x00, 0x00,
|
||||||
|
0x0F, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x28, 0x0A, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFC, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0A, 0xAA, 0xA0, 0x00, 0x00, 0x00,
|
||||||
|
0x0F, 0xFF, 0xFF, 0xFC, 0x0F, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFC, 0x03, 0xFF, 0xFC, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x2A, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x3F, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x03,
|
||||||
|
0xFF, 0xC0, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xF0, 0x3F, 0xFF, 0xC0, 0xFF, 0xFF, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x0F,
|
||||||
|
0xFF, 0xF0, 0x3F, 0xFF, 0xC0, 0x3F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x03,
|
||||||
|
0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x2A, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0A, 0xAA, 0xA8, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xA8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xA0, 0x28, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xA0, 0xAA, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x02, 0xAA, 0xAA, 0x80, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0x82, 0xAA, 0xA0, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x2A, 0xAA, 0xAA, 0x02, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xA8, 0x0A, 0xAA, 0xAA, 0x80, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xA0, 0x00, 0x00,
|
||||||
|
0x00, 0x0A, 0xAA, 0xAA, 0xA8, 0x0A, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xA0, 0x02, 0xAA, 0xAA, 0xAA, 0x80,
|
||||||
|
0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA,
|
||||||
|
0xAA, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA,
|
||||||
|
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
@@ -22,118 +153,6 @@ const char SquixLogo[] PROGMEM = {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x54, 0x00, 0x00, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50,
|
|
||||||
0x15, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x15, 0x55, 0x50, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x05, 0x55, 0x55, 0x40, 0x00, 0x00, 0x01, 0x55, 0x55, 0x50, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x54, 0x00, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x01, 0x55,
|
|
||||||
0x55, 0x50, 0x00, 0x00, 0x05, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x55, 0x55, 0x50, 0x00, 0x00, 0x15, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x00, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x15, 0x55, 0x54,
|
|
||||||
0x00, 0x00, 0x15, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00,
|
|
||||||
0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
|
||||||
0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x05, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40,
|
|
||||||
0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x05, 0x55, 0x55, 0x40, 0x01,
|
|
||||||
0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x15, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54,
|
|
||||||
0x05, 0x55, 0x50, 0x00, 0x01, 0x55, 0x55, 0x50, 0x05, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x40, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x50, 0x15, 0x55,
|
|
||||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x55, 0x55, 0x54, 0x15, 0x55, 0x55,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55,
|
|
||||||
0x50, 0x00, 0x00, 0x15, 0x55, 0x54, 0x15, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x40, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x50, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x15, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x01, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00,
|
|
||||||
0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x55, 0x55, 0x00, 0x15, 0x55, 0x55, 0x55, 0x00, 0x01, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x00, 0x00, 0x55, 0x55, 0x00, 0x15, 0x55, 0x55, 0x55, 0x40,
|
|
||||||
0x01, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x00,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40,
|
|
||||||
0x00, 0x55, 0x55, 0x00, 0x15, 0x05, 0x55, 0x55, 0x50, 0x01, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x00, 0x55, 0x55, 0x00, 0x14, 0x01, 0x55, 0x55, 0x54, 0x01, 0x55,
|
|
||||||
0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x00, 0x05, 0x55,
|
|
||||||
0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x00, 0x55,
|
|
||||||
0x55, 0x00, 0x14, 0x01, 0x55, 0x55, 0x55, 0x01, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55,
|
|
||||||
0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x00, 0x15, 0x05, 0x55, 0x55, 0x55, 0x41, 0x55, 0x50, 0x15,
|
|
||||||
0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x50,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x55, 0x55, 0x00,
|
|
||||||
0x15, 0x55, 0x55, 0x55, 0x55, 0x50, 0x55, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05,
|
|
||||||
0x55, 0x50, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x55, 0x55, 0x00, 0x15, 0x54, 0x15, 0x55, 0x55, 0x54, 0x15, 0x50, 0x15, 0x55, 0x50,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x55, 0x55, 0x00, 0x15, 0x51,
|
|
||||||
0x40, 0x00, 0x00, 0x00, 0x05, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50,
|
|
||||||
0x00, 0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x15, 0x55, 0x40, 0x55, 0x55, 0x00, 0x15, 0x51, 0x45, 0x55, 0x55, 0x55, 0x41, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x40, 0x55, 0x55, 0x00, 0x15, 0x54, 0x14, 0x15,
|
|
||||||
0x55, 0x55, 0x50, 0x50, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00,
|
|
||||||
0x05, 0x55, 0x55, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15,
|
|
||||||
0x55, 0x40, 0x55, 0x55, 0x00, 0x15, 0x55, 0x51, 0x40, 0x00, 0x00, 0x00, 0x10, 0x15, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x40, 0x55, 0x55, 0x40, 0x15, 0x55, 0x51, 0x45, 0x55, 0x55,
|
|
||||||
0x55, 0x00, 0x05, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x00, 0x55, 0x55,
|
|
||||||
0x54, 0x15, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x40,
|
|
||||||
0x15, 0x55, 0x50, 0x15, 0x55, 0x54, 0x15, 0x55, 0x55, 0x55, 0x40, 0x05, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
|
|
||||||
0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x01, 0x55, 0x55, 0x50, 0x05, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x15, 0x55, 0x54, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50,
|
|
||||||
0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x05, 0x55, 0x50, 0x00, 0x05, 0x55, 0x55, 0x40, 0x01,
|
|
||||||
0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x15, 0x55,
|
|
||||||
0x54, 0x15, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50,
|
|
||||||
0x05, 0x55, 0x50, 0x00, 0x05, 0x55, 0x55, 0x00, 0x00, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x05, 0x55, 0x55, 0x05, 0x55, 0x55, 0x55, 0x15, 0x55, 0x55, 0x55, 0x01, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x05, 0x55, 0x50, 0x00, 0x15, 0x55, 0x54, 0x00, 0x00, 0x15, 0x55,
|
|
||||||
0x54, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x00, 0x01, 0x55, 0x55, 0x41,
|
|
||||||
0x55, 0x55, 0x54, 0x55, 0x55, 0x55, 0x55, 0x41, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x05, 0x55,
|
|
||||||
0x50, 0x00, 0x55, 0x55, 0x54, 0x00, 0x00, 0x15, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x54, 0x00, 0x00, 0x55, 0x55, 0x50, 0x55, 0x54, 0x11, 0x41, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x40, 0x05, 0x55, 0x50, 0x01, 0x55, 0x55, 0x50, 0x00, 0x00, 0x05, 0x55, 0x55, 0x40,
|
|
||||||
0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x00, 0x00, 0x15, 0x55, 0x54, 0x15, 0x51,
|
|
||||||
0x45, 0x14, 0x55, 0x55, 0x55, 0x50, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x05, 0x55, 0x50, 0x05,
|
|
||||||
0x55, 0x55, 0x40, 0x00, 0x00, 0x01, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x05, 0x51, 0x45, 0x14, 0x55, 0x05, 0x55, 0x40, 0x05, 0x55, 0x55, 0x55, 0x55,
|
|
||||||
0x55, 0x55, 0x55, 0x50, 0x00, 0x05, 0x55, 0x50, 0x15, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x54, 0x00, 0x00,
|
|
||||||
0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x01, 0x54, 0x15, 0x41,
|
|
||||||
0x54, 0x50, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00, 0x01, 0x55, 0x50, 0x15, 0x55, 0x54,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x54, 0x51, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x55, 0x05,
|
|
||||||
0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x05, 0x55, 0x55, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x40,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
@@ -145,6 +164,46 @@ const char SquixLogo[] PROGMEM = {
|
|||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x0A, 0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xC0, 0x00, 0x00, 0x3F,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0xC0, 0x00, 0x3F, 0xC0, 0x03, 0xFF, 0xFF, 0xFF, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x0A,
|
||||||
|
0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0, 0xFF, 0xF0, 0x00, 0x3F, 0xC0, 0x0F, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x0A, 0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x2A, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xC0, 0x00, 0x00, 0x3F,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0xFC, 0x00, 0x3F, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0xA0, 0x0A,
|
||||||
|
0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0, 0xFF, 0xFF, 0x00, 0x3F, 0xC0, 0x3F, 0xC0,
|
||||||
|
0x00, 0x00, 0x00, 0x0A, 0xA0, 0x00, 0x00, 0x0A, 0xA0, 0x0A, 0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x2A, 0x80, 0x00, 0x00, 0x00, 0x02, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0xFF, 0xC0, 0x3F, 0xC0, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x0A, 0xA0, 0x00, 0x00, 0x0A, 0xA0, 0x0A,
|
||||||
|
0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x02, 0xA8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xC0, 0xFF, 0x3F, 0xF0, 0x3F, 0xC0, 0x3F, 0xC0,
|
||||||
|
0x0F, 0xFF, 0xF0, 0x0A, 0xA0, 0x00, 0x00, 0x0A, 0xA0, 0x0A, 0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x2A, 0xAA, 0xAA, 0xAA, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0x0F, 0xFC, 0x3F, 0xC0, 0x3F, 0xC0, 0x0F, 0xFF, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0xA0, 0x0A,
|
||||||
|
0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0xA0, 0x02, 0xAA, 0xAA, 0xAA, 0xA8,
|
||||||
|
0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x3F, 0xC0, 0xFF, 0x03, 0xFF, 0x3F, 0xC0, 0x3F, 0xC0,
|
||||||
|
0x0F, 0xFF, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x0A, 0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x0A, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0xFF, 0x3F, 0xC0, 0x3F, 0xC0, 0x0F, 0xFF, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x0A,
|
||||||
|
0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xA8,
|
||||||
|
0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0xFF, 0xFF, 0xC0, 0x3F, 0xC0,
|
||||||
|
0x00, 0x03, 0xFC, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x0A, 0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x02, 0xA8, 0x02, 0xA8, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0x3F, 0xFF, 0xC0, 0x3F, 0xC0, 0x00, 0x03, 0xFC, 0x0A, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0A,
|
||||||
|
0xA0, 0x00, 0x00, 0x2A, 0x80, 0x2A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x02, 0xA8, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0x0F, 0xFF, 0xC0, 0x3F, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFC, 0x0A, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x2A, 0xAA, 0xAA, 0xAA, 0x80,
|
||||||
|
0x0A, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0x03, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFC, 0x0A, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0A,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xAA, 0x80, 0x2A, 0xAA, 0xAA, 0xAA, 0x80, 0x2A, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
|
0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F, 0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0x00, 0xFF, 0xC0, 0x0F, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFC, 0x0A, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0x80,
|
||||||
|
0x2A, 0xAA, 0xAA, 0xAA, 0xA8, 0x02, 0xAA, 0xAA, 0xAA, 0xAA, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x0F, 0xC0, 0x00, 0x00, 0x3F,
|
||||||
|
0xC0, 0x3F, 0xC0, 0xFF, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0xFF, 0xFF, 0xFF, 0xFC, 0x0A, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xAA, 0xAA, 0xAA, 0xA8, 0x00, 0x2A, 0xAA, 0xAA, 0xAA, 0x80, 0x2A, 0xAA, 0xAA, 0xAA, 0x80, 0x02, 0xAA, 0xAA, 0xAA, 0xAA,
|
||||||
};
|
};
|
||||||
const char chanceflurries[] PROGMEM = {
|
const char chanceflurries[] PROGMEM = {
|
||||||
0x01, // Version: 1
|
0x01, // Version: 1
|
||||||
@@ -3710,80 +3769,30 @@ const char miniunknown[] PROGMEM = {
|
|||||||
|
|
||||||
// Helper function, should be part of the weather station library and should disappear soon
|
// Helper function, should be part of the weather station library and should disappear soon
|
||||||
const char* getMeteoconIconFromProgmem(String iconText) {
|
const char* getMeteoconIconFromProgmem(String iconText) {
|
||||||
|
if (iconText == "01d" || iconText == "01n") return sunny;
|
||||||
if (iconText == "chanceflurries") return chanceflurries;
|
if (iconText == "02d" || iconText == "02n") return partlysunny;
|
||||||
if (iconText == "chancerain") return chancerain;
|
if (iconText == "03d" || iconText == "03n") return partlycloudy;
|
||||||
if (iconText == "chancesleet") return chancesleet;
|
if (iconText == "04d" || iconText == "04n") return mostlycloudy;
|
||||||
if (iconText == "chancesnow") return chancesnow;
|
if (iconText == "09d" || iconText == "09n") return rain;
|
||||||
if (iconText == "chancetstorms") return chancestorms;
|
if (iconText == "10d" || iconText == "10n") return rain;
|
||||||
if (iconText == "clear") return clear;
|
if (iconText == "11d" || iconText == "11n") return tstorms;
|
||||||
if (iconText == "cloudy") return cloudy;
|
if (iconText == "13d" || iconText == "13n") return snow;
|
||||||
if (iconText == "flurries") return flurries;
|
if (iconText == "50d" || iconText == "50n") return fog;
|
||||||
if (iconText == "fog") return fog;
|
|
||||||
if (iconText == "hazy") return hazy;
|
|
||||||
if (iconText == "mostlycloudy") return mostlycloudy;
|
|
||||||
if (iconText == "mostlysunny") return mostlysunny;
|
|
||||||
if (iconText == "partlycloudy") return partlycloudy;
|
|
||||||
if (iconText == "partlysunny") return partlysunny;
|
|
||||||
if (iconText == "sleet") return sleet;
|
|
||||||
if (iconText == "rain") return rain;
|
|
||||||
if (iconText == "snow") return snow;
|
|
||||||
if (iconText == "sunny") return sunny;
|
|
||||||
if (iconText == "tstorms") return tstorms;
|
|
||||||
|
|
||||||
|
|
||||||
return unknown;
|
return unknown;
|
||||||
}
|
}
|
||||||
const char* getMiniMeteoconIconFromProgmem(String iconText) {
|
const char* getMiniMeteoconIconFromProgmem(String iconText) {
|
||||||
if (iconText == "chanceflurries") return minichanceflurries;
|
if (iconText == "01d" || iconText == "01n") return minisunny;
|
||||||
if (iconText == "chancerain") return minichancerain;
|
if (iconText == "02d" || iconText == "02n") return minipartlysunny;
|
||||||
if (iconText == "chancesleet") return minichancesleet;
|
if (iconText == "03d" || iconText == "03n") return minipartlycloudy;
|
||||||
if (iconText == "chancesnow") return minichancesnow;
|
if (iconText == "04d" || iconText == "04n") return minimostlycloudy;
|
||||||
if (iconText == "chancetstorms") return minichancestorms;
|
if (iconText == "09d" || iconText == "09n") return minirain;
|
||||||
if (iconText == "clear") return miniclear;
|
if (iconText == "10d" || iconText == "10n") return minirain;
|
||||||
if (iconText == "cloudy") return minicloudy;
|
if (iconText == "11d" || iconText == "11n") return minitstorms;
|
||||||
if (iconText == "flurries") return miniflurries;
|
if (iconText == "13d" || iconText == "13n") return minisleet;
|
||||||
if (iconText == "fog") return minifog;
|
if (iconText == "50d" || iconText == "50n") return minifog;
|
||||||
if (iconText == "hazy") return minihazy;
|
|
||||||
if (iconText == "mostlycloudy") return minimostlycloudy;
|
|
||||||
if (iconText == "mostlysunny") return minimostlysunny;
|
|
||||||
if (iconText == "partlycloudy") return minipartlycloudy;
|
|
||||||
if (iconText == "partlysunny") return minipartlysunny;
|
|
||||||
if (iconText == "sleet") return minisleet;
|
|
||||||
if (iconText == "rain") return minirain;
|
|
||||||
if (iconText == "snow") return minisnow;
|
|
||||||
if (iconText == "sunny") return minisunny;
|
|
||||||
if (iconText == "tstorms") return minitstorms;
|
|
||||||
|
|
||||||
|
|
||||||
return miniunknown;
|
return miniunknown;
|
||||||
}
|
}
|
||||||
// Helper function, should be part of the weather station library and should disappear soon
|
|
||||||
const String getShortText(String iconText) {
|
|
||||||
|
|
||||||
if (iconText == "chanceflurries") return "Chance of Flurries";
|
|
||||||
if (iconText == "chancerain") return "Chance of Rain";
|
|
||||||
if (iconText == "chancesleet") return "Chance of Sleet";
|
|
||||||
if (iconText == "chancesnow") return "Chance of Snow";
|
|
||||||
if (iconText == "chancetstorms") return "Chance of Storms";
|
|
||||||
if (iconText == "clear") return "Clear";
|
|
||||||
if (iconText == "cloudy") return "Cloudy";
|
|
||||||
if (iconText == "flurries") return "Flurries";
|
|
||||||
if (iconText == "fog") return "Fog";
|
|
||||||
if (iconText == "hazy") return "Hazy";
|
|
||||||
if (iconText == "mostlycloudy") return "Mostly Cloudy";
|
|
||||||
if (iconText == "mostlysunny") return "Mostly Sunny";
|
|
||||||
if (iconText == "partlycloudy") return "Partly Couldy";
|
|
||||||
if (iconText == "partlysunny") return "Partly Sunny";
|
|
||||||
if (iconText == "sleet") return "Sleet";
|
|
||||||
if (iconText == "rain") return "Rain";
|
|
||||||
if (iconText == "snow") return "Snow";
|
|
||||||
if (iconText == "sunny") return "Sunny";
|
|
||||||
if (iconText == "tstorms") return "Storms";
|
|
||||||
|
|
||||||
|
|
||||||
return "-";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user