Example fix.

This commit is contained in:
nitko12 2020-09-11 12:28:42 +02:00
parent 35a4ea4ef0
commit 8c4303180b
7 changed files with 123 additions and 147 deletions

View File

@ -19,116 +19,85 @@
//---------- CHANGE HERE -------------: //---------- CHANGE HERE -------------:
//Time zone for adding hours // Time zone for adding hours
int timeZone = 2; int timeZone = 2;
//City name to de displayed on the bottom // City name to de displayed on the bottom
char city[128] = "OSIJEK"; char city[128] = "OSIJEK";
//Coordinates sent to the api // Coordinates sent to the api
char *lon = "45.5510548"; char *lon = "45.5510548";
char *lat = "18.5947808"; char *lat = "18.5947808";
//Change to your wifi ssid and password // Change to your wifi ssid and password
char *ssid = ""; char *ssid = "";
char *pass = ""; char *pass = "";
//Change to your api key, if you don't have one, head over to: // Change to your api key, if you don't have one, head over to:
//https://openweathermap.org/guide , register and copy the key provided // https://openweathermap.org/guide , register and copy the key provided
char *apiKey = ""; char *apiKey = "";
//---------------------------------- //----------------------------------
//Include Inkplate library to the sketch // Include Inkplate library to the sketch
#include "Inkplate.h" #include "Inkplate.h"
//Header file for easier code readability // Header file for easier code readability
#include "Network.h" #include "Network.h"
//Including fonts used // Including fonts used
#include "Fonts/Roboto_Light_48.h"
#include "Fonts/Roboto_Light_36.h"
#include "Fonts/Roboto_Light_120.h" #include "Fonts/Roboto_Light_120.h"
#include "Fonts/Roboto_Light_36.h"
#include "Fonts/Roboto_Light_48.h"
//Including icons generated by the py file // Including icons generated by the py file
#include "icons.h" #include "icons.h"
//Delay between API calls, about 1000 per month, which is the free tier limit // Delay between API calls, about 1000 per month, which is the free tier limit
#define DELAY_MS 267800L #define DELAY_MS 267800L
//Inkplate object // Inkplate object
Inkplate display(INKPLATE_1BIT); Inkplate display(INKPLATE_1BIT);
//All our network functions are in this object, see Network.h // All our network functions are in this object, see Network.h
Network network; Network network;
//Contants used for drawing icons // Contants used for drawing icons
char abbrs[32][32] ={ "01d", "02d", "03d", "04d", "09d", "10d", "11d", "13d", "50d", "01n", "02n", "03n", "04n", "09n", "10n", "11n", "13n", "50n" }; char abbrs[32][32] = {"01d", "02d", "03d", "04d", "09d", "10d", "11d", "13d", "50d",
const uint8_t *logos[18] ={ "01n", "02n", "03n", "04n", "09n", "10n", "11n", "13n", "50n"};
icon_01d, const uint8_t *logos[18] = {
icon_02d, icon_01d, icon_02d, icon_03d, icon_04d, icon_09d, icon_10d, icon_11d, icon_13d, icon_50d,
icon_03d, icon_01n, icon_02n, icon_03n, icon_04n, icon_09n, icon_10n, icon_11n, icon_13n, icon_50n,
icon_04d,
icon_09d,
icon_10d,
icon_11d,
icon_13d,
icon_50d,
icon_01n,
icon_02n,
icon_03n,
icon_04n,
icon_09n,
icon_10n,
icon_11n,
icon_13n,
icon_50n,
}; };
const uint8_t *s_logos[18] ={ const uint8_t *s_logos[18] = {
icon_s_01d, icon_s_01d, icon_s_02d, icon_s_03d, icon_s_04d, icon_s_09d, icon_s_10d, icon_s_11d, icon_s_13d, icon_s_50d,
icon_s_02d, icon_s_01n, icon_s_02n, icon_s_03n, icon_s_04n, icon_s_09n, icon_s_10n, icon_s_11n, icon_s_13n, icon_s_50n,
icon_s_03d,
icon_s_04d,
icon_s_09d,
icon_s_10d,
icon_s_11d,
icon_s_13d,
icon_s_50d,
icon_s_01n,
icon_s_02n,
icon_s_03n,
icon_s_04n,
icon_s_09n,
icon_s_10n,
icon_s_11n,
icon_s_13n,
icon_s_50n,
}; };
//Variables for storing temperature // Variables for storing temperature
char temps[8][4] ={ char temps[4][8] = {
"0F", "0F",
"0F", "0F",
"0F", "0F",
"0F", "0F",
}; };
//Variables for storing hour strings // Variables for storing hour strings
char hours[8][4] ={ char hours[4][8] = {
"", "",
"", "",
"", "",
"", "",
}; };
//Variable for counting partial refreshes // Variable for counting partial refreshes
long refreshes = 0; long refreshes = 0;
//Constant to determine when to full update // Constant to determine when to full update
const int fullRefresh = 10; const int fullRefresh = 10;
//Variables for storing current time and weather info // Variables for storing current time and weather info
char currentTemp[16] = "0F"; char currentTemp[16] = "0F";
char currentWind[16] = "0m/s"; char currentWind[16] = "0m/s";
@ -142,7 +111,7 @@ char abbr2[16];
char abbr3[16]; char abbr3[16];
char abbr4[16]; char abbr4[16];
//functions defined below // functions defined below
void drawWeather(); void drawWeather();
void drawCurrent(); void drawCurrent();
void drawTemps(); void drawTemps();
@ -151,37 +120,38 @@ void drawTime();
void setup() void setup()
{ {
//Begin serial and display // Begin serial and display
Serial.begin(115200); Serial.begin(115200);
display.begin(); display.begin();
//Initial cleaning of buffer and physical screen // Initial cleaning of buffer and physical screen
display.clearDisplay(); display.clearDisplay();
display.clean(); display.clean();
//Calling our begin from network.h file // Calling our begin from network.h file
network.begin(city); network.begin(city);
//Welcome screen // Welcome screen
display.setCursor(50, 290); display.setCursor(50, 290);
display.setTextSize(3); display.setTextSize(3);
display.print(F("Welcome to Inkplate 6 weather example!")); display.print(F("Welcome to Inkplate 6 weather example!"));
display.display(); display.display();
//Wait a bit before proceeding // Wait a bit before proceeding
delay(5000); delay(5000);
} }
void loop() void loop()
{ {
//Clear display // Clear display
display.clearDisplay(); display.clearDisplay();
//Get all relevant data, see Network.cpp for info // Get all relevant data, see Network.cpp for info
network.getTime(currentTime); network.getTime(currentTime);
if (refreshes % fullRefresh == 0) if (refreshes % fullRefresh == 0)
{ {
while (!network.getData(city, temps[0], temps[1], temps[2], temps[3], currentTemp, currentWind, currentTime, currentWeather, currentWeatherAbbr, abbr1, abbr2, abbr3, abbr4)) while (!network.getData(city, temps[0], temps[1], temps[2], temps[3], currentTemp, currentWind, currentTime,
currentWeather, currentWeatherAbbr, abbr1, abbr2, abbr3, abbr4))
{ {
Serial.println("Retrying fetching data!"); Serial.println("Retrying fetching data!");
delay(5000); delay(5000);
@ -189,37 +159,37 @@ void loop()
network.getHours(hours[0], hours[1], hours[2], hours[3]); network.getHours(hours[0], hours[1], hours[2], hours[3]);
} }
//Draw data, see functions below for info // Draw data, see functions below for info
drawWeather(); drawWeather();
drawCurrent(); drawCurrent();
drawTemps(); drawTemps();
drawCity(); drawCity();
drawTime(); drawTime();
//Refresh full screen every fullRefresh times, defined above // Refresh full screen every fullRefresh times, defined above
if (refreshes % fullRefresh == 0) if (refreshes % fullRefresh == 0)
display.display(); display.display();
else else
display.partialUpdate(); display.partialUpdate();
//Go to sleep before checking again // Go to sleep before checking again
esp_sleep_enable_timer_wakeup(1000L * DELAY_MS); esp_sleep_enable_timer_wakeup(1000L * DELAY_MS);
(void)esp_light_sleep_start(); (void)esp_light_sleep_start();
++refreshes; ++refreshes;
} }
//Function for drawing weather info // Function for drawing weather info
void drawWeather() void drawWeather()
{ {
//Searching for weather state abbreviation // Searching for weather state abbreviation
for (int i = 0; i < 18; ++i) for (int i = 0; i < 18; ++i)
{ {
//If found draw specified icon // If found draw specified icon
if (strcmp(abbrs[i], currentWeatherAbbr) == 0) if (strcmp(abbrs[i], currentWeatherAbbr) == 0)
display.drawBitmap(50, 50, logos[i], 152, 152, BLACK); display.drawBitmap(50, 50, logos[i], 152, 152, BLACK);
} }
//Draw weather state // Draw weather state
display.setTextColor(BLACK, WHITE); display.setTextColor(BLACK, WHITE);
display.setFont(&Roboto_Light_36); display.setFont(&Roboto_Light_36);
display.setTextSize(1); display.setTextSize(1);
@ -227,10 +197,10 @@ void drawWeather()
display.println(currentWeather); display.println(currentWeather);
} }
//Function for drawing current time // Function for drawing current time
void drawTime() void drawTime()
{ {
//Drawing current time // Drawing current time
display.setTextColor(BLACK, WHITE); display.setTextColor(BLACK, WHITE);
display.setFont(&Roboto_Light_36); display.setFont(&Roboto_Light_36);
display.setTextSize(1); display.setTextSize(1);
@ -239,10 +209,10 @@ void drawTime()
display.println(currentTime); display.println(currentTime);
} }
//Function for drawing city name // Function for drawing city name
void drawCity() void drawCity()
{ {
//Drawing city name // Drawing city name
display.setTextColor(BLACK, WHITE); display.setTextColor(BLACK, WHITE);
display.setFont(&Roboto_Light_36); display.setFont(&Roboto_Light_36);
display.setTextSize(1); display.setTextSize(1);
@ -251,10 +221,10 @@ void drawCity()
display.println(city); display.println(city);
} }
//Function for drawing temperatures // Function for drawing temperatures
void drawTemps() void drawTemps()
{ {
//Drawing 4 black rectangles in which temperatures will be written // Drawing 4 black rectangles in which temperatures will be written
int rectWidth = 150; int rectWidth = 150;
int rectSpacing = (800 - rectWidth * 4) / 5; int rectSpacing = (800 - rectWidth * 4) / 5;
@ -281,7 +251,7 @@ void drawTemps()
display.setCursor(4 * rectSpacing + 3 * rectWidth + textMargin, 300 + textMargin + 40); display.setCursor(4 * rectSpacing + 3 * rectWidth + textMargin, 300 + textMargin + 40);
display.println(hours[3]); display.println(hours[3]);
//Drawing temperature values into black rectangles // Drawing temperature values into black rectangles
display.setFont(&Roboto_Light_48); display.setFont(&Roboto_Light_48);
display.setTextSize(1); display.setTextSize(1);
display.setTextColor(WHITE, BLACK); display.setTextColor(WHITE, BLACK);
@ -304,39 +274,43 @@ void drawTemps()
for (int i = 0; i < 18; ++i) for (int i = 0; i < 18; ++i)
{ {
//If found draw specified icon // If found draw specified icon
if (strcmp(abbr1, abbrs[i]) == 0) if (strcmp(abbr1, abbrs[i]) == 0)
display.drawBitmap(1 * rectSpacing + 0 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48, WHITE, BLACK); display.drawBitmap(1 * rectSpacing + 0 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48,
WHITE, BLACK);
} }
for (int i = 0; i < 18; ++i) for (int i = 0; i < 18; ++i)
{ {
//If found draw specified icon // If found draw specified icon
if (strcmp(abbr2, abbrs[i]) == 0) if (strcmp(abbr2, abbrs[i]) == 0)
display.drawBitmap(2 * rectSpacing + 1 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48, WHITE, BLACK); display.drawBitmap(2 * rectSpacing + 1 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48,
WHITE, BLACK);
} }
for (int i = 0; i < 18; ++i) for (int i = 0; i < 18; ++i)
{ {
//If found draw specified icon // If found draw specified icon
if (strcmp(abbr3, abbrs[i]) == 0) if (strcmp(abbr3, abbrs[i]) == 0)
display.drawBitmap(3 * rectSpacing + 2 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48, WHITE, BLACK); display.drawBitmap(3 * rectSpacing + 2 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48,
WHITE, BLACK);
} }
for (int i = 0; i < 18; ++i) for (int i = 0; i < 18; ++i)
{ {
//If found draw specified icon // If found draw specified icon
if (strcmp(abbr4, abbrs[i]) == 0) if (strcmp(abbr4, abbrs[i]) == 0)
display.drawBitmap(4 * rectSpacing + 3 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48, WHITE, BLACK); display.drawBitmap(4 * rectSpacing + 3 * rectWidth + textMargin, 300 + textMargin + 150, s_logos[i], 48, 48,
WHITE, BLACK);
} }
} }
//Current weather drawing function // Current weather drawing function
void drawCurrent() void drawCurrent()
{ {
//Drawing current information // Drawing current information
//Temperature: // Temperature:
display.setFont(&Roboto_Light_120); display.setFont(&Roboto_Light_120);
display.setTextSize(1); display.setTextSize(1);
display.setTextColor(BLACK, WHITE); display.setTextColor(BLACK, WHITE);
@ -353,7 +327,7 @@ void drawCurrent()
display.setCursor(x, y); display.setCursor(x, y);
display.println(F("C")); display.println(F("C"));
//Wind: // Wind:
display.setFont(&Roboto_Light_120); display.setFont(&Roboto_Light_120);
display.setTextSize(1); display.setTextSize(1);
display.setTextColor(BLACK, WHITE); display.setTextColor(BLACK, WHITE);
@ -370,7 +344,7 @@ void drawCurrent()
display.setCursor(x, y); display.setCursor(x, y);
display.println(F("m/s")); display.println(F("m/s"));
//Labels underneath // Labels underneath
display.setFont(&Roboto_Light_36); display.setFont(&Roboto_Light_36);
display.setTextSize(1); display.setTextSize(1);

View File

@ -1,19 +1,19 @@
//Network.cpp contains various functions and classes that enable Weather station // Network.cpp contains various functions and classes that enable Weather station
//They have been declared in seperate file to increase readability // They have been declared in seperate file to increase readability
#include "Network.h" #include "Network.h"
#include <WiFi.h>
#include <HTTPClient.h> #include <HTTPClient.h>
#include <WiFi.h>
#include <WiFiClientSecure.h> #include <WiFiClientSecure.h>
#include <ArduinoJson.h> #include <ArduinoJson.h>
//Static Json from ArduinoJson library // Static Json from ArduinoJson library
StaticJsonDocument<32000> doc; StaticJsonDocument<32000> doc;
void Network::begin(char *city) void Network::begin(char *city)
{ {
//Initiating wifi, like in BasicHttpClient example // Initiating wifi, like in BasicHttpClient example
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass); WiFi.begin(ssid, pass);
@ -34,50 +34,52 @@ void Network::begin(char *city)
} }
Serial.println(F(" connected")); Serial.println(F(" connected"));
//Find internet time // Find internet time
setTime(); setTime();
//reduce power by making WiFi module sleep // reduce power by making WiFi module sleep
WiFi.setSleep(1); WiFi.setSleep(1);
} }
//Gets time from ntp server // Gets time from ntp server
void Network::getTime(char *timeStr) void Network::getTime(char *timeStr)
{ {
//Get seconds since 1.1.1970. // Get seconds since 1.1.1970.
time_t nowSecs = time(nullptr); time_t nowSecs = time(nullptr);
//Used to store time // Used to store time
struct tm timeinfo; struct tm timeinfo;
gmtime_r(&nowSecs, &timeinfo); gmtime_r(&nowSecs, &timeinfo);
//Copies time string into timeStr // Copies time string into timeStr
strncpy(timeStr, asctime(&timeinfo) + 11, 5); strncpy(timeStr, asctime(&timeinfo) + 11, 5);
//Setting time string timezone // Setting time string timezone
int hr = 10 * timeStr[0] + timeStr[1] + timeZone; int hr = 10 * (timeStr[0] - '0') + (timeStr[1] - '0') + timeZone;
//Better defined modulo, in case timezone makes hours to go below 0 // Better defined modulo, in case timezone makes hours to go below 0
hr = (hr % 24 + 24) % 24; hr = (hr % 24 + 24) % 24;
//Adding time to '0' char makes it into whatever time char, for both digits // Adding time to '0' char makes it into whatever time char, for both digits
timeStr[0] = hr / 10 + '0'; timeStr[0] = hr / 10 + '0';
timeStr[1] = hr % 10 + '0'; timeStr[1] = hr % 10 + '0';
} }
void formatTemp(char *str, float temp) void formatTemp(char *str, float temp)
{ {
//Built in function for float to char* conversion // Built in function for float to char* conversion
dtostrf(temp, 2, 0, str); dtostrf(temp, 2, 0, str);
} }
void formatWind(char *str, float wind) void formatWind(char *str, float wind)
{ {
//Built in function for float to char* conversion // Built in function for float to char* conversion
dtostrf(wind, 2, 0, str); dtostrf(wind, 2, 0, str);
} }
bool Network::getData(char *city, char *temp1, char *temp2, char *temp3, char *temp4, char *currentTemp, char *currentWind, char *currentTime, char *currentWeather, char *currentWeatherAbbr, char *abbr1, char *abbr2, char *abbr3, char *abbr4) bool Network::getData(char *city, char *temp1, char *temp2, char *temp3, char *temp4, char *currentTemp,
char *currentWind, char *currentTime, char *currentWeather, char *currentWeatherAbbr, char *abbr1,
char *abbr2, char *abbr3, char *abbr4)
{ {
bool f = 0; bool f = 0;
// If not connected to wifi reconnect wifi // If not connected to wifi reconnect wifi
@ -105,32 +107,32 @@ bool Network::getData(char *city, char *temp1, char *temp2, char *temp3, char *t
} }
} }
//Wake up if sleeping and save inital state // Wake up if sleeping and save inital state
bool sleep = WiFi.getSleep(); bool sleep = WiFi.getSleep();
WiFi.setSleep(false); WiFi.setSleep(false);
//Http object used to make get request // Http object used to make get request
HTTPClient http; HTTPClient http;
http.getStream().setNoDelay(true); http.getStream().setNoDelay(true);
http.getStream().setTimeout(1); http.getStream().setTimeout(1);
//Add woeid to api call // Add woeid to api call
char url[256]; char url[256];
sprintf(url, "https://api.openweathermap.org/data/2.5/onecall?lat=%s&lon=%s&appid=%s", lon, lat, apiKey); sprintf(url, "https://api.openweathermap.org/data/2.5/onecall?lat=%s&lon=%s&appid=%s", lon, lat, apiKey);
//Initiate http // Initiate http
http.begin(url); http.begin(url);
//Actually do request // Actually do request
int httpCode = http.GET(); int httpCode = http.GET();
if (httpCode == 200) if (httpCode == 200)
{ {
//Try parsing JSON object // Try parsing JSON object
DeserializationError error = deserializeJson(doc, http.getStream()); DeserializationError error = deserializeJson(doc, http.getStream());
//If an error happens print it to Serial monitor // If an error happens print it to Serial monitor
if (error) if (error)
{ {
Serial.print(F("deserializeJson() failed: ")); Serial.print(F("deserializeJson() failed: "));
@ -140,8 +142,8 @@ bool Network::getData(char *city, char *temp1, char *temp2, char *temp3, char *t
} }
else else
{ {
//Set all data got from internet using formatTemp and formatWind defined above // Set all data got from internet using formatTemp and formatWind defined above
//This part relies heavily on ArduinoJson library // This part relies heavily on ArduinoJson library
dataEpoch = doc["current"]["dt"].as<time_t>(); dataEpoch = doc["current"]["dt"].as<time_t>();
@ -180,11 +182,11 @@ bool Network::getData(char *city, char *temp1, char *temp2, char *temp3, char *t
; ;
} }
//Stop http and clear document // Stop http and clear document
doc.clear(); doc.clear();
http.end(); http.end();
//Return to initial state // Return to initial state
WiFi.setSleep(sleep); WiFi.setSleep(sleep);
return !f; return !f;
@ -192,14 +194,14 @@ bool Network::getData(char *city, char *temp1, char *temp2, char *temp3, char *t
void Network::setTime() void Network::setTime()
{ {
//Used for setting correct time // Used for setting correct time
configTime(0, 0, "pool.ntp.org", "time.nist.gov"); configTime(0, 0, "pool.ntp.org", "time.nist.gov");
Serial.print(F("Waiting for NTP time sync: ")); Serial.print(F("Waiting for NTP time sync: "));
time_t nowSecs = time(nullptr); time_t nowSecs = time(nullptr);
while (nowSecs < 8 * 3600 * 2) while (nowSecs < 8 * 3600 * 2)
{ {
//Print a dot every half a second while time is not set // Print a dot every half a second while time is not set
delay(500); delay(500);
Serial.print(F(".")); Serial.print(F("."));
yield(); yield();
@ -208,7 +210,7 @@ void Network::setTime()
Serial.println(); Serial.println();
//Used to store time info // Used to store time info
struct tm timeinfo; struct tm timeinfo;
gmtime_r(&nowSecs, &timeinfo); gmtime_r(&nowSecs, &timeinfo);
@ -218,7 +220,7 @@ void Network::setTime()
void Network::getHours(char *hour1, char *hour2, char *hour3, char *hour4) void Network::getHours(char *hour1, char *hour2, char *hour3, char *hour4)
{ {
//Format hours info // Format hours info
sprintf(hour1, "%2dh", (dataEpoch / 3600L + timeZone + 24) % 24); sprintf(hour1, "%2dh", (dataEpoch / 3600L + timeZone + 24) % 24);
sprintf(hour2, "%2dh", (dataEpoch / 3600L + 1 + timeZone + 24) % 24); sprintf(hour2, "%2dh", (dataEpoch / 3600L + 1 + timeZone + 24) % 24);
sprintf(hour3, "%2dh", (dataEpoch / 3600L + 2 + timeZone + 24) % 24); sprintf(hour3, "%2dh", (dataEpoch / 3600L + 2 + timeZone + 24) % 24);

View File

@ -28,15 +28,15 @@ class Inkplate : public System, public Graphics
bool joinAP(const char *ssid, const char *pass) bool joinAP(const char *ssid, const char *pass)
{ {
return Network::joinAP(ssid, pass); return NetworkClient::joinAP(ssid, pass);
} }
void disconnect() void disconnect()
{ {
Network::disconnect(); NetworkClient::disconnect();
}; };
bool isConnected() bool isConnected()
{ {
return Network::isConnected(); return NetworkClient::isConnected();
}; };
private: private:

View File

@ -4,11 +4,11 @@
#include "../libs/Adafruit-GFX-Library/Adafruit_GFX.h" #include "../libs/Adafruit-GFX-Library/Adafruit_GFX.h"
#include "../libs/SdFat/SdFat.h" #include "../libs/SdFat/SdFat.h"
#include "Arduino.h" #include "Arduino.h"
#include "Network.h" #include "NetworkClient.h"
#include "WiFiClient.h" #include "WiFiClient.h"
#include "defines.h" #include "defines.h"
class Image : virtual public Network, virtual public Adafruit_GFX class Image : virtual public NetworkClient, virtual public Adafruit_GFX
{ {
public: public:
Image(int16_t w, int16_t h); Image(int16_t w, int16_t h);

View File

@ -1,6 +1,6 @@
#include "Network.h" #include "NetworkClient.h"
bool Network::joinAP(const char *ssid, const char *pass) bool NetworkClient::joinAP(const char *ssid, const char *pass)
{ {
WiFi.mode(WIFI_MODE_STA); WiFi.mode(WIFI_MODE_STA);
WiFi.begin(ssid, pass); WiFi.begin(ssid, pass);
@ -17,18 +17,18 @@ bool Network::joinAP(const char *ssid, const char *pass)
return 1; return 1;
} }
void Network::disconnect() void NetworkClient::disconnect()
{ {
WiFi.mode(WIFI_OFF); WiFi.mode(WIFI_OFF);
} }
bool Network::isConnected() bool NetworkClient::isConnected()
{ {
return WiFi.status() == WL_CONNECTED; return WiFi.status() == WL_CONNECTED;
} }
uint8_t *Network::downloadFile(const char *url, int32_t *defaultLen) uint8_t *NetworkClient::downloadFile(const char *url, int32_t *defaultLen)
{ {
if (!isConnected()) if (!isConnected())
return NULL; return NULL;
@ -82,7 +82,7 @@ uint8_t *Network::downloadFile(const char *url, int32_t *defaultLen)
return buffer; return buffer;
} }
uint8_t *Network::downloadFile(WiFiClient *s, int32_t len) uint8_t *NetworkClient::downloadFile(WiFiClient *s, int32_t len)
{ {
if (!isConnected()) if (!isConnected())
return NULL; return NULL;

View File

@ -1,5 +1,5 @@
#ifndef __NETWORK_H__ #ifndef __NETWORKCLIENT_H__
#define __NETWORK_H__ #define __NETWORKCLIENT_H__
#include "Arduino.h" #include "Arduino.h"
#include "HTTPClient.h" #include "HTTPClient.h"
@ -18,7 +18,7 @@ struct bitmapHeader
uint32_t compression; uint32_t compression;
}; };
class Network class NetworkClient
{ {
public: public:
bool joinAP(const char *ssid, const char *pass); bool joinAP(const char *ssid, const char *pass);

View File

@ -7,9 +7,9 @@
#include "Esp.h" #include "Esp.h"
#include "Mcp.h" #include "Mcp.h"
#include "Network.h" #include "NetworkClient.h"
class System : public Esp, public Mcp, virtual public Network class System : public Esp, public Mcp, virtual public NetworkClient
{ {
public: public:
void setPanelState(uint8_t s); void setPanelState(uint8_t s);