langen Sketch in Reiter aufteilen?

Hallo zusammen,

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...

Hallo,

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.

prima :slight_smile:

danke für die ergänzenden Tipps

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!

das hab ich jetzt nicht verstanden... :-/

Hallo,

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.

Bsp.
Meine Haupt .ino heißt:
Modellbahn.ino
Die Tabs heißen:
Automatik.ino
Display.ino
Joystick.ino
Monitor.ino
MonitorLCD.ino

funktioniert bis jetzt.

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.

ah... ich glaub ich weiß was du meinst...

wo packe ich eigentlich die Variablen hin?

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 klingt gut.... :slight_smile: da weiß ich was ich die nächsten Abende mache.... :slight_smile:

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.

combie:
Leider nein, das wäre schön, ist aber bei *.ino Tabs nicht so.

Dann sollte man die eher nicht benutzen denke ich. cpp und h ist doch auch ok.

Also ich hatte bisher noch keine Probleme mit ino Dateien als Tab Reiter

ElEspanol:
Also ich hatte bisher noch keine Probleme mit ino Dateien als Tab Reiter

In vielen Fällen klappt das auch problemlos.