extract Version from define
Some checks failed
Test compiling project / test (push) Failing after 1m33s

This commit is contained in:
2025-02-15 16:03:32 +01:00
parent 10b34c3fd4
commit 33fdae3fb2
6 changed files with 45 additions and 29 deletions

View File

@@ -25,7 +25,8 @@ jobs:
run: ls -lah .pio/build/ESP32_INA233/ .pio/build/ESP32_INA226/
- name: Upload firmware binary for INA233
run: |
VERSION=$(cat version)
VERSION=$(sed -n 's/#define current_version Version{[[:space:]]*\([0-9]\+\),[[:space:]]*\([0-9]\+\),[[:space:]]*\([0-9]\+\)}/\1.\2.\3/p' src/global_data/defines.h)
echo "Extracted version: $VERSION"
curl -X PUT \
-H "Content-Type: application/octet-stream" \
@@ -34,7 +35,8 @@ jobs:
- name: Upload firmware binary for INA226
run: |
VERSION=$(cat version)
VERSION=$(sed -n 's/#define current_version Version{[[:space:]]*\([0-9]\+\),[[:space:]]*\([0-9]\+\),[[:space:]]*\([0-9]\+\)}/\1.\2.\3/p' src/global_data/defines.h)
echo "Extracted version: $VERSION"
curl -X PUT \
-H "Content-Type: application/octet-stream" \

View File

@@ -7,6 +7,8 @@
#include <HTTPClient.h>
#include <vector>
#include <ArduinoLog.h>
#include <HTTPUpdate.h>
OTA::OTA(String server_url, String currentVersion, String currentDeviceConfiguration) {
@@ -71,6 +73,36 @@ Firmware OTA::createErrorResponse(const String& errorMsg) {
};
}
void OTA::run_ota_update(String url) {
Log.verbose("Starting OTA upgrade");
HTTPUpdate httpUpdate;
httpUpdate.onStart(update_started);
httpUpdate.onEnd(update_finished);
httpUpdate.onProgress(update_progress);
httpUpdate.onError(update_error);
Serial.println("RUNNING OTA");
WiFiClientSecure client;
client.setInsecure();
t_httpUpdate_return ret = httpUpdate.update(client, "https://iot.tobiasmaier.me/firmware/waterlevel/INA233/1_1_1.bin");
// t_httpUpdate_return ret = httpUpdate.update(client, "https://iot.tobiasmaier.me", 443, "/firmware/waterlevel/INA233/1_0_1.bin");
switch (ret) {
case HTTP_UPDATE_FAILED:
Serial.printf("HTTP_UPDATE_FAILED Error (%d): %s\n", httpUpdate.getLastError(), httpUpdate.getLastErrorString().c_str());
break;
case HTTP_UPDATE_NO_UPDATES:
Serial.println("HTTP_UPDATE_NO_UPDATES");
break;
case HTTP_UPDATE_OK:
Serial.println("HTTP_UPDATE_OK");
break;
}
}
#endif

View File

@@ -5,5 +5,6 @@
#define water_level_min_key "water_level_min"
#define water_level_max_key "water_level_max"
#define water_volume_key "water_volume"
#define current_version Version{0, 0, 2}
#define RESISTOR_VALUE 4

View File

@@ -1,4 +1,5 @@
#include <Arduino.h>
#include <utils.h>
#pragma once
@@ -37,4 +38,11 @@ struct ActiveErrors {
bool current_high;
bool level_low;
bool level_high;
};
struct OTAStatus {
bool update_available;
Version current_version;
Version latest_version;
int update_progress;
};

View File

@@ -59,33 +59,7 @@ void update_started() {
Firmware fw = ota.getLatestVersionOnServer();
Log.verbose("we are done");
Serial.printf("Firmware Info: Valid: %d, Version: %d.%d.%d, URL: %s\n", fw.valid, fw.version.major, fw.version.minor, fw.version.patch, fw.url.c_str());
// Serial.println("RUNNING OTA");
// // WiFiClient client;
// httpUpdate.onStart(update_started);
// httpUpdate.onEnd(update_finished);
// httpUpdate.onProgress(update_progress);
// httpUpdate.onError(update_error);
// Serial.println("RUNNING OTA");
// WiFiClientSecure client;
// client.setInsecure();
// t_httpUpdate_return ret = httpUpdate.update(client, "https://iot.tobiasmaier.me/firmware/waterlevel/INA233/1_1_1.bin");
// // t_httpUpdate_return ret = httpUpdate.update(client, "https://iot.tobiasmaier.me", 443, "/firmware/waterlevel/INA233/1_0_1.bin");
// switch (ret) {
// case HTTP_UPDATE_FAILED:
// Serial.printf("HTTP_UPDATE_FAILED Error (%d): %s\n", httpUpdate.getLastError(), httpUpdate.getLastErrorString().c_str());
// break;
// case HTTP_UPDATE_NO_UPDATES:
// Serial.println("HTTP_UPDATE_NO_UPDATES");
// break;
// case HTTP_UPDATE_OK:
// Serial.println("HTTP_UPDATE_OK");
// break;
// }
vTaskDelete(NULL);
}

View File

@@ -1 +0,0 @@
0.0.1