allgemein Variablen im sketch

Mehr
14 Aug 2022 08:01 #840 von colaholiker
colaholiker erstellte das Thema allgemein Variablen im sketch
Hallo allerseits,

ich programmiere noch nicht lange am ESP32 per Arduino IDE und hab zig Fragen, aber heute als Anfang mal was einfaches für die Könner:

Ich habe ein MQTT-Netzwerk zum testen aufgebaut, und die Daten werden von 2 identischen Loggern auf SD-Karten erfaßt.
In dem einen Sketch für beide Clienten muß ich in 4 Zeilen jeweils den Clientnamen ändern (Topics usw.). Den Clientnamen selbst gibt es aber auch als Variable für Codeteile weiter unten.
Mal den Codeteil gepostet:
//
für Client067
char* myClientName = "Client067";//-- für RS-SD Modul
char* Smy1Topic = "Client067/kh12/SDs/Client067_lebt";
char* Smy2Topic = "Client067/Resetvorgang";
char* Emy9Topic = "Test067/kh12/hof1/logger_vh";
//
für Client068
// char* myClientName = "Client068";//-- für AZ-SD Modul
// char* Smy1Topic = "Client068/kh12/SDs/Client068_lebt";
// char* Smy2Topic = "Client068/Resetvorgang";
// char* Emy9Topic = "Client068/kh12/hof1/logger_vh";
//
für Client-Test
// char* myClientName = "Client-Test"; //-- für erste Tests
// char* Smy1Topic = "Client-Test/kh12/SDs/Client-Test_lebt";
// char* Smy2Topic = "Client-Test/Resetvorgang";
// char* Emy9Topic = "Client-Test/kh12/hof1/logger_vh";
//
naja, der 3.Client ist ein Testboard am Rechner, zum ständigen beharken. Die anderen update ich über den Browser, daher zZt. sogar 3 Clienten mit gleichem Sketch.

Der Codeteil sitzt under den Deklarationen für die Bibliotheken und vor dem ersten Void.

Ich würde gern nur einmal
char* myClientName = "Client067";
// char* myClientName = "Client068"
// char* myClientName = "Client-Test";
schreiben/(aus)kommentieren und die Variable für alle anderen Zeilen nutzen, bekam aber Mecker.
Ich hab irgendwo gelesen, daß man an dieser Stelle Vasriablen nicht nutzen kann. Ist das richtig?
Hans

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
15 Aug 2022 16:07 #841 von supportteam
allgemein Variablen im sketch
Hallo auch

Einmal deklarieren bitte. Nutzen unlimited natürlich immer und überall
Es sei denn, man nutzt es innerhalb
void eins(){
char* myClientName = "Client067";
}

void zwei(){
char* myClientName = "Client067";
}
-> gilt dann aber auch nur in der jeweiligen void (!)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
16 Aug 2022 13:39 #842 von colaholiker
allgemein Variablen im sketch
Hi,
ich hatte auf "Kurzantwort" geklickt, geantwortet und sehe meinen Text nicht, daher nochmal...
Mir ist das mit globalen und lokalen Variablen klar. Aber mein Code oben steht genau so zwischen den Library- Deklarationen und dem ersten Void. Also jede der im 1. Posting gezeigten Variablen ist global.

Ich schrieb ja auch dazu
>> Der Codeteil sitzt under den Deklarationen für die Bibliotheken und vor dem ersten Void

grr Fehler! ...'unter'... natürlich.

Also kurz: ich möchtee an diesem Ort des Sketches globale Variablen (die Topics) etwa so bilden:

char* myClientName = "Client067";
//char* myClientName = "Client068";
char* Smy1Topic = myClientName + "/kh12/SDs/Client067_lebt";
char* Smy2Topic = myClientName +"/Resetvorgang";
usw.

und eben nur die Client- Namen ändern. Eine Stelle statt vier!

Die IDE kompiliert das nicht, und ich wüßte gern, ob es grundsätzlich nicht geht (nur an dieser Stelle?), Variablen mit Hilfe anderer Variablen zu deklarieren oder ich nur die Syntax vermassle.
Hans

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum