Hallo,
Ich steh mal wieder etwas auf dem Schlauch und ich hoffe, dass mir einer
von euch den "Schubs" in die richtige Richtung geben kann.
Erstmal die Voraussetzungen:
Ich habe an einem PC/PI mehrere I2C-GPIO- Porterweiterungen (MCP23017
und MCP23008) hängen. Die haben 16 bzw. 8 GPIO's und hängen mit
verschiedenen Adressen am I2C.
Nun möchte ich diese Bausteine mit C++ über I2C mit entsprechenden
Bibliotheken (MCP23017 und MCP23008) direkt ansteuern. Die jeweilige
Bezeichnung, Busadresse usw. lese ich aus einer text/csv-DAtei ein und
rufe diese Daten aus der Vectorvariable (mcp_elements mit eigener
struct) ab. Das funktioniert soweit auch, z.B.:
-------code-------
MCP23017 mcpout1.(atoi(mcp_elements[i_e].busnr.c_str()),
atoi(mcp_elements[i_e].busaddr.c_str()));
mcpout1.openI2C();
for ( int i17 = 0; i17 < 16; i17++) {
   mcpout1.pinMode(i17, OUTPUT);
   mcpout1.pinMode(i17, LOW);
}
-------/code-------
Nun muss ich eben für jeden Baustein das Device mit dem Handle/ostream
verbinden und benötige eben z.B. "mcpout1", "mcpout2", "mcpout3" usw. Da
ich aber nicht sicher weiss, ob immer die gleiche Anzahl von I2C-
Bausteinen an den Bus angeschlossen sind, ist diese "Hardcodierung"
ungünstig. Um nicht jedes mal das Programm anpassen und neu kompilieren
zu müssen, möchte ich die Art (MCP23008/MCP23017), Busadresse, Art der
Ports (In-/Outputs) Nummerierung der Ports usw. aus der txt/csv-Datei
lesen und das etwas dynamisch behandeln. Das Lesen der Infos klappt
schon, aber dann hänge ich....
Nun die Frage: Kann ich eine Variable (event. einen Vector) erstellen in
den ich dann in einer Zeile "Nr", "Streamref", "Portnummerstart",
"Portnummerende" speichern kann und dann eben nur diese eine Variable in
die anderen Unterprogramme übergeben kann? D.h., kann ich in dieser
Variable, und wenn ja wie, die Streamreferenz speichern und übergeben
kann. In den Unterprogrammen möchte ich die Variable nach dem Schema
"liegt die anzusteuernde Portnummer zwischen "Start" und "Ende", dann
ist der Stream/ Referenz zu verwenden benutzen.
Wie müsste die Variable aussehen? Vector mit welcher struct?
Wäre toll, wenn mich jemand erleuchten könnte.....oder wenigstens den
Weg weisen könnte.
--
Mit freundlichen Grüßen
Sebastian Reinhardt