moren utils
This commit is contained in:
parent
f6900b8ed9
commit
9021da88ff
@ -1,6 +1,8 @@
|
||||
#include "ArduinoUtils.h"
|
||||
#if defined(ARDUINO)
|
||||
#include <Arduino.h>
|
||||
#include <ESP8266WiFi.h>
|
||||
#include <ESP8266httpUpdate.h>
|
||||
|
||||
bool StartWifi(const char *wifiSsid, const char *wifiPassword,
|
||||
bool hotspotFallback) {
|
||||
@ -106,4 +108,50 @@ bool StartWifi(const char *wifiSsid, const char *wifiPassword,
|
||||
}
|
||||
|
||||
return (!hotSpotEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CheckFirmware(String url, String FIRMWARE_NAME, int FIRMWARE_VERSION) {
|
||||
Serial.println("Checking for firmware updates.");
|
||||
|
||||
WiFiClient client;
|
||||
HTTPClient httpClient;
|
||||
String versionURL = url + FIRMWARE_NAME + ".version";
|
||||
httpClient.begin(client, versionURL);
|
||||
int httpCode = httpClient.GET();
|
||||
if (httpCode == 200) {
|
||||
String newFWVersion = httpClient.getString();
|
||||
|
||||
Serial.print("Current firmware version: ");
|
||||
Serial.println(FIRMWARE_VERSION);
|
||||
Serial.print("Available firmware version: ");
|
||||
Serial.println(newFWVersion);
|
||||
|
||||
int newVersion = newFWVersion.toInt();
|
||||
|
||||
if (newVersion > FIRMWARE_VERSION) {
|
||||
Serial.println("Preparing to update firmware.");
|
||||
|
||||
String firmwareURL = url + FIRMWARE_NAME + ".bin";
|
||||
t_httpUpdate_return ret = ESPhttpUpdate.update(client, firmwareURL);
|
||||
switch (ret) {
|
||||
case HTTP_UPDATE_FAILED:
|
||||
Serial.printf("HTTP_UPDATE_FAILED Error (%d): %s",
|
||||
ESPhttpUpdate.getLastError(),
|
||||
ESPhttpUpdate.getLastErrorString().c_str());
|
||||
break;
|
||||
case HTTP_UPDATE_NO_UPDATES:
|
||||
Serial.println("HTTP_UPDATE_NO_UPDATES");
|
||||
break;
|
||||
case HTTP_UPDATE_OK:
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
Serial.println("No Firmware update necessary.");
|
||||
}
|
||||
} else {
|
||||
Serial.print("Http Error: ");
|
||||
Serial.println(httpCode);
|
||||
}
|
||||
}
|
||||
#endif
|
@ -1,4 +1,10 @@
|
||||
#pragma once
|
||||
#if defined(ARDUINO)
|
||||
|
||||
#include <Arduino.h>
|
||||
bool StartWifi(const char *wifiSsid, const char *wifiPassword,
|
||||
bool hotspotFallback);
|
||||
bool hotspotFallback);
|
||||
|
||||
void CheckFirmware(String url, String FIRMWARE_NAME, int FIRMWARE_VERSION);
|
||||
|
||||
#endif
|
@ -30,7 +30,8 @@ Participant::Participant(int port) {
|
||||
this->participants.push_back(this);
|
||||
|
||||
int randomPort = (rand() % (65535 - 49152 + 1)) + 49152;
|
||||
SetupUDP(randomPort, ipAddress, port);
|
||||
this->localPort = randomPort;
|
||||
// SetupUDP(randomPort, ipAddress, port);
|
||||
}
|
||||
|
||||
Participant::Participant(const char *ipAddress, int port) {
|
||||
@ -40,12 +41,15 @@ Participant::Participant(const char *ipAddress, int port) {
|
||||
this->participants.push_back(this);
|
||||
|
||||
int randomPort = (rand() % (65535 - 49152 + 1)) + 49152;
|
||||
SetupUDP(randomPort, ipAddress, port);
|
||||
this->localPort = randomPort;
|
||||
// SetupUDP(randomPort, ipAddress, port);
|
||||
}
|
||||
|
||||
void Passer::Control::Participant::SetupUDP(int localPort,
|
||||
const char *remoteIpAddress,
|
||||
int remotePort) {
|
||||
void Participant::begin() {
|
||||
SetupUDP(this->localPort, this->ipAddress, this->port);
|
||||
}
|
||||
|
||||
void Participant::SetupUDP(int localPort, const char *remoteIpAddress, int remotePort) {
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
UdpWindows *thisWindows = static_cast<UdpWindows *>(this);
|
||||
thisWindows->Setup(localPort, remoteIpAddress, remotePort);
|
||||
@ -56,6 +60,7 @@ void Passer::Control::Participant::SetupUDP(int localPort,
|
||||
UdpArduino *thisArduino = static_cast<UdpArduino *>(this);
|
||||
thisArduino->Setup(localPort, remoteIpAddress, remotePort);
|
||||
#endif
|
||||
this->connected = true;
|
||||
}
|
||||
|
||||
#if defined(ARDUINO)
|
||||
@ -63,6 +68,9 @@ void Participant::Update() { this->Update(millis()); }
|
||||
#endif
|
||||
|
||||
void Participant::Update(unsigned long currentTimeMs) {
|
||||
if (this->connected == false)
|
||||
begin();
|
||||
|
||||
if (this->publishInterval > 0 && currentTimeMs > this->nextPublishMe) {
|
||||
ClientMsg *msg = new ClientMsg(this->networkId);
|
||||
this->Publish(msg);
|
||||
|
@ -35,6 +35,7 @@ public:
|
||||
|
||||
const char *ipAddress = "0.0.0.0";
|
||||
int port = 0;
|
||||
int localPort = 0;
|
||||
|
||||
#if defined(ARDUINO)
|
||||
const char *remoteIpAddress = nullptr;
|
||||
@ -62,6 +63,9 @@ public:
|
||||
// i.e.
|
||||
// Participant p = Participant("127.0.0.1", 8000);
|
||||
|
||||
void begin();
|
||||
bool connected = false;
|
||||
|
||||
#if defined(ARDUINO)
|
||||
virtual void Update();
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user