Ordnerstruktur für Bibliotheken

Hallo,

ich bin auf der Suche nach einer eleganten Lösung für mein Strukturierungsproblem. Unzwar habe ich ein Programm, welches leider aus ziemlich viel Code und etlichen Bibliotheken besteht. Ich würde gerne für die eigenen Arten von Bibliotheken Unterordner erstellen, damit es übersichtlicher wird.

So ist es bisher:
Bibliothek-SensorA
Bibliothek-SensorB
Bibliothek-Sensor...usw
Bibliothek-Auswertung der Sensroik
Bibliothek-Filter der Sensorik
Bibliothek-Motor
Bibliothek-EEPROM

Bsp:
#include "SensorA.h"

Alles liegt schön im Standard-Ordner für Bibliotheken.
Mein Wunsch wäre es aber, das man die Sensoren in einen gemeinsamen Unterordner packt, die Filter der Sensoren und anderer Krams was dazu gehört in eineen extra Unterordner, sodass alles strukturierter ist.

Die Einbindung einer Bibliothek sollte dann nach ungefähr dem Schema passieren.

#include "Sensor/SensorA/SensorA.h"

Klappt im nomalen Bibliotheken Verzeichnis leider nicht.

Jetzt aber schon zu einem meiner kleinen Ergebnisse, die ich erzielt habe, womit ich aber nicht zufrieden bin. Ich habe das dann alles mal in den Ordner Installationspfad\hardware\arduino\sam\cores\arduino gepackt. Dort klappt es dann nach dem obigen Schema.

Ich würde jetzt gerne aber auch mit git arbeiten und verschiedene Branches haben.
Jetzt ist aber das Problem das natürlich, dass ich für jeden einzelnen Branch die Ordner und Bibliotheken
anpassen müsste, damit ich dann ordentlich arbeiten kann, was natürlich mit steigender Größe des Programms suboptimal ist.

Hat jemand eine Idee oder einen Vorschlag wie man das machen kann? Ich bin für alle Anregungen offen.

Gruß,
Tobias

zu einem meiner kleinen Ergebnisse, die ich erzielt habe, womit ich aber nicht zufrieden bin.

Geht mir auch so…

Für meine Zwecke scheint es mir angemessen, mit Namespaces zu arbeiten.
So kann ich alle (meine) Libs in einen Ordner stopfen.

Auch wenn dann etwas zu viel Kompiliert wird (das braucht Zeit) wird doch das überflüssige Gedöns vom Linker/Compiler weg optimiert

Eine typische ino Datei sieht dann bei mir so aus:

#include <Combie.h>
using namespace Combie;

//Dim2Taster LEDX(upPin,downPin,pwmPin);
Dim2Taster LED1(A0,A1, 9);
Dim2Taster LED2(A2,A3,10);
Dim2Taster LED3(A4,A5,11);

void setup() {}

void loop() 
{
  Handler::handle();
}

Oder eben so:

#include <Combie.h>

//Dim2Taster LEDX(upPin,downPin,pwmPin);
Combie::Dim2Taster LED1(A0,A1, 9);
Combie::Dim2Taster LED2(A2,A3,10);
Combie::Dim2Taster LED3(A4,A5,11);

void setup() {}

void loop() 
{
  Combie::Handler::handle();
}

Im Anhang meine Lib.
Noch rudimentär und im Experimentalstadium.
Aber man sieht, wie es mit den Namspaces laufen kann.

Combie.zip (6.64 KB)

Mit namespaces wollte ich nicht arbeiten, ABER ich hab dein Zeugs mal für mich angepasst was ich haben will, also genau nach der Struktur oben. Es klappte auf anhieb. :o
Ich habs mal in den Anhang gepackt. Vllt wird das jemand anderem helfen. Ich hab aber mal die Namespaces entfernt. Aufjedenfall vielen Dank. Ich denke nach dem Prinzip kann ich alles verwirklichen.

Gruß Tobias

Combie.zip (5.6 KB)

Fein!

Schön, dass ich helfen konnte.....