Libraries, Dokumentation schwer zu finden

Ich habe eine grundsätzliche Frage zur Verwendung von Libraries. Wenn ich eine einbinde, muss ich doch wissen, welche Funktionen mir jetzt zur Verfügung stehen, was sie machen, und welche Parameter sie ein- und ausgeben, und in welchem Format, usw. Ich finde dazu nirgends eine Dokumentation. Zum Beispiel suche ich das für DallasTemperature.h.

Sehr selten kann man so etwas dann in der Beschreibung auch finden, wo alle Funktionen aufgelistet sind mit der entsprechenden Beschreibung, so etwa wie in der Arduino Language Reference. Aber wie gesagt, sehr selten.
Was man manchmal finden kann, sind die sogenannten Keywords. Ihre Funktion kann man so in etwa aus ihrem Namen erschließen, aber alle ohne weitere Erkläung und Parameter. Es muss doch irgendwo eine vollständige Liste aller Funktionen geben, denn andere wissen ja auch, wie man sie verwendet. Woher haben sie denn diese Information.
Und wo kann ich suchen.

Ich kann mir auch Youtube-Erklärvideos anschauen; da wird dann ein ganz spezieller Fall beschrieben wo 2 oder 3 von den Funktionen vorkommen. Auch gibt es Code-Beispiele in der Beschreibung der Libraries. Aber ich möcht doch nicht nach Kochrezept nachkochen, sondern selber programmieren.

Welche Funktionen/Methoden die Lib bereit stellt, siehst Du in der LibName.h, also z.B. in der DallasTemperature.h oder auf Deinem Rechner. Bei den Libs sind in der Regel auch Beispiele dabei, auf denen Du aufbauen kannst.
Wenn Du Glück hast sind in der LibName.h oder der LibName.cpp diese kurz erklärt. Wenn nicht, wie bei der DallasTemperature, dann ist das halt Pech.
Manchmal gibt es auch in der ReadMe.md Erklärungen oder manche Libs (wie z.B. FastLED) haben auch ein Wiki.

Ansonsten gilt das alte Motto: Use the source, Luke.

Gruß Tommy

Edit: Die DallasTemperature hat auch ein Wiki, wie in der ReadMe.md zu sehen ist.

In der Header Datei sieht man die Funktionen/Methoden.

In den *.cpp sieht man dann was die Funktionen/Methoden machen. Oft mit Komentaren versehen.

Danke für den Hinweis mit den .cpp-Dateien. Die kannte ich bisher noch nicht. Ich hatte in den .h-Dateien reingeschaut, aber da passiert ja eigentlich nichts. Es ist natürlich schwer für mich, in den .cpp-Dateien etwas zu verstehen. Aber es lohnt sich, da ein bisschen zu stöbern.

Auf dieser Wiki war ich auch, aber zu meiner Überraschung, Enttäuschung werden die Funktionen dort nicht beschrieben.

  • Das steht eigentlich zusammgenfasst in den header Dateien (.h).
  • Oft gibt es auch zusätzliche Kommentare.
  • Eventuell gibt es ein docs Verzeichnis mit einer Beschreibung.
  • Manchmal gibt es auch erklärende Worte auf dem Github repository wo die Library gespeichert ist.

Die Beispiele findest Du unter FILES - BEISPIELE - NameBibliothek

Grüße Uwe

Generell hast du völlig recht.
Du kannst dich natürlich weigern, etwas so schlecht dokumentiertes zu kaufen.
Problem ist nur, im Arduino-Fall ist das was du bemängelst, oft noch das beste was es gibt, und es gibt unheimlich viel.

Das übliche Vorgehen:

  • Beispiele ausprobieren
  • evtl. soweit abändern, dass die gesuchte Aufgabe schon gelöst ist.
  • In der.h Datei nachsehen, was es noch gibt und dazu Testbeispiele schreiben
  • wenn die sich anders verhalten als gedacht, in den .cpp nachforschen, was stattdessen passiert
  • im Datenblatt nachsehen, was die lib eigentlich sonst noch können sollte.
  • eine andere Bibliothek ausprobieren.

Diese Liste ist übrigens unsortiert, die Punkte können in beliebieger Reihenfolge und immer wieder ausgeführt werden.

Wenn die (fehlende) Doku existieren würde, würdest du mehr Fehler in der Doku als im Programmcode finden

Nochmal Dank an alle!
Eine Patent-Antwort, die es ja auch nicht gibt, war nicht dabei; hatte ich auch nicht erwartet. Aber ich kann mir jetzt schon ein kleines bischen mehr eine Vorstellung davon machen, wie die ganze Sache hier so läuft. Nächstes mal kommt dann wieder eine Kleinigkeit hinzu.

Kleiner Hinweis :

In der IDE 2.x gibt es endlich ein Punkt-Menü. Nach der Eingabe des Punkt zeigt er dann die möglichen Methoden / Eigenschaften an. Sehr oft sind die logisch benannt. Und die IDE zeigt auch den TYP der Parameter an, wenn welche erforderlich sind.

Ist der wichtigste Grund warum ich auf die 2.x gewechselt bin.

Gruß

Pucki

Das kannst du ändern.
Ein gutes dickes C++ Grundlagenbuch dürfte dabei hilfreich sein.
z.B. http://www.cppbuch.de/

Wo genau finde ich denn dieses "Punkt-Menü", und wie aktiviere und bediene ich es? Das wäre ja schon mal eine große Hilfe, wenn man sowas hätte. Ich habe IDE-2.3.4

das heißt nicht Punktmenü sondern wird bei MS z.B. IntelliSense genannt:

im Kontextmenü auf ein Keyword hast du mit "Go to Definition" STRG-F12 den Sprung in die jeweilige .h Datei.

Funktioniert beides aber auch nicht immer.

Also wenn ich es richtig verstanden habe, geht es darum, die .h-Datei oder die .cpp-Datei in einem Editor oder auch in der IDE anzuzeigen. Und dazu gibt es dann Shortcuts.

grob gesagt ja ...

Sorry für den Begriff "Punkt-Menü". Aber ich denke auch das die offizielle Bezeichnung man sich noch weniger merken kann.

Serial.begin(9600);

Wenn ich Serial eintippe und dann ein PUNKT mache, erscheint automatisch eine Liste mit möglichen Methoden / Eigenschaften.

Wähle ich nun BEGIN aus, erscheint ein kleines Fenster was mir anzeigt, in welchen Format er den Parameter (hier 9600) haben will.

In wenigen Fällen erscheint sogar eine Erklärung, was das ganze soll.

Wie bereits erwähnt, ist diese Funktion erst in der IDE 2.x zugängig.

In VB kenne ich das schon es > 25 Jahren oder so. Allerdings den Namen dieser Fähigkeit erst seit ca. 2 Jahren und habe ihn auch gleich wieder vergessen damals. Sorry :frowning:

Ich kann mich nicht daran erinnern, das ich kein Menü nach einen Punkt bekommen habe. OB es allerdings dazu nähere Erklärungen gibt, ist Glückssache.
Ich habe mir aber zur Angewohnheit gemacht, alle Infos die ich bekomme zusammen zu mischen und komme dann fast immer auf den richtigen Wert.

Was die Parameter angeht. Das ist h nix anderes wie das wissen was die IDE eh bei der Syntax-Prüfung benutzt. Also keine große Wissenschaft. Ich war sogar sehr entäuscht das diese Fähigkeit NICHT in der IDE 1.x war.

Gruß

Pucki

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.