# Externe Bibliotheken

**URL:** <https://forum.espuino.de/t/externe-bibliotheken/348>\
**Category:** Software\
**Created:** [30. März 2021 um 17:53 UTC](https://forum.espuino.de/t/externe-bibliotheken/348 "2021-03-30T17:53:30Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [30. März 2021 um 17:53 UTC](https://forum.espuino.de/t/externe-bibliotheken/348/1 "2021-03-30T17:53:30Z")

</div>

Aktuell wird für die meisten externen Bibliotheken immer der aktuellste Stand verwendet.  
Dabei kann es aber auch passieren, dass ein Bug in die Bibliothek kommt und damit auch ESPuino nicht mehr funktioniert.  
Das bedeutet auch, dass der gleiche Softwarestand von ESPuino vor 3 Tagen und heute sich jeweils anders verhalten.  
Genau das ist mir heute mit der PN5180 Bibliothek passiert. Mit der neuesten Version funktioniert der RFID-Scanner nicht mehr. Ich würde daher vorschlagen die Versionen für die Bibliotheken einzufrieren und bewusst, falls notwendig, neue Versionen anzuziehen. Solche Probleme sind ansonsten ziemliche Zeiträuber.

Ein Beispiel:  
Aus [GitHub - tueddy/PN5180-Library: PN5180 library for Arduino](https://github.com/tueddy/PN5180-Library.git)  
wird [GitHub - tueddy/PN5180-Library: PN5180 library for Arduino](https://github.com/tueddy/PN5180-Library.git#21ad124)

---

<div class="post-metadata">

**Author:** ![tueddy](https://forum.espuino.de/user_avatar/forum.espuino.de/tueddy/32/22_2.png) [@tueddy](https://forum.espuino.de/u/tueddy)\
**Post date:** [30. März 2021 um 18:52 UTC](https://forum.espuino.de/t/externe-bibliotheken/348/2 "2021-03-30T18:52:24Z")

</div>

Hmm, ich habe einen neuen optionalen Parameter eingebaut, mit dem man jetzt ein anderes SPI angeben kann, z.B. HSPI. Dürfte abe eigentlich keine Nebenwirkungen haben. Evt. fehlt jetzt ein` rfid.begin();` um den SPI Bus zu starten? Wäre hier für Anregungen dankbar um das Problem aus der Welt zu schaffen…  
@tuniii funktioniert das Demo [PN5180-ReadUID](https://github.com/tueddy/PN5180-Library/tree/master/examples/PN5180-ReadUID) bei Dir?

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [30. März 2021 um 19:41 UTC](https://forum.espuino.de/t/externe-bibliotheken/348/3 "2021-03-30T19:41:28Z")

</div>

Ja, die Demo geht bei mir. Warum es zusammen mit ESPuino nicht funktioniert, kann ich leider aktuell auch nicht sagen. Aktuell komme ich leider auch nicht dazu, das genauer anzuschauen. In erster Linie ging es mir um die Reproduzierbarkeit der Software.

EDIT:  
Der Task hängt sich auf:

// 2. check for an ISO-15693 card  
nfc15693.reset();  
Serial.println(„2“);  
nfc15693.setupRF();  
Serial.println(„3“);

Die „2“ sehe ich noch, die „3“ kommt nicht mehr. Manchmal hängt es sich aber auch beim nfc15693.reset() auf.

---

<div class="post-metadata">

**Author:** ![tuniii](https://forum.espuino.de/user_avatar/forum.espuino.de/tuniii/32/232_2.png) [@tuniii](https://forum.espuino.de/u/tuniii)\
**Post date:** [30. März 2021 um 20:46 UTC](https://forum.espuino.de/t/externe-bibliotheken/348/4 "2021-03-30T20:46:39Z")

</div>

Bei der neuen Implementierung wird letztendlich das SPI-Objekt kopiert. Damit gibt es dann mehrere Instanzen. Das ist wohl die Ursache des Problems. Durch die Dereferenzierung im Parameter ist das nicht gleich ersichtlich, aber wenn man die Copy Konstruktoren von SPIClass auf private setzt, dann kompiliert das ganze auch nicht mehr.  
Mögliche Lösung: Pointer für SPIClass als Klassen-Member verwenden.

 ![image](https://forum.espuino.de/uploads/default/original/1X/c4405f353332efdd14db28f7ea137477c44cba92.jpeg)

---

<div class="post-metadata">

**Author:** ![biologist](https://forum.espuino.de/user_avatar/forum.espuino.de/biologist/32/66_2.png) [@biologist](https://forum.espuino.de/u/biologist)\
**Post date:** [30. März 2021 um 21:32 UTC](https://forum.espuino.de/t/externe-bibliotheken/348/5 "2021-03-30T21:32:08Z")

</div>

Ich habe die PN5180 jetzt mal auf dem Stand vorher eingefroren, damit @tueddy in Ruhe seine Tests machen kann.

---

<div class="post-metadata">

**Author:** ![tyllmoritz](https://forum.espuino.de/letter_avatar_proxy/v4/letter/t/7ab992/32.png) [@tyllmoritz](https://forum.espuino.de/u/tyllmoritz)\
**Post date:** [8. Mai 2021 um 23:11 UTC](https://forum.espuino.de/t/externe-bibliotheken/348/6 "2021-05-08T23:11:10Z")

</div>

Es gibt eine neue Implementierung!

Vielen Dank an mwick83.

> <https://github.com/mwick83/PN5180-Library/commit/b99b54df10bdd8cd895c8460ad440d491b62c5ec>
>
> This implementation looks quite similar to @tyllmoritz previous changes,
> but it …doesn't copy the SPI class. Instead, the class member is now a
> reference, which is initialized in the constructor.
> 
> Some other members have also been moved into the initializer of the
> constructor.
