OTA works
This commit is contained in:
4
Ota.cpp
4
Ota.cpp
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#define FULL_PACKET 1436 // HTTP_UPLOAD_BUFLEN in WebServer,h
|
#define FULL_PACKET 1436 // HTTP_UPLOAD_BUFLEN in WebServer,h
|
||||||
|
|
||||||
void Ota::updateFirmware(uint8_t buf, size_t size)
|
void Ota::updateFirmware(uint8_t* buf, size_t size)
|
||||||
{
|
{
|
||||||
if (!_updateFlag)
|
if (!_updateFlag)
|
||||||
{ //If it's the first packet of OTA since bootup, begin OTA
|
{ //If it's the first packet of OTA since bootup, begin OTA
|
||||||
@@ -11,7 +11,7 @@ void Ota::updateFirmware(uint8_t buf, size_t size)
|
|||||||
esp_ota_begin(esp_ota_get_next_update_partition(NULL), OTA_SIZE_UNKNOWN, &otaHandler);
|
esp_ota_begin(esp_ota_get_next_update_partition(NULL), OTA_SIZE_UNKNOWN, &otaHandler);
|
||||||
_updateFlag = true;
|
_updateFlag = true;
|
||||||
}
|
}
|
||||||
esp_ota_write(otaHandler, (const void*)buf, size);
|
esp_ota_write(otaHandler, buf, size);
|
||||||
if (size != FULL_PACKET)
|
if (size != FULL_PACKET)
|
||||||
{
|
{
|
||||||
esp_ota_end(otaHandler);
|
esp_ota_end(otaHandler);
|
||||||
|
|||||||
2
Ota.h
2
Ota.h
@@ -7,7 +7,7 @@
|
|||||||
class Ota
|
class Ota
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
void updateFirmware(uint8_t buf, size_t size);
|
void updateFirmware(uint8_t* buf, size_t size);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _updateFlag = false;
|
bool _updateFlag = false;
|
||||||
|
|||||||
@@ -125,7 +125,8 @@ void WebCfgServer::initialize()
|
|||||||
return _server.requestAuthentication();
|
return _server.requestAuthentication();
|
||||||
}
|
}
|
||||||
|
|
||||||
String response = "ok";
|
String response = "";
|
||||||
|
buildConfirmHtml(response, "Initiating Over-the-air Update. This will take a moment, please be patient.", 35);
|
||||||
|
|
||||||
_server.send(200, "text/html", response);
|
_server.send(200, "text/html", response);
|
||||||
}, [&]() {
|
}, [&]() {
|
||||||
@@ -463,7 +464,7 @@ void WebCfgServer::buildOtaHtml(String &response)
|
|||||||
void WebCfgServer::buildMqttConfigHtml(String &response)
|
void WebCfgServer::buildMqttConfigHtml(String &response)
|
||||||
{
|
{
|
||||||
response.concat("<FORM ACTION=method=get >");
|
response.concat("<FORM ACTION=method=get >");
|
||||||
response.concat("<h3>MQTT COnfiguration</h3>");
|
response.concat("<h3>MQTT Configuration</h3>");
|
||||||
response.concat("<table>");
|
response.concat("<table>");
|
||||||
printInputField(response, "HOSTNAME", "Host name", _preferences->getString(preference_hostname).c_str(), 100);
|
printInputField(response, "HOSTNAME", "Host name", _preferences->getString(preference_hostname).c_str(), 100);
|
||||||
printInputField(response, "MQTTSERVER", "MQTT Broker", _preferences->getString(preference_mqtt_broker).c_str(), 100);
|
printInputField(response, "MQTTSERVER", "MQTT Broker", _preferences->getString(preference_mqtt_broker).c_str(), 100);
|
||||||
@@ -655,6 +656,9 @@ void WebCfgServer::handleOtaUpload()
|
|||||||
if (_server.uri() != "/uploadota") {
|
if (_server.uri() != "/uploadota") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
esp_task_wdt_init(30, false);
|
||||||
|
|
||||||
HTTPUpload& upload = _server.upload();
|
HTTPUpload& upload = _server.upload();
|
||||||
if (upload.status == UPLOAD_FILE_START) {
|
if (upload.status == UPLOAD_FILE_START) {
|
||||||
String filename = upload.filename;
|
String filename = upload.filename;
|
||||||
@@ -663,8 +667,9 @@ void WebCfgServer::handleOtaUpload()
|
|||||||
}
|
}
|
||||||
Serial.print("handleFileUpload Name: "); Serial.println(filename);
|
Serial.print("handleFileUpload Name: "); Serial.println(filename);
|
||||||
} else if (upload.status == UPLOAD_FILE_WRITE) {
|
} else if (upload.status == UPLOAD_FILE_WRITE) {
|
||||||
Serial.println(upload.currentSize);
|
_transferredSize = _transferredSize + upload.currentSize;
|
||||||
_ota.updateFirmware(*upload.buf, upload.currentSize);
|
Serial.println(_transferredSize);
|
||||||
|
_ota.updateFirmware(upload.buf, upload.currentSize);
|
||||||
} else if (upload.status == UPLOAD_FILE_END) {
|
} else if (upload.status == UPLOAD_FILE_END) {
|
||||||
Serial.println();
|
Serial.println();
|
||||||
Serial.print("handleFileUpload Size: "); Serial.println(upload.totalSize);
|
Serial.print("handleFileUpload Size: "); Serial.println(upload.totalSize);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ private:
|
|||||||
char _credUser[20] = {0};
|
char _credUser[20] = {0};
|
||||||
char _credPassword[20] = {0};
|
char _credPassword[20] = {0};
|
||||||
bool _allowRestartToPortal = false;
|
bool _allowRestartToPortal = false;
|
||||||
|
uint32_t _transferredSize = 0;
|
||||||
|
|
||||||
String _confirmCode = "----";
|
String _confirmCode = "----";
|
||||||
|
|
||||||
|
|||||||
2
main.cpp
2
main.cpp
@@ -89,7 +89,7 @@ void setupTasks()
|
|||||||
{
|
{
|
||||||
// configMAX_PRIORITIES is 25
|
// configMAX_PRIORITIES is 25
|
||||||
|
|
||||||
xTaskCreate(networkTask, "ntw", 8192, NULL, 3, NULL);
|
xTaskCreatePinnedToCore(networkTask, "ntw", 8192, NULL, 3, NULL, 1);
|
||||||
xTaskCreate(nukiTask, "nuki", 4096, NULL, 2, NULL);
|
xTaskCreate(nukiTask, "nuki", 4096, NULL, 2, NULL);
|
||||||
xTaskCreate(presenceDetectionTask, "prdet", 768, NULL, 5, NULL);
|
xTaskCreate(presenceDetectionTask, "prdet", 768, NULL, 5, NULL);
|
||||||
xTaskCreate(checkMillisTask, "mlchk", 512, NULL, 1, NULL);
|
xTaskCreate(checkMillisTask, "mlchk", 512, NULL, 1, NULL);
|
||||||
|
|||||||
Reference in New Issue
Block a user