Added debugging steps to firmware

This commit is contained in:
EivindH06
2025-10-07 12:18:20 +02:00
parent 9bcc53ad08
commit 992ba4a379
4 changed files with 21 additions and 0 deletions

View File

@@ -61,6 +61,8 @@ public:
bool isUpgradeInformationChanged();
void ackUpgradeInformationChanged();
int getLastHttpStatus() const { return lastHttpStatus; }
bool startFirmwareUpload(uint32_t size, const char* version);
bool addFirmwareUploadChunk(uint8_t* buf, size_t length);
bool completeFirmwareUpload(uint32_t size);
@@ -126,6 +128,7 @@ private:
uint8_t* buf = NULL;
uint16_t bufPos = 0;
int lastHttpStatus = 0;
#if defined(ESP32)
bool readPartition(uint8_t num, const esp_partition_info_t* info);

View File

@@ -340,9 +340,11 @@ bool AmsFirmwareUpdater::fetchVersionDetails() {
bool AmsFirmwareUpdater::fetchFirmwareChunk(HTTPClient& http) {
#if FIRMWARE_UPDATE_USE_MANIFEST
if(!loadManifest(false)) {
lastHttpStatus = -200;
return false;
}
if(manifestInfo.downloadUrl.isEmpty()) {
lastHttpStatus = -201;
return false;
}
@@ -368,6 +370,7 @@ bool AmsFirmwareUpdater::fetchFirmwareChunk(HTTPClient& http) {
http.addHeader(F("x-AMS-version"), FirmwareVersion::VersionString);
http.addHeader(F("Range"), range);
int status = http.GET();
lastHttpStatus = status;
if(status == HTTP_CODE_PARTIAL_CONTENT || status == HTTP_CODE_OK) {
if(md5.equals(F("unknown")) && manifestInfo.md5.length() > 0) {
md5 = manifestInfo.md5;
@@ -375,6 +378,9 @@ bool AmsFirmwareUpdater::fetchFirmwareChunk(HTTPClient& http) {
return true;
}
}
if(lastHttpStatus == 0) {
lastHttpStatus = -202;
}
return false;
#else
const char * headerkeys[] = { "x-MD5" };
@@ -387,6 +393,7 @@ bool AmsFirmwareUpdater::fetchFirmwareChunk(HTTPClient& http) {
const char* firmwareVariant = FIRMWARE_UPDATE_CHANNEL;
lastHttpStatus = status;
char url[256];
snprintf(url, sizeof(url), "%s/firmware/%s/%s/%s/chunk", FIRMWARE_UPDATE_BASE_URL, chipType, firmwareVariant, updateStatus.toVersion);
#if defined(ESP8266)
@@ -394,6 +401,9 @@ bool AmsFirmwareUpdater::fetchFirmwareChunk(HTTPClient& http) {
client.setTimeout(5000);
if(http.begin(client, url)) {
#elif defined(ESP32)
if(lastHttpStatus == 0) {
lastHttpStatus = -202;
}
if(http.begin(url)) {
#endif
http.useHTTP10(true);

View File

@@ -220,6 +220,13 @@
</div>
</div>
{/if}
{#if sysinfo.upgrade?.x !== undefined && sysinfo.upgrade.x !== -1}
<div class="my-2">
<div class="bd-gray text-xs">
Last HTTP status: {sysinfo.upgrade.x}
</div>
</div>
{/if}
{#if sysinfo.upgrade.n}
<div class="my-2 flex">
{translations.status?.firmware?.latest ?? "Latest"}:

View File

@@ -518,6 +518,7 @@ void AmsWebServer::sysinfoJson() {
upinfo.toVersion,
updater->getNextVersion(),
updater->getProgress(),
updater->getLastHttpStatus(),
ea->getUseLastMonth(),
ea->getCostLastMonth(),
ea->getProducedLastMonth(),