From 9c61b708aa3ba4014a04481e5985b67fd46463e3 Mon Sep 17 00:00:00 2001 From: Manuel Weiser Date: Tue, 25 Feb 2025 14:52:27 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20aktualisiere=20Bedingungen=20f=C3=BCr=20?= =?UTF-8?q?die=20AMS-Datenaktualisierung=20und=20entferne=20unn=C3=B6tige?= =?UTF-8?q?=20Aufrufe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bambu.cpp | 17 +++++++++++------ src/main.cpp | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/bambu.cpp b/src/bambu.cpp index 8ef7465..5911fe4 100644 --- a/src/bambu.cpp +++ b/src/bambu.cpp @@ -393,13 +393,13 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { if (vtTray["tray_info_idx"].as() != ams_data[i].trays[0].tray_info_idx || vtTray["tray_type"].as() != ams_data[i].trays[0].tray_type || vtTray["tray_color"].as() != ams_data[i].trays[0].tray_color || - vtTray["cali_idx"].as() != ams_data[i].trays[0].cali_idx) { + (vtTray["tray_type"].as() != "" && vtTray["cali_idx"].as() != ams_data[i].trays[0].cali_idx)) { hasChanges = true; } break; } } - if (!foundExternal) hasChanges = true; + //if (!foundExternal) hasChanges = true; } if (!hasChanges) return; @@ -448,12 +448,14 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { ams_data[extIdx].trays[0].setting_id = vtTray["setting_id"].as(); ams_data[extIdx].trays[0].cali_idx = vtTray["cali_idx"].as(); } + else + { + ams_data[extIdx].trays[0].setting_id = ""; + ams_data[extIdx].trays[0].cali_idx = ""; + } ams_count++; // Erhöhe ams_count für die externe Spule } - // Sende die aktualisierten AMS-Daten - //sendAmsData(nullptr); - // Erstelle JSON für WebSocket-Clients JsonDocument wsDoc; JsonArray wsArray = wsDoc.to(); @@ -480,10 +482,12 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { } serializeJson(wsArray, amsJsonData); + Serial.println("AMS data updated"); sendAmsData(nullptr); } + // Neue Bedingung für ams_filament_setting - else if (doc["print"]["command"] == "ams_filament_setting") { + if (doc["print"]["command"] == "ams_filament_setting") { int amsId = doc["print"]["ams_id"].as(); int trayId = doc["print"]["tray_id"].as(); String settingId = doc["print"]["setting_id"].as(); @@ -524,6 +528,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) { serializeJson(wsArray, amsJsonData); // Sende an WebSocket Clients + Serial.println("Filament setting updated"); sendAmsData(nullptr); break; } diff --git a/src/main.cpp b/src/main.cpp index ac027c0..c668e00 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -109,7 +109,7 @@ void loop() { if (currentMillis - lastAmsSendTime >= amsSendInterval) { lastAmsSendTime = currentMillis; - sendAmsData(nullptr); + //sendAmsData(nullptr); } // Wenn Bambu auto set Spool aktiv