Hallo,

Ich bin mehrere Schritte weiter und möchte zum Schalten der Ausgänge aus einem Vector mit eigener Struktur mit Hilfe des Namens die jeweilige Pinnummer abrufen bzw. als Substitution in den Funktionen nutzen. Dafür habe ich auch schon eine Anleitung gefunden [1], allerdings klappt es nicht bzw. ich verstehe die Funktionsweise nicht.

Ich habe folgenden Vector:

----------------------------------------

struct config_values {
        int config_number;
        string config_name;
};

std::vector<config_values> config_vec

----------------------------------------

Als Beispieldaten habe ich folgende Werte:

----------------------------------------

config_vec[1].config_number = 4;

config_vec[1].config_name = led_alarm;

config_vec[2].config_number = 17;

config_vec[2].config_name = led_normal;

config_vec[3].config_number = 18;

config_vec[3].config_name = valve_1;

// usw.........

----------------------------------------

Nun möchte ich z.B. die Funktion "gpioWrite(GPIO_NO,Value)" nutzen, um die LED aus- bzw. einzuschalten. Dafür mochte ich die GPIO-Nummer "4" durch eine Variable ersetzen, in der die Nummer mit dem Suchstring "led_alarm" gefunden wird, da ich per csv-Datei die Nummer neu zuordnen kann, ohne das Programm neu zu kompilieren.

Das tollste wäre nat., wenn ich den Befehl "gpioWrite(config_vec{"led_alarm"},0}" (das ist nat. kein funktionierender Befehl!) aufrufen könnte und der GPIO-Ausgang mit der Nummer "4" geschaltet würde.

Könnt ihr mir da noch mal auf die Sprünge helfen? Eine einigermaßen verständliche Anleitung würde mir schon reichen.

----

[1] https://stackoverflow.com/questions/14225932/search-for-a-struct-item-in-a-vector-by-member-data

--
Mit freundlichen Grüßen

Sebastian Reinhardt


LMV
Landmaschinenvertrieb- und Service GmbH
Hauptstrasse 13G
(OT Hartmannsdorf)
01762 Hartmannsdorf- Reichenau

Geschäftsführer:        Sebastian Reinhardt
Amtsgericht:            Dresden
Handelsregisternummer:  HRB 2574
Umsatzsteuer- Identnr.: DE 140461622


Tel:  +49 373 26 1851
Mobil:+49 172 357 3107
Fax:  +49 373 26 86804
Mail: s...@lmv-hartmannsdorf.de
Web:  www.lmv-hartmannsdorf.de



Antwort per Email an