ich bin heute darüber gestolpert, dass man bei Arduino in der IDE mehrere Reiter einrichten kann... Wozu ist mir noch nicht klar...
Kann ich damit z.b. einen sehr langen Sketch aufteilen? Ich hab einen sehr langen Sketch- unterteilt in Blöcke. Es ist die Steuerung für meine Lampen- aktuell etwas über 2.500 Zeilen lang... ein Block kümmert sich um Uhrzeit, Datum, Kalender, Feiertage etc... ein weiterer um die Berechnung von "Lichtprogrammen"- also die passende Einstellung je nach Uhrzeit, Kalender etc... ein weiterer kümmert sich um das empfangen von Daten von den Lampen, ein weiterer um das Senden von Vorgaben zu den Lampen, dann kümmert sich noch ein Abschnitt um die Auswertung von Bewegungs"profilen" in der Wohnung, einer um die Darstellung von Informationen auf einem TFT... Touch soll noch mit rein...
Könnte ich nun diese Blöcke auch auf mehrere Reiter verteilen und so alles etwas übersichtlicher machen? Ich erhoffe mir damit auch Änderungen an Blöcken die ich für mehrere Projekte identisch oder ähnlich verwende leichter pflegen und überarbeiten zu können und einfach auf alle Anwendungen kopieren zu können...
genau, du kannst zum Bsp. Funktionen auf Tabs sortiert "auslagern".
Wozu? Das bringt mehr Übersicht rein.
Ich lagere auch gern fertige Funktionen in Tabs aus, damit ich nicht abgelenkt werde von den neuen die noch buggy sind. Allerdings hat das mit den Tabs auch einen großen Nachteil. Komplierungsfehler sind oftmals falsch und führen in die Irre. Der Syntaxfehler ist meistens nicht dort wo es die IDE anzeigt - wenn man Tabs verwendet. Man sollte sich dann angewöhnen zwischendurch zu kompilieren, dann weis man noch wo man sich vertippt haben könnte oder ein Semikolon fehlt usw.
Die Tabs werden in alphabetischer Reihenfolge eingebunden.
Auch kann es mit den automatisch generierten Prototypen Sorgen geben. Dann von Hand anlegen.
Besser dürfte es sein, keine *.ino Tabs anzulegen, sondern *.h und *.cpp.
Dann kann man da leicht eine Lib draus machen, und ist für das Prototypen Gedöns und die Einbindereihenfolge selber zuständig.
Klare Fronten!
ich kann mich jetzt nicht so fachmännig ausdrücken wie combie das könnte.
Aber der Kompilierungsprozess läuft alphabetisch ab. Das heißt bei blöder Namensgebung kann das schief gehen. Dann fängt man zu tricksen an mit vorangestellten '_' usw. Aber lass dich erstmal nicht verwirren. Zu viele Tabs sind auch nicht gut für die Übersicht. Bisher hatte ich noch keine Probleme wegen dem Alphabet.
Stolpersteine kommen dann wenn das .ino Namen Alphabet mit dem Reihenfolge der Funktionen (wo diese stehen) durcheinander kommt oder nicht fündig wird. Können andere sicherlich besser erklären. Aber wie gesagt, fang erstmal an. Vielleicht klappt ja auch alles.
MaHa76:
wo packe ich eigentlich die Variablen hin?
Das ist meiner Ansicht nach völlig egal. Die Tabs werden einzeln übersetzt (und dann gelinkt).
Variablen oder Funktionen aus anderen Tabs solltest du vor der Verwendung deklarieren.
Das kann man auch durch eine .h Datei erreichen, die man bei Bedarf mit #include einbindet.
Ist so eine Art lokale Library.
Das ist meiner Ansicht nach völlig egal. Die Tabs werden einzeln übersetzt (und dann gelinkt).
Leider nein, das wäre schön, ist aber bei *.ino Tabs nicht so.
Der "Builder" kloppt alles in eine Datei, und die wird dann übersetzt.
Kann man auch schön im Build Ordner sehen, was anderes sieht der Kompiler auch nicht.
Bei der Verwendung von *.h *.cpp werden die *.cpp einzeln übersetzt, so wie es in der C/C++ Welt üblich ist. Das ermöglicht portablen Code.