Merge pull request #31 from janecker/nfc_rework
Introducing enum for handling the NFC state to improve code readability
This commit is contained in:
		@@ -3,7 +3,8 @@
 | 
				
			|||||||
#include <ArduinoJson.h>
 | 
					#include <ArduinoJson.h>
 | 
				
			||||||
#include "commonFS.h"
 | 
					#include "commonFS.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool spoolman_connected = false;
 | 
					volatile spoolmanApiStateType spoolmanApiState = API_INIT;
 | 
				
			||||||
 | 
					//bool spoolman_connected = false;
 | 
				
			||||||
String spoolmanUrl = "";
 | 
					String spoolmanUrl = "";
 | 
				
			||||||
bool octoEnabled = false;
 | 
					bool octoEnabled = false;
 | 
				
			||||||
String octoUrl = "";
 | 
					String octoUrl = "";
 | 
				
			||||||
@@ -85,6 +86,7 @@ JsonDocument fetchSingleSpoolInfo(int spoolId) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void sendToApi(void *parameter) {
 | 
					void sendToApi(void *parameter) {
 | 
				
			||||||
 | 
					    spoolmanApiState = API_TRANSMITTING;
 | 
				
			||||||
    SendToApiParams* params = (SendToApiParams*)parameter;
 | 
					    SendToApiParams* params = (SendToApiParams*)parameter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Extrahiere die Werte
 | 
					    // Extrahiere die Werte
 | 
				
			||||||
@@ -119,6 +121,7 @@ void sendToApi(void *parameter) {
 | 
				
			|||||||
    // Speicher freigeben
 | 
					    // Speicher freigeben
 | 
				
			||||||
    delete params;
 | 
					    delete params;
 | 
				
			||||||
    vTaskDelete(NULL);
 | 
					    vTaskDelete(NULL);
 | 
				
			||||||
 | 
					    spoolmanApiState = API_IDLE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool updateSpoolTagId(String uidString, const char* payload) {
 | 
					bool updateSpoolTagId(String uidString, const char* payload) {
 | 
				
			||||||
@@ -479,7 +482,8 @@ bool checkSpoolmanInstance(const String& url) {
 | 
				
			|||||||
                    return false;
 | 
					                    return false;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                spoolman_connected = true;
 | 
					                spoolmanApiState = API_IDLE;
 | 
				
			||||||
 | 
					                oledShowTopRow();
 | 
				
			||||||
                return strcmp(status, "healthy") == 0;
 | 
					                return strcmp(status, "healthy") == 0;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,13 @@
 | 
				
			|||||||
#include "website.h"
 | 
					#include "website.h"
 | 
				
			||||||
#include "display.h"
 | 
					#include "display.h"
 | 
				
			||||||
#include <ArduinoJson.h>
 | 
					#include <ArduinoJson.h>
 | 
				
			||||||
 | 
					typedef enum {
 | 
				
			||||||
 | 
					    API_INIT,
 | 
				
			||||||
 | 
					    API_IDLE,
 | 
				
			||||||
 | 
					    API_TRANSMITTING
 | 
				
			||||||
 | 
					} spoolmanApiStateType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern volatile spoolmanApiStateType spoolmanApiState;
 | 
				
			||||||
extern bool spoolman_connected;
 | 
					extern bool spoolman_connected;
 | 
				
			||||||
extern String spoolmanUrl;
 | 
					extern String spoolmanUrl;
 | 
				
			||||||
extern bool octoEnabled;
 | 
					extern bool octoEnabled;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -177,7 +177,7 @@ void oledShowTopRow() {
 | 
				
			|||||||
        display.drawBitmap(50, 0, bitmap_off , 16, 16, WHITE);
 | 
					        display.drawBitmap(50, 0, bitmap_off , 16, 16, WHITE);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (spoolman_connected == 1) {
 | 
					    if (spoolmanApiState != API_INIT) {
 | 
				
			||||||
        display.drawBitmap(80, 0, bitmap_spoolman_on , 16, 16, WHITE);
 | 
					        display.drawBitmap(80, 0, bitmap_spoolman_on , 16, 16, WHITE);
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        display.drawBitmap(80, 0, bitmap_off , 16, 16, WHITE);
 | 
					        display.drawBitmap(80, 0, bitmap_off , 16, 16, WHITE);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/main.cpp
									
									
									
									
									
								
							@@ -107,7 +107,7 @@ void loop() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (intervalElapsed(currentMillis, lastAutoSetBambuAmsTime, autoSetBambuAmsInterval)) 
 | 
					    if (intervalElapsed(currentMillis, lastAutoSetBambuAmsTime, autoSetBambuAmsInterval)) 
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (hasReadRfidTag == 0)
 | 
					      if (nfcReaderState == NFC_IDLE)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        lastAutoSetBambuAmsTime = currentMillis;
 | 
					        lastAutoSetBambuAmsTime = currentMillis;
 | 
				
			||||||
        oledShowMessage("Auto Set         " + String(autoSetBambuAmsCounter - autoAmsCounter) + "s");
 | 
					        oledShowMessage("Auto Set         " + String(autoSetBambuAmsCounter - autoAmsCounter) + "s");
 | 
				
			||||||
@@ -141,7 +141,7 @@ void loop() {
 | 
				
			|||||||
  // Ausgabe der Waage auf Display
 | 
					  // Ausgabe der Waage auf Display
 | 
				
			||||||
  if(pauseMainTask == 0)
 | 
					  if(pauseMainTask == 0)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    if (mainTaskWasPaused || (weight != lastWeight && hasReadRfidTag == 0 && (!autoSendToBambu || autoSetToBambuSpoolId == 0)))
 | 
					    if (mainTaskWasPaused || (weight != lastWeight && nfcReaderState == NFC_IDLE && (!autoSendToBambu || autoSetToBambuSpoolId == 0)))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      (weight < 2) ? ((weight < -2) ? oledShowMessage("!! -0") : oledShowWeight(0)) : oledShowWeight(weight);
 | 
					      (weight < 2) ? ((weight < -2) ? oledShowMessage("!! -0") : oledShowWeight(0)) : oledShowWeight(weight);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -154,7 +154,7 @@ void loop() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Wenn Timer abgelaufen und nicht gerade ein RFID-Tag geschrieben wird
 | 
					  // Wenn Timer abgelaufen und nicht gerade ein RFID-Tag geschrieben wird
 | 
				
			||||||
  if (currentMillis - lastWeightReadTime >= weightReadInterval && hasReadRfidTag < 3)
 | 
					  if (currentMillis - lastWeightReadTime >= weightReadInterval && nfcReaderState < NFC_WRITING)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    lastWeightReadTime = currentMillis;
 | 
					    lastWeightReadTime = currentMillis;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -190,7 +190,8 @@ void loop() {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // reset weight counter after writing tag
 | 
					  // reset weight counter after writing tag
 | 
				
			||||||
  if (currentMillis - lastWeightReadTime >= weightReadInterval && hasReadRfidTag > 1)
 | 
					  // TBD: what exactly is the logic behind this?
 | 
				
			||||||
 | 
					  if (currentMillis - lastWeightReadTime >= weightReadInterval && nfcReaderState != NFC_IDLE && nfcReaderState != NFC_READ_SUCCESS)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    weigthCouterToApi = 0;
 | 
					    weigthCouterToApi = 0;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@@ -198,7 +199,7 @@ void loop() {
 | 
				
			|||||||
  lastWeight = weight;
 | 
					  lastWeight = weight;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Wenn ein Tag mit SM id erkannte wurde und der Waage Counter anspricht an SM Senden
 | 
					  // Wenn ein Tag mit SM id erkannte wurde und der Waage Counter anspricht an SM Senden
 | 
				
			||||||
  if (spoolId != "" && weigthCouterToApi > 3 && weightSend == 0 && hasReadRfidTag == 1) {
 | 
					  if (spoolId != "" && weigthCouterToApi > 3 && weightSend == 0 && nfcReaderState == NFC_READ_SUCCESS) {
 | 
				
			||||||
    oledShowIcon("loading");
 | 
					    oledShowIcon("loading");
 | 
				
			||||||
    if (updateSpoolWeight(spoolId, weight)) 
 | 
					    if (updateSpoolWeight(spoolId, weight)) 
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								src/nfc.cpp
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								src/nfc.cpp
									
									
									
									
									
								
							@@ -18,7 +18,7 @@ String spoolId = "";
 | 
				
			|||||||
String nfcJsonData = "";
 | 
					String nfcJsonData = "";
 | 
				
			||||||
volatile bool pauseBambuMqttTask = false;
 | 
					volatile bool pauseBambuMqttTask = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
volatile uint8_t hasReadRfidTag = 0;
 | 
					volatile nfcReaderStateType nfcReaderState = NFC_IDLE;
 | 
				
			||||||
// 0 = nicht gelesen
 | 
					// 0 = nicht gelesen
 | 
				
			||||||
// 1 = erfolgreich gelesen
 | 
					// 1 = erfolgreich gelesen
 | 
				
			||||||
// 2 = fehler beim Lesen
 | 
					// 2 = fehler beim Lesen
 | 
				
			||||||
@@ -242,7 +242,7 @@ void writeJsonToTag(void *parameter) {
 | 
				
			|||||||
  Serial.println("Erstelle NDEF-Message...");
 | 
					  Serial.println("Erstelle NDEF-Message...");
 | 
				
			||||||
  Serial.println(payload);
 | 
					  Serial.println(payload);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  hasReadRfidTag = 3;
 | 
					  nfcReaderState = NFC_WRITING;
 | 
				
			||||||
  vTaskSuspend(RfidReaderTask);
 | 
					  vTaskSuspend(RfidReaderTask);
 | 
				
			||||||
  vTaskDelay(50 / portTICK_PERIOD_MS);
 | 
					  vTaskDelay(50 / portTICK_PERIOD_MS);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -288,7 +288,7 @@ void writeJsonToTag(void *parameter) {
 | 
				
			|||||||
        //oledShowMessage("NFC-Tag written");
 | 
					        //oledShowMessage("NFC-Tag written");
 | 
				
			||||||
        oledShowIcon("success");
 | 
					        oledShowIcon("success");
 | 
				
			||||||
        vTaskDelay(1000 / portTICK_PERIOD_MS);
 | 
					        vTaskDelay(1000 / portTICK_PERIOD_MS);
 | 
				
			||||||
        hasReadRfidTag = 5;
 | 
					        nfcReaderState = NFC_WRITE_SUCCESS;
 | 
				
			||||||
        // aktualisieren der Website wenn sich der Status ändert
 | 
					        // aktualisieren der Website wenn sich der Status ändert
 | 
				
			||||||
        sendNfcData(nullptr);
 | 
					        sendNfcData(nullptr);
 | 
				
			||||||
        pauseBambuMqttTask = false;
 | 
					        pauseBambuMqttTask = false;
 | 
				
			||||||
@@ -310,7 +310,7 @@ void writeJsonToTag(void *parameter) {
 | 
				
			|||||||
        Serial.println("Fehler beim Schreiben der NDEF-Message auf den Tag");
 | 
					        Serial.println("Fehler beim Schreiben der NDEF-Message auf den Tag");
 | 
				
			||||||
        oledShowIcon("failed");
 | 
					        oledShowIcon("failed");
 | 
				
			||||||
        vTaskDelay(2000 / portTICK_PERIOD_MS);
 | 
					        vTaskDelay(2000 / portTICK_PERIOD_MS);
 | 
				
			||||||
        hasReadRfidTag = 4;
 | 
					        nfcReaderState = NFC_WRITE_ERROR;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
@@ -318,7 +318,7 @@ void writeJsonToTag(void *parameter) {
 | 
				
			|||||||
    Serial.println("Fehler: Kein Tag zu schreiben gefunden.");
 | 
					    Serial.println("Fehler: Kein Tag zu schreiben gefunden.");
 | 
				
			||||||
    oledShowMessage("No NFC-Tag found");
 | 
					    oledShowMessage("No NFC-Tag found");
 | 
				
			||||||
    vTaskDelay(2000 / portTICK_PERIOD_MS);
 | 
					    vTaskDelay(2000 / portTICK_PERIOD_MS);
 | 
				
			||||||
    hasReadRfidTag = 0;
 | 
					    nfcReaderState = NFC_IDLE;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  sendWriteResult(nullptr, success);
 | 
					  sendWriteResult(nullptr, success);
 | 
				
			||||||
@@ -334,7 +334,7 @@ void startWriteJsonToTag(const char* payload) {
 | 
				
			|||||||
  char* payloadCopy = strdup(payload);
 | 
					  char* payloadCopy = strdup(payload);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  // Task nicht mehrfach starten
 | 
					  // Task nicht mehrfach starten
 | 
				
			||||||
  if (hasReadRfidTag != 3) {
 | 
					  if (nfcReaderState != NFC_WRITING) {
 | 
				
			||||||
    // Erstelle die Task
 | 
					    // Erstelle die Task
 | 
				
			||||||
    xTaskCreate(
 | 
					    xTaskCreate(
 | 
				
			||||||
        writeJsonToTag,        // Task-Funktion
 | 
					        writeJsonToTag,        // Task-Funktion
 | 
				
			||||||
@@ -351,7 +351,7 @@ void scanRfidTask(void * parameter) {
 | 
				
			|||||||
  Serial.println("RFID Task gestartet");
 | 
					  Serial.println("RFID Task gestartet");
 | 
				
			||||||
  for(;;) {
 | 
					  for(;;) {
 | 
				
			||||||
    // Wenn geschrieben wird Schleife aussetzen
 | 
					    // Wenn geschrieben wird Schleife aussetzen
 | 
				
			||||||
    if (hasReadRfidTag != 3)
 | 
					    if (nfcReaderState != NFC_WRITING)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      yield();
 | 
					      yield();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -363,12 +363,12 @@ void scanRfidTask(void * parameter) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      foundNfcTag(nullptr, success);
 | 
					      foundNfcTag(nullptr, success);
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      if (success && hasReadRfidTag != 1)
 | 
					      if (success && nfcReaderState != NFC_READ_SUCCESS)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        // Display some basic information about the card
 | 
					        // Display some basic information about the card
 | 
				
			||||||
        Serial.println("Found an ISO14443A card");
 | 
					        Serial.println("Found an ISO14443A card");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hasReadRfidTag = 6;
 | 
					        nfcReaderState = NFC_READING;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        oledShowIcon("transfer");
 | 
					        oledShowIcon("transfer");
 | 
				
			||||||
        vTaskDelay(500 / portTICK_PERIOD_MS);
 | 
					        vTaskDelay(500 / portTICK_PERIOD_MS);
 | 
				
			||||||
@@ -406,11 +406,11 @@ void scanRfidTask(void * parameter) {
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
              oledShowMessage("NFC-Tag unknown");
 | 
					              oledShowMessage("NFC-Tag unknown");
 | 
				
			||||||
              vTaskDelay(2000 / portTICK_PERIOD_MS);
 | 
					              vTaskDelay(2000 / portTICK_PERIOD_MS);
 | 
				
			||||||
              hasReadRfidTag = 2;
 | 
					              nfcReaderState = NFC_READ_ERROR;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else 
 | 
					            else 
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
              hasReadRfidTag = 1;
 | 
					              nfcReaderState = NFC_READ_SUCCESS;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            free(data);
 | 
					            free(data);
 | 
				
			||||||
@@ -418,7 +418,7 @@ void scanRfidTask(void * parameter) {
 | 
				
			|||||||
          else
 | 
					          else
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            oledShowMessage("NFC-Tag read error");
 | 
					            oledShowMessage("NFC-Tag read error");
 | 
				
			||||||
            hasReadRfidTag = 2;
 | 
					            nfcReaderState = NFC_READ_ERROR;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@@ -427,9 +427,9 @@ void scanRfidTask(void * parameter) {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (!success && hasReadRfidTag > 0)
 | 
					      if (!success && nfcReaderState != NFC_IDLE)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        hasReadRfidTag = 0;
 | 
					        nfcReaderState = NFC_IDLE;
 | 
				
			||||||
        //uidString = "";
 | 
					        //uidString = "";
 | 
				
			||||||
        nfcJsonData = "";
 | 
					        nfcJsonData = "";
 | 
				
			||||||
        Serial.println("Tag entfernt");
 | 
					        Serial.println("Tag entfernt");
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								src/nfc.h
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								src/nfc.h
									
									
									
									
									
								
							@@ -3,6 +3,16 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <Arduino.h>
 | 
					#include <Arduino.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum{
 | 
				
			||||||
 | 
					    NFC_IDLE,
 | 
				
			||||||
 | 
					    NFC_READING,
 | 
				
			||||||
 | 
					    NFC_READ_SUCCESS,
 | 
				
			||||||
 | 
					    NFC_READ_ERROR,
 | 
				
			||||||
 | 
					    NFC_WRITING,
 | 
				
			||||||
 | 
					    NFC_WRITE_SUCCESS,
 | 
				
			||||||
 | 
					    NFC_WRITE_ERROR
 | 
				
			||||||
 | 
					} nfcReaderStateType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void startNfc();
 | 
					void startNfc();
 | 
				
			||||||
void scanRfidTask(void * parameter);
 | 
					void scanRfidTask(void * parameter);
 | 
				
			||||||
void startWriteJsonToTag(const char* payload);
 | 
					void startWriteJsonToTag(const char* payload);
 | 
				
			||||||
@@ -10,7 +20,9 @@ void startWriteJsonToTag(const char* payload);
 | 
				
			|||||||
extern TaskHandle_t RfidReaderTask;
 | 
					extern TaskHandle_t RfidReaderTask;
 | 
				
			||||||
extern String nfcJsonData;
 | 
					extern String nfcJsonData;
 | 
				
			||||||
extern String spoolId;
 | 
					extern String spoolId;
 | 
				
			||||||
extern volatile uint8_t hasReadRfidTag;
 | 
					extern volatile nfcReaderStateType nfcReaderState;
 | 
				
			||||||
extern volatile bool pauseBambuMqttTask;
 | 
					extern volatile bool pauseBambuMqttTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
@@ -22,7 +22,7 @@ AsyncWebServer server(webserverPort);
 | 
				
			|||||||
AsyncWebSocket ws("/ws");
 | 
					AsyncWebSocket ws("/ws");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uint8_t lastSuccess = 0;
 | 
					uint8_t lastSuccess = 0;
 | 
				
			||||||
uint8_t lastHasReadRfidTag = 0;
 | 
					nfcReaderStateType lastnfcReaderState = NFC_IDLE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) {
 | 
					void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) {
 | 
				
			||||||
@@ -44,13 +44,15 @@ void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventTyp
 | 
				
			|||||||
        JsonDocument doc;
 | 
					        JsonDocument doc;
 | 
				
			||||||
        deserializeJson(doc, message);
 | 
					        deserializeJson(doc, message);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        bool spoolmanConnected = (spoolmanApiState != API_INIT);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (doc["type"] == "heartbeat") {
 | 
					        if (doc["type"] == "heartbeat") {
 | 
				
			||||||
            // Sende Heartbeat-Antwort
 | 
					            // Sende Heartbeat-Antwort
 | 
				
			||||||
            ws.text(client->id(), "{"
 | 
					            ws.text(client->id(), "{"
 | 
				
			||||||
                "\"type\":\"heartbeat\","
 | 
					                "\"type\":\"heartbeat\","
 | 
				
			||||||
                "\"freeHeap\":" + String(ESP.getFreeHeap()/1024) + ","
 | 
					                "\"freeHeap\":" + String(ESP.getFreeHeap()/1024) + ","
 | 
				
			||||||
                "\"bambu_connected\":" + String(bambu_connected) + ","
 | 
					                "\"bambu_connected\":" + String(bambu_connected) + ","
 | 
				
			||||||
                "\"spoolman_connected\":" + String(spoolman_connected) + ""
 | 
					                "\"spoolman_connected\":" + String(spoolmanConnected) + ""
 | 
				
			||||||
                "}");
 | 
					                "}");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -139,34 +141,31 @@ void foundNfcTag(AsyncWebSocketClient *client, uint8_t success) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void sendNfcData(AsyncWebSocketClient *client) {
 | 
					void sendNfcData(AsyncWebSocketClient *client) {
 | 
				
			||||||
    if (lastHasReadRfidTag == hasReadRfidTag) return;
 | 
					    if (lastnfcReaderState == nfcReaderState) return;
 | 
				
			||||||
    if (hasReadRfidTag == 0) {
 | 
					    // TBD: Why is there no status for reading the tag?
 | 
				
			||||||
        ws.textAll("{\"type\":\"nfcData\", \"payload\":{}}");
 | 
					    switch(nfcReaderState){
 | 
				
			||||||
 | 
					        case NFC_IDLE:
 | 
				
			||||||
 | 
					            ws.textAll("{\"type\":\"nfcData\", \"payload\":{}}");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case NFC_READ_SUCCESS:
 | 
				
			||||||
 | 
					            ws.textAll("{\"type\":\"nfcData\", \"payload\":" + nfcJsonData + "}");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case NFC_READ_ERROR:
 | 
				
			||||||
 | 
					            ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"error\":\"Empty Tag or Data not readable\"}}");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case NFC_WRITING:
 | 
				
			||||||
 | 
					            ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"info\":\"Schreibe Tag...\"}}");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case NFC_WRITE_SUCCESS:
 | 
				
			||||||
 | 
					            ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"info\":\"Tag erfolgreich geschrieben\"}}");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case NFC_WRITE_ERROR:
 | 
				
			||||||
 | 
					            ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"error\":\"Error writing to Tag\"}}");
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        case DEFAULT:
 | 
				
			||||||
 | 
					            ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"error\":\"Something went wrong\"}}");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else if (hasReadRfidTag == 1) {
 | 
					    lastnfcReaderState = nfcReaderState;
 | 
				
			||||||
        ws.textAll("{\"type\":\"nfcData\", \"payload\":" + nfcJsonData + "}");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else if (hasReadRfidTag == 2)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"error\":\"Empty Tag or Data not readable\"}}");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else if (hasReadRfidTag == 3)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"info\":\"Schreibe Tag...\"}}");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else if (hasReadRfidTag == 4)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"error\":\"Error writing to Tag\"}}");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else if (hasReadRfidTag == 5)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"info\":\"Tag erfolgreich geschrieben\"}}");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    else 
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        ws.textAll("{\"type\":\"nfcData\", \"payload\":{\"error\":\"Something went wrong\"}}");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    lastHasReadRfidTag = hasReadRfidTag;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void sendAmsData(AsyncWebSocketClient *client) {
 | 
					void sendAmsData(AsyncWebSocketClient *client) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user