diff --git a/AfRApay.MateCard/include/utils.h b/AfRApay.MateCard/include/utils.h index d23f568..673c5ca 100644 --- a/AfRApay.MateCard/include/utils.h +++ b/AfRApay.MateCard/include/utils.h @@ -8,6 +8,7 @@ String cardLink(WiFiClient* wifi, HTTPClient* http, const String& apiUrl, const String cardBalance(WiFiClient* wifi, HTTPClient* http, const String& apiUrl, const String& cardId); String cardTransaction(WiFiClient* wifi, HTTPClient* http, const String& apiUrl, const String& cardId, const String& amount); String splitString(const String& data, char separator, int index); +String cardIdDisplay(const String& id); enum e_state { STATE_IDLE, diff --git a/AfRApay.MateCard/src/main.cpp b/AfRApay.MateCard/src/main.cpp index dad9590..e5a2658 100644 --- a/AfRApay.MateCard/src/main.cpp +++ b/AfRApay.MateCard/src/main.cpp @@ -176,7 +176,7 @@ void loop() { for (Reader* reader : readers) { if (reader->isNewCardPresent()) { scannedCardId = reader->getCardUid(); - lastStatusText = "Card #" + scannedCardId; + lastStatusText = cardIdDisplay(scannedCardId); scannedCardReader = reader; state = STATE_TRANSACT_VERIFY; return; @@ -215,7 +215,7 @@ void loop() { return; } else { - lastStatusText = "Card #" + scannedCardId; + lastStatusText = cardIdDisplay(scannedCardId); state = STATE_LINK_VERIFY; return; } @@ -228,7 +228,7 @@ void loop() { case STATE_LINK_CARD_RESCAN: if (scannedCardReader->isNewCardPresent()) { if (scannedCardId == scannedCardReader->getCardUid()) { - lastStatusText = "Card #" + scannedCardId; + lastStatusText = cardIdDisplay(scannedCardId); state = STATE_LINK_VERIFY; return; } @@ -265,7 +265,7 @@ void loop() { for (Reader* reader : readers) { if (reader->isNewCardPresent()) { scannedCardId = reader->getCardUid(); - lastStatusText = "Card #" + scannedCardId; + lastStatusText = cardIdDisplay(scannedCardId); state = STATE_BALANCE_VERIFY; return; } @@ -280,7 +280,7 @@ void loop() { tone(PIN_BUZZER, NOTE_NONE, 150); lastStatusText = cardBalance(wifi, http, apiUrl, scannedCardId); if (lastStatusText.startsWith("S:")) { - lastStatusText = lastStatusText + ":Card #" + scannedCardId; + lastStatusText = lastStatusText + ":" + cardIdDisplay(scannedCardId); state = STATE_RESULT_DISPLAY; } else { tone(PIN_BUZZER, NOTE_CS5, 100); @@ -292,7 +292,7 @@ void loop() { timer = millis(); case STATE_RESULT_SUCCESS: if (cooldownSecondsRemaining(gTimeout, timer) <= 4) { - lastStatusText = lastStatusText + ":Card #" + scannedCardId; + lastStatusText = lastStatusText + ":" + cardIdDisplay(scannedCardId); state = STATE_RESULT_DISPLAY; } case STATE_RESULT_FAILURE: diff --git a/AfRApay.MateCard/src/utils.cpp b/AfRApay.MateCard/src/utils.cpp index 409c582..dbb4969 100644 --- a/AfRApay.MateCard/src/utils.cpp +++ b/AfRApay.MateCard/src/utils.cpp @@ -157,3 +157,12 @@ String cardTransaction(WiFiClient* wifi, HTTPClient* http, const String& apiUrl, } return String("E:Internal Error ") + httpResponseCode; } + +String cardIdDisplay(const String& id){ + if (id.length() <= 14) + return "Card #" + id; + else if (id.length() <= 19) + return "#" + id; + else + return "#" + id.substring(0, 16) + "..."; +}