initial lcd ota code
This commit is contained in:
parent
10b55e5aa5
commit
e3514cef3c
|
@ -0,0 +1,52 @@
|
|||
#include <espmega_iot_ledota.hpp>
|
||||
|
||||
ESPMega_LCDOTA::register_ota()
|
||||
{
|
||||
otaserver.on(
|
||||
update_endpoint, HTTP_POST, []()
|
||||
{
|
||||
otaserver.sendHeader("Connection", "close");
|
||||
otaserver.send(200, "text/plain", (Update.hasError()) ? "FAIL" : "OK");
|
||||
ESP.restart(); },
|
||||
this->update_action);
|
||||
}
|
||||
|
||||
ESPMega_LCDOTA::update_action(AsyncWebServerRequest *request, String filename, size_t index, uint8_t *data, size_t len, bool final)
|
||||
{
|
||||
HTTPUpload &upload = otaserver.upload();
|
||||
if (upload.status == UPLOAD_FILE_START)
|
||||
{
|
||||
send_stop_bit();
|
||||
update_init();
|
||||
}
|
||||
else if (upload.status == UPLOAD_FILE_WRITE)
|
||||
{
|
||||
if (Update.write(upload.buf, upload.currentSize) != upload.currentSize)
|
||||
{
|
||||
panel.writeStr("otatxt.txt", "Update Failed, Rebooting . . .");
|
||||
Update.printError(Serial);
|
||||
}
|
||||
if (upload.currentSize != 0 && upload.totalSize != 0)
|
||||
{
|
||||
lcd_send_stop_bit();
|
||||
uint32_t totalsize_kb = upload.totalSize / 1000;
|
||||
uint32_t upload_pct = 100 * upload.totalSize / 1000000;
|
||||
String otafiletxt = "Downloading File : " + upload.filename + " (" + String(totalsize_kb) + "KB)";
|
||||
panel.writeNum("prog.val", upload_pct);
|
||||
panel.writeStr("otatxt.txt", otafiletxt);
|
||||
}
|
||||
}
|
||||
else if (upload.status == UPLOAD_FILE_END)
|
||||
{
|
||||
if (Update.end(true))
|
||||
{
|
||||
panel.writeStr("otatxt.txt", "Update Completed, Rebooting . . .");
|
||||
Serial.printf("Update Success: %u\nRebooting...\n", upload.totalSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
panel.writeStr("otatxt.txt", "Update Failed, Rebooting . . .");
|
||||
Update.printError(Serial);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
#pragma once
|
||||
#include <WebServer.h>
|
||||
#include <ESPMegaPRO.h>
|
||||
class ESPMega_LCDOTA {
|
||||
public:
|
||||
ESPMega_LCDOTA();
|
||||
void update_init();
|
||||
void write_data();
|
||||
void update_end();
|
||||
private:
|
||||
char update_endpoint[20];
|
||||
void register_ota();
|
||||
void send_stop_bit();
|
||||
void update_action();
|
||||
HardwareSerial lcdserial;
|
||||
WebServer otaserver;
|
||||
}
|
Loading…
Reference in New Issue