Guten Tag, ich verwende eine Library (LiquidCrystal vom Arduino, diese Stellt LCD-Funktionen bereit). Diese möchte ich um zwei Funktionen erweitern. Ich frage mich gerade, ob ich das sinnvollerweise in den .h und .cpp der Library mache (die dann aber ggf. bei einem Update überschrieben werden, da ich bisher nicht mit einem Repository arbeite), eigene .h und .cpp in dem Verzeichnis anlege (myLiquidCristal oder so ähnlich), oder ob ich das ganze in meine eigene Bibliothek packe, in der ein paar Funktionen des Projektes liegen. Ich tendiere zu A da ich denke, dass alles, was mit einem Display zu tun hat zusammen liegen sollte. Was ist hier der etablierte Weg? Danke & Gruß, Georg
Sollen die Arduino Libraries nicht in C++ sein? Dann kannst du doch von der existierenden Lib ableiten, das ist dann der sauberste Weg.
Ordner in den Libraries kopieren und "self" oder so anhängen und die Dateien und includes genauso umbenennen. Steht dann genauso im Beispiele Menü.
Wenn die Libraries frei Verfügbar sind, dann würde man das (im professionellen Umfeld) vermutlich so machen: Man "forked" das Repository, sprich man legt eine "verknüpfte Kopie" an. Das hat den Vorteil, dass du Teile ändern kannst, aber Updates ganz einfach "mergen" kannst. Wenn du manuell etwas in einer Methode verändert hast, klappt das nicht mehr, da wird es überschrieben. Wenn es nur um Ergänzungen geht, dann würde ich, wie Thomas vorgeschlagen hat, einfach die entsprechenden Klassen erweitern bzw. falls noch nicht mal das von Nöten ist (z.B. weil du ASCII-Art implementierst, also unabhängig von der Lib bist), dann würde ich wohl mit einem Ordner LiquidCrystal_EXT (Extended) arbeiten und dem Namespace benutzen Also: Es kommt ganz darauf an. Je tiefer deine Änderungen in die Lib selbst gehen, desto näher solltest du dem originalen Code sein. Außerdem kann dir jemand beim Forken Feedback geben, deinen Code benutzen, mitarbeiten, etc. Und wenn du mal Git kannst, ist das beruflich auch von Vorteil.
Student schrieb: > Wenn du manuell etwas in einer Methode > verändert hast, klappt das nicht mehr, da wird es überschrieben. Nachtrag: Das meint: Wenn du lediglich den Code veränderst, ohne Repository, dann wird ein Update natürlich alles überschreiben.
Bierschinken schrieb: > ich verwende eine Library (LiquidCrystal vom Arduino, diese Stellt > LCD-Funktionen bereit). Diese möchte ich um zwei Funktionen erweitern. Und warum willst du dann in der Library etwas andern ? Schreibe deine Zusatzfunktionen, include die original Library und rufe alles über deine Library.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.