extract Version from define
Some checks failed
Test compiling project / test (push) Failing after 1m33s
Some checks failed
Test compiling project / test (push) Failing after 1m33s
This commit is contained in:
@@ -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" \
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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;
|
||||
};
|
||||
26
src/main.cpp
26
src/main.cpp
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user