From f877f43d9040e5f1ae95860b6d713b97f2968eba Mon Sep 17 00:00:00 2001 From: Manuel Weiser Date: Mon, 17 Feb 2025 14:44:38 +0100 Subject: [PATCH] feat: update version to v1.2.1 and change upgrade link to OTA in HTML files; modify updateSpoolTagId function to return boolean --- html/header.html | 2 +- html/index.html | 4 +- html/rfid.html | 4 +- html/spoolman.html | 4 +- html/waage.html | 4 +- html/wifi.html | 4 +- platformio.ini | 2 +- src/api.cpp | 10 ++--- src/api.h | 2 +- src/nfc.cpp | 99 +++++++++++++++------------------------------- 10 files changed, 49 insertions(+), 86 deletions(-) diff --git a/html/header.html b/html/header.html index 740b6fd..84607ae 100644 --- a/html/header.html +++ b/html/header.html @@ -12,7 +12,7 @@
-

FilaManv1.2.0

+

FilaManv1.2.1

Filament Management Tool

diff --git a/html/index.html b/html/index.html index 59e4c1c..00d2cf7 100644 --- a/html/index.html +++ b/html/index.html @@ -12,7 +12,7 @@
-

FilaManv1.2.0

+

FilaManv1.2.1

Filament Management Tool

@@ -21,7 +21,7 @@ Scale Spoolman/Bambu About - Upgrade + Upgrade
diff --git a/html/rfid.html b/html/rfid.html index a6a2c38..f5f31ad 100644 --- a/html/rfid.html +++ b/html/rfid.html @@ -12,7 +12,7 @@
-

FilaManv1.2.0

+

FilaManv1.2.1

Filament Management Tool

@@ -21,7 +21,7 @@ Scale Spoolman/Bambu About - Upgrade + Upgrade
diff --git a/html/spoolman.html b/html/spoolman.html index 33d9aff..19b21ff 100644 --- a/html/spoolman.html +++ b/html/spoolman.html @@ -12,7 +12,7 @@
-

FilaManv1.2.0

+

FilaManv1.2.1

Filament Management Tool

@@ -21,7 +21,7 @@ Scale Spoolman/Bambu About - Upgrade + Upgrade
diff --git a/html/waage.html b/html/waage.html index 5806235..a2f2a75 100644 --- a/html/waage.html +++ b/html/waage.html @@ -12,7 +12,7 @@
-

FilaManv1.2.0

+

FilaManv1.2.1

Filament Management Tool

@@ -21,7 +21,7 @@ Scale Spoolman/Bambu About - Upgrade + Upgrade
diff --git a/html/wifi.html b/html/wifi.html index 709a43f..cda0883 100644 --- a/html/wifi.html +++ b/html/wifi.html @@ -12,7 +12,7 @@
-

FilaManv1.2.0

+

FilaManv1.2.1

Filament Management Tool

@@ -21,7 +21,7 @@ Scale Spoolman/Bambu About - Upgrade + Upgrade
diff --git a/platformio.ini b/platformio.ini index 4b8d1fe..ff85c2c 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [common] -version = "1.2.0" +version = "1.2.1" [env:esp32dev] platform = espressif32 diff --git a/src/api.cpp b/src/api.cpp index b706dcd..8b188fe 100644 --- a/src/api.cpp +++ b/src/api.cpp @@ -175,20 +175,20 @@ void sendToApi(void *parameter) { vTaskDelete(NULL); } -uint8_t updateSpoolTagId(String uidString, const char* payload) { +bool updateSpoolTagId(String uidString, const char* payload) { JsonDocument doc; DeserializationError error = deserializeJson(doc, payload); if (error) { Serial.print("Fehler beim JSON-Parsing: "); Serial.println(error.c_str()); - return 0; + return false; } // Überprüfe, ob die erforderlichen Felder vorhanden sind if (!doc.containsKey("sm_id") || doc["sm_id"] == "") { Serial.println("Keine Spoolman-ID gefunden."); - return 0; + return false; } String spoolsUrl = spoolmanUrl + apiUrl + "/spool/" + doc["sm_id"].as(); @@ -207,7 +207,7 @@ uint8_t updateSpoolTagId(String uidString, const char* payload) { SendToApiParams* params = new SendToApiParams(); if (params == nullptr) { Serial.println("Fehler: Kann Speicher für Task-Parameter nicht allokieren."); - return 0; + return false; } params->httpType = "PATCH"; params->spoolsUrl = spoolsUrl; @@ -223,7 +223,7 @@ uint8_t updateSpoolTagId(String uidString, const char* payload) { NULL // Task-Handle (nicht benötigt) ); - return 1; + return true; } uint8_t updateSpoolWeight(String spoolId, uint16_t weight) { diff --git a/src/api.h b/src/api.h index de9fab4..3b80c93 100644 --- a/src/api.h +++ b/src/api.h @@ -17,7 +17,7 @@ bool checkSpoolmanExtraFields(); // Neue Funktion zum Überprüfen der Extrafeld JsonDocument fetchSpoolsForWebsite(); // API-Funktion für die Webseite JsonDocument fetchAllSpoolsInfo(); void sendAmsData(AsyncWebSocketClient *client); // Neue Funktion zum Senden von AMS-Daten -uint8_t updateSpoolTagId(String uidString, const char* payload); // Neue Funktion zum Aktualisieren eines Spools +bool updateSpoolTagId(String uidString, const char* payload); // Neue Funktion zum Aktualisieren eines Spools uint8_t updateSpoolWeight(String spoolId, uint16_t weight); // Neue Funktion zum Aktualisieren des Gewichts bool initSpoolman(); // Neue Funktion zum Initialisieren von Spoolman diff --git a/src/nfc.cpp b/src/nfc.cpp index 2cff742..2aed149 100644 --- a/src/nfc.cpp +++ b/src/nfc.cpp @@ -93,14 +93,6 @@ bool formatNdefTag() { } uint8_t ntag2xx_WriteNDEF(const char *payload) { - /* - if (!formatNdefTag()) { - Serial.println("Fehler beim Formatieren des NDEF-Tags."); - hasReadRfidTag = 2; - return 0; - } - */ - uint8_t tagSize = 240; // 144 bytes is maximum for NTAG213 Serial.print("Tag Size: ");Serial.println(tagSize); @@ -137,9 +129,6 @@ uint8_t ntag2xx_WriteNDEF(const char *payload) { return 0; } - //Serial.println(); - //Serial.print("Header Size: ");Serial.println(sizeof(pageHeader)); - // Kombiniere Header und Payload int totalSize = sizeof(pageHeader) + len; uint8_t* combinedData = (uint8_t*) malloc(totalSize); @@ -149,37 +138,10 @@ uint8_t ntag2xx_WriteNDEF(const char *payload) { return 0; } - // Überprüfe die Kombination von Header und Payload - /* - Serial.print("Header: "); - for (int i = 0; i < sizeof(pageHeader); i++) { - Serial.print(pageHeader[i], HEX); - Serial.print(" "); - } - Serial.println(); - - Serial.print("Payload: "); - for (int i = 0; i < len; i++) { - Serial.print(payload[i], HEX); - Serial.print(" "); - } - Serial.println(); - */ - // Kombiniere Header und Payload memcpy(combinedData, pageHeader, sizeof(pageHeader)); memcpy(&combinedData[sizeof(pageHeader)], payload, len); - // Überprüfe die Kombination von Header und Payload - /* - Serial.print("Kombinierte Daten: "); - for (int i = 0; i < totalSize; i++) { - Serial.print(combinedData[i], HEX); - Serial.print(" "); - } - Serial.println(); - */ - // Schreibe die Seiten uint8_t a = 0; uint8_t i = 0; @@ -188,21 +150,9 @@ uint8_t ntag2xx_WriteNDEF(const char *payload) { int bytesToWrite = (totalSize < 4) ? totalSize : 4; memcpy(pageBuffer, combinedData + a, bytesToWrite); - // Überprüfe die Schreibung der Seiten - /* - Serial.print("Seite "); - Serial.print(i); - Serial.print(": "); - for (int j = 0; j < bytesToWrite; j++) { - Serial.print(pageBuffer[j], HEX); - Serial.print(" "); - } - Serial.println(); - */ - uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID - uint8_t uidLength; - nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 500); - //Serial.print("Schreibe Seite: ");Serial.println(i); + //uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID + //uint8_t uidLength; + //nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 100); if (!(nfc.ntag2xx_WritePage(4+i, pageBuffer))) { @@ -210,8 +160,6 @@ uint8_t ntag2xx_WriteNDEF(const char *payload) { free(combinedData); return 0; } - - //Serial.print("Seite geschrieben: ");Serial.println(i); yield(); //esp_task_wdt_reset(); @@ -285,11 +233,15 @@ void writeJsonToTag(void *parameter) { // Gib die erstellte NDEF-Message aus Serial.println("Erstelle NDEF-Message..."); + Serial.println(payload); + hasReadRfidTag = 3; vTaskSuspend(RfidReaderTask); + vTaskDelay(500 / portTICK_PERIOD_MS); //pauseBambuMqttTask = true; // aktualisieren der Website wenn sich der Status ändert sendNfcData(nullptr); + oledShowMessage("Waiting for NFC-Tag"); // Wait 10sec for tag uint8_t success = 0; @@ -326,13 +278,21 @@ void writeJsonToTag(void *parameter) { Serial.println("NDEF-Message erfolgreich auf den Tag geschrieben"); //oledShowMessage("NFC-Tag written"); oledShowIcon("success"); - vTaskDelay(2000 / portTICK_PERIOD_MS); + vTaskDelay(1000 / portTICK_PERIOD_MS); hasReadRfidTag = 5; // aktualisieren der Website wenn sich der Status ändert sendNfcData(nullptr); - vTaskResume(RfidReaderTask); pauseBambuMqttTask = false; - updateSpoolTagId(uidString, payload); + if (updateSpoolTagId(uidString, payload)) { + uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID + uint8_t uidLength; + oledShowIcon("success"); + while (nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 500)) { + yield(); + } + } + vTaskResume(RfidReaderTask); + vTaskDelay(500 / portTICK_PERIOD_MS); } else { @@ -361,16 +321,19 @@ void writeJsonToTag(void *parameter) { void startWriteJsonToTag(const char* payload) { char* payloadCopy = strdup(payload); - - // Erstelle die Task - xTaskCreate( - writeJsonToTag, // Task-Funktion - "WriteJsonToTagTask", // Task-Name - 4096, // Stackgröße in Bytes - (void*)payloadCopy, // Parameter - rfidWriteTaskPrio, // Priorität - NULL // Task-Handle (nicht benötigt) - ); + + // Task nicht mehrfach starten + if (hasReadRfidTag != 3) { + // Erstelle die Task + xTaskCreate( + writeJsonToTag, // Task-Funktion + "WriteJsonToTagTask", // Task-Name + 4096, // Stackgröße in Bytes + (void*)payloadCopy, // Parameter + rfidWriteTaskPrio, // Priorität + NULL // Task-Handle (nicht benötigt) + ); + } } void scanRfidTask(void * parameter) {