fix: aktualisiere Bedingungen für die AMS-Datenaktualisierung und entferne unnötige Aufrufe

This commit is contained in:
Manuel Weiser 2025-02-25 14:52:27 +01:00
parent 90f800d042
commit 9c61b708aa
2 changed files with 12 additions and 7 deletions

View File

@ -393,13 +393,13 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
if (vtTray["tray_info_idx"].as<String>() != ams_data[i].trays[0].tray_info_idx || if (vtTray["tray_info_idx"].as<String>() != ams_data[i].trays[0].tray_info_idx ||
vtTray["tray_type"].as<String>() != ams_data[i].trays[0].tray_type || vtTray["tray_type"].as<String>() != ams_data[i].trays[0].tray_type ||
vtTray["tray_color"].as<String>() != ams_data[i].trays[0].tray_color || vtTray["tray_color"].as<String>() != ams_data[i].trays[0].tray_color ||
vtTray["cali_idx"].as<String>() != ams_data[i].trays[0].cali_idx) { (vtTray["tray_type"].as<String>() != "" && vtTray["cali_idx"].as<String>() != ams_data[i].trays[0].cali_idx)) {
hasChanges = true; hasChanges = true;
} }
break; break;
} }
} }
if (!foundExternal) hasChanges = true; //if (!foundExternal) hasChanges = true;
} }
if (!hasChanges) return; 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<String>(); ams_data[extIdx].trays[0].setting_id = vtTray["setting_id"].as<String>();
ams_data[extIdx].trays[0].cali_idx = vtTray["cali_idx"].as<String>(); ams_data[extIdx].trays[0].cali_idx = vtTray["cali_idx"].as<String>();
} }
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 ams_count++; // Erhöhe ams_count für die externe Spule
} }
// Sende die aktualisierten AMS-Daten
//sendAmsData(nullptr);
// Erstelle JSON für WebSocket-Clients // Erstelle JSON für WebSocket-Clients
JsonDocument wsDoc; JsonDocument wsDoc;
JsonArray wsArray = wsDoc.to<JsonArray>(); JsonArray wsArray = wsDoc.to<JsonArray>();
@ -480,10 +482,12 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
} }
serializeJson(wsArray, amsJsonData); serializeJson(wsArray, amsJsonData);
Serial.println("AMS data updated");
sendAmsData(nullptr); sendAmsData(nullptr);
} }
// Neue Bedingung für ams_filament_setting // 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>(); int amsId = doc["print"]["ams_id"].as<int>();
int trayId = doc["print"]["tray_id"].as<int>(); int trayId = doc["print"]["tray_id"].as<int>();
String settingId = doc["print"]["setting_id"].as<String>(); String settingId = doc["print"]["setting_id"].as<String>();
@ -524,6 +528,7 @@ void mqtt_callback(char* topic, byte* payload, unsigned int length) {
serializeJson(wsArray, amsJsonData); serializeJson(wsArray, amsJsonData);
// Sende an WebSocket Clients // Sende an WebSocket Clients
Serial.println("Filament setting updated");
sendAmsData(nullptr); sendAmsData(nullptr);
break; break;
} }

View File

@ -109,7 +109,7 @@ void loop() {
if (currentMillis - lastAmsSendTime >= amsSendInterval) if (currentMillis - lastAmsSendTime >= amsSendInterval)
{ {
lastAmsSendTime = currentMillis; lastAmsSendTime = currentMillis;
sendAmsData(nullptr); //sendAmsData(nullptr);
} }
// Wenn Bambu auto set Spool aktiv // Wenn Bambu auto set Spool aktiv