moved ota into separate files
This commit is contained in:
parent
799f21ab56
commit
285f138485
115
src/main.cpp
115
src/main.cpp
|
@ -1,50 +1,6 @@
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <WiFi.h>
|
|
||||||
#include <ArduinoOTA.h>
|
|
||||||
#include "simpleota.h"
|
#include "simpleota.h"
|
||||||
|
|
||||||
#define OTA_WIFI_SSID "Chaos-West temp alternative"
|
|
||||||
#define OTA_WIFI_PASSWORD ""
|
|
||||||
#define OTA_WAIT_TIMEOUT 1000 // in 0.1s increments -> 10s
|
|
||||||
|
|
||||||
void normal_setup();
|
|
||||||
void checkOTA();
|
|
||||||
bool initOTA();
|
|
||||||
|
|
||||||
enum OTA_MODE {
|
|
||||||
NONE,
|
|
||||||
SEARCHING,
|
|
||||||
WAITING,
|
|
||||||
UPDATING
|
|
||||||
} otaMode;
|
|
||||||
|
|
||||||
uint16_t otaWaitCounter;
|
|
||||||
|
|
||||||
void checkOTA() {
|
|
||||||
otaMode = SEARCHING;
|
|
||||||
Serial.println("looking for OTA WiFi...");
|
|
||||||
|
|
||||||
// WARNING: to allow ESP-NOW work, this WiFi must be on Channel 1
|
|
||||||
if (OTA_WIFI_PASSWORD!="") {
|
|
||||||
WiFi.begin(OTA_WIFI_SSID, OTA_WIFI_PASSWORD); //wifi with password
|
|
||||||
}else{
|
|
||||||
WiFi.begin(OTA_WIFI_SSID); //open wifi
|
|
||||||
}
|
|
||||||
|
|
||||||
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
|
|
||||||
Serial.println("no OTA WiFi found, proceed normal boot");
|
|
||||||
otaMode = NONE;
|
|
||||||
WiFi.disconnect();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
otaMode = WAITING;
|
|
||||||
}
|
|
||||||
|
|
||||||
void normal_setup() {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
@ -60,78 +16,9 @@ void setup() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool initOTA() {
|
|
||||||
if (otaMode == WAITING) {
|
|
||||||
Serial.println("connected to OTA WiFi. Waiting for firmware...");
|
|
||||||
Serial.print("IP address: ");
|
|
||||||
Serial.println(WiFi.localIP());
|
|
||||||
|
|
||||||
ArduinoOTA
|
|
||||||
.onStart([]() {
|
|
||||||
otaMode = UPDATING;
|
|
||||||
String type;
|
|
||||||
if (ArduinoOTA.getCommand() == U_FLASH)
|
|
||||||
type = "sketch";
|
|
||||||
else // U_SPIFFS
|
|
||||||
type = "filesystem";
|
|
||||||
|
|
||||||
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
|
|
||||||
Serial.println("Start updating " + type);
|
|
||||||
})
|
|
||||||
.onEnd([]() {
|
|
||||||
Serial.println("\nEnd");
|
|
||||||
})
|
|
||||||
.onProgress([](unsigned int progress, unsigned int total) {
|
|
||||||
int prog = (progress / (total / 100));
|
|
||||||
Serial.printf("Progress: %u%%\r", prog);
|
|
||||||
|
|
||||||
})
|
|
||||||
.onError([](ota_error_t error) {
|
|
||||||
Serial.printf("Error[%u]: ", error);
|
|
||||||
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
|
|
||||||
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
|
|
||||||
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
|
|
||||||
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
|
|
||||||
else if (error == OTA_END_ERROR) Serial.println("End Failed");
|
|
||||||
});
|
|
||||||
|
|
||||||
ArduinoOTA.begin();
|
|
||||||
return 1; //ota ok
|
|
||||||
}else{
|
|
||||||
return 0; //not using ota
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool ota_loop() {
|
|
||||||
if (otaMode != NONE) {
|
|
||||||
ArduinoOTA.handle();
|
|
||||||
|
|
||||||
if(otaMode == WAITING) {
|
|
||||||
static long mil = millis();
|
|
||||||
static boolean huehott = false;
|
|
||||||
|
|
||||||
if(millis() - mil > 100) {
|
|
||||||
huehott = !huehott;
|
|
||||||
mil = millis();
|
|
||||||
|
|
||||||
otaWaitCounter++;
|
|
||||||
if(otaWaitCounter >= OTA_WAIT_TIMEOUT) {
|
|
||||||
Serial.println("OTA wait timeout, proceeding normal boot");
|
|
||||||
otaMode = NONE;
|
|
||||||
normal_setup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
if (ota_loop()) {
|
if (loopOTA()) {
|
||||||
return; //just wait for ota
|
return; //just wait for ota
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1 +1,98 @@
|
||||||
#include "simpleota.h"
|
#include "simpleota.h"
|
||||||
|
|
||||||
|
|
||||||
|
uint16_t otaWaitCounter;
|
||||||
|
|
||||||
|
|
||||||
|
OTA_MODE otaMode;
|
||||||
|
|
||||||
|
void checkOTA() {
|
||||||
|
otaMode = SEARCHING;
|
||||||
|
Serial.println("looking for OTA WiFi...");
|
||||||
|
|
||||||
|
// WARNING: to allow ESP-NOW work, this WiFi must be on Channel 1
|
||||||
|
if (OTA_WIFI_PASSWORD!="") {
|
||||||
|
WiFi.begin(OTA_WIFI_SSID, OTA_WIFI_PASSWORD); //wifi with password
|
||||||
|
}else{
|
||||||
|
WiFi.begin(OTA_WIFI_SSID); //open wifi
|
||||||
|
}
|
||||||
|
|
||||||
|
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
|
||||||
|
Serial.println("no OTA WiFi found, proceed normal boot");
|
||||||
|
otaMode = NONE;
|
||||||
|
WiFi.disconnect();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
otaMode = WAITING;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool initOTA() {
|
||||||
|
if (otaMode == WAITING) {
|
||||||
|
Serial.println("connected to OTA WiFi. Waiting for firmware...");
|
||||||
|
Serial.print("IP address: ");
|
||||||
|
Serial.println(WiFi.localIP());
|
||||||
|
|
||||||
|
ArduinoOTA
|
||||||
|
.onStart([]() {
|
||||||
|
otaMode = UPDATING;
|
||||||
|
String type;
|
||||||
|
if (ArduinoOTA.getCommand() == U_FLASH)
|
||||||
|
type = "sketch";
|
||||||
|
else // U_SPIFFS
|
||||||
|
type = "filesystem";
|
||||||
|
|
||||||
|
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
|
||||||
|
Serial.println("Start updating " + type);
|
||||||
|
})
|
||||||
|
.onEnd([]() {
|
||||||
|
Serial.println("\nEnd");
|
||||||
|
})
|
||||||
|
.onProgress([](unsigned int progress, unsigned int total) {
|
||||||
|
int prog = (progress / (total / 100));
|
||||||
|
Serial.printf("Progress: %u%%\r", prog);
|
||||||
|
|
||||||
|
})
|
||||||
|
.onError([](ota_error_t error) {
|
||||||
|
Serial.printf("Error[%u]: ", error);
|
||||||
|
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
|
||||||
|
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
|
||||||
|
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
|
||||||
|
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
|
||||||
|
else if (error == OTA_END_ERROR) Serial.println("End Failed");
|
||||||
|
});
|
||||||
|
|
||||||
|
ArduinoOTA.begin();
|
||||||
|
return 1; //ota ok
|
||||||
|
}else{
|
||||||
|
return 0; //not using ota
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool loopOTA() {
|
||||||
|
if (otaMode != NONE) {
|
||||||
|
ArduinoOTA.handle();
|
||||||
|
|
||||||
|
if(otaMode == WAITING) {
|
||||||
|
static long mil = millis();
|
||||||
|
static boolean huehott = false;
|
||||||
|
|
||||||
|
if(millis() - mil > 100) {
|
||||||
|
huehott = !huehott;
|
||||||
|
mil = millis();
|
||||||
|
|
||||||
|
otaWaitCounter++;
|
||||||
|
if(otaWaitCounter >= OTA_WAIT_TIMEOUT) {
|
||||||
|
Serial.println("OTA wait timeout, proceeding normal boot");
|
||||||
|
otaMode = NONE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,28 @@
|
||||||
#ifndef simpleota_h
|
#ifndef simpleota_h
|
||||||
#define simpleota_h
|
#define simpleota_h
|
||||||
|
|
||||||
|
#include <Arduino.h>
|
||||||
|
#include <WiFi.h>
|
||||||
|
#include <ArduinoOTA.h>
|
||||||
|
|
||||||
|
|
||||||
|
#define OTA_WIFI_SSID "Chaos-West temp alternative"
|
||||||
|
#define OTA_WIFI_PASSWORD ""
|
||||||
|
#define OTA_WAIT_TIMEOUT 1000 // in 0.1s increments -> 10s
|
||||||
|
|
||||||
|
void checkOTA();
|
||||||
|
bool initOTA();
|
||||||
|
bool loopOTA();
|
||||||
|
|
||||||
|
enum OTA_MODE {
|
||||||
|
NONE,
|
||||||
|
SEARCHING,
|
||||||
|
WAITING,
|
||||||
|
UPDATING
|
||||||
|
};
|
||||||
|
|
||||||
|
extern OTA_MODE otaMode;
|
||||||
|
|
||||||
|
extern uint16_t otaWaitCounter;
|
||||||
|
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue