Kann nicht kompilieren, Fehler in MFRC522

Hallo zusammen,

ich habe vor zwei ca. zwei Jahren schon einmal einen Tonuino gebaut. Nun muss für Kind 2 auch einer her. ^^
Leider schaffe ich es nicht mehr, den Code über die Arduino IDE zu kompilieren. Die drei Bibliotheken sind jeweils in der aktuellsten Version eingebunden, das Tonuino-Repo auch frisch geklont und auf dem DEV-Branch.

Fehlermeldung:

/home/mein-schoener-username/Arduino/libraries/MFRC522/src/MFRC522Extended.cpp: In member function 'MFRC522::StatusCode MFRC522Extended::TCL_Transceive(TagInfo*, byte*, byte, byte*, byte*)':
/home/mein-schoener-username/Arduino/libraries/MFRC522/src/MFRC522Extended.cpp:824:34: error: ordered comparison of pointer with integer zero ('byte*' {aka 'unsigned char*'} and 'int')
  824 |         if (backData && (backLen > 0)) {
      |                          ~~~~~~~~^~~
/home/mein-schoener-username/Arduino/libraries/MFRC522/src/MFRC522Extended.cpp:847:42: error: ordered comparison of pointer with integer zero ('byte*' {aka 'unsigned char*'} and 'int')
  847 |                 if (backData && (backLen > 0)) {
      |                                  ~~~~~~~~^~~

Es scheint um den Fehler auch ein kleines Hin und Her im MFRC522-Repo zu geben: MFRC522Extended.cpp:824: warning: ordered comparison of pointer with integer zero · Issue #371 · miguelbalboa/rfid · GitHub

Anscheinend bin ich aber der einzige, der die Firmware für den Tonuino durch diesen Fehler nicht kompilieren kann, ansonsten hätte ich im Forum sicherlich schon eine Lösung gefunden. :wink:

Ich habe die Bibliothek auch downgegradet bis zu 1.4.0. Ab da wirft sie einen anderen Fehler.

Was mache ich falsch? Hat jemand einen Rat? Könnte jemand von euch mal die Versionen aller verwendeten Bibliotheken hier posten, bitte? :slight_smile:

Vielen Dank! :slight_smile:

Also bei mir sind
DFPlayer Mini Mp3 by Makuna Version 1.0.7
JC_Button 2.1.2
MFRC522 1.4.9 (jetzt nach dem update 1.4.10)
installiert

Ist das online-update eine Alternative für dich?

1 „Gefällt mir“

Hi Gute Laune,

vielen Dank für die schnelle Antwort! Hmm… das sind genau die Bibliotheken, die ich auch verwende. Der Online Updater funktioniert, ist aber nicht wirklich eine Alternative für mich, da ich ein bisschen mit Bluetooth-Modulen herumspielen möchte und die Möglichkeiten der Easy-Headphones-Platine vermutlich nicht ausreichen werden.

Also bei dir kompiliert das fehlerfrei?

Also das ist ein Bug in der Bibliothek, es müsste folgendermaßen lauten:

Zeile 824 und 847:
if (backData && backLen) {

Das wäre aber nur ein warning. Du hast aber wahrscheinlich -Werror eingeschaltet, was alle warnings zu errors macht.

Du hast also 2 Möglichkeiten, „-Werror“ entfernen oder das File MFRC522Extended.cpp editieren.

2 „Gefällt mir“

Danke! Ich habe nun die CPP der Bibliothek angepasst. Klappt wunderbar! :slight_smile: