Forum: Mikrocontroller und Digitale Elektronik Vorhandene Library für eigene Zwecke erweitern: Wo??


von Bierschinken (Gast)


Lesenswert?

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

von Thomas Z. (thomas_z41)


Lesenswert?

Sollen die Arduino Libraries nicht in C++ sein? Dann kannst du doch von 
der existierenden Lib ableiten, das ist dann der sauberste Weg.

von Toto mit Harry (Gast)


Lesenswert?

Ordner in den Libraries kopieren und "self" oder so anhängen und die 
Dateien  und includes genauso umbenennen.

Steht dann genauso im Beispiele Menü.

von Student (Gast)


Lesenswert?

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.

von Student (Gast)


Lesenswert?

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.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

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
Noch kein Account? Hier anmelden.