ich würde gern einen Union String in einer if Abfrage weiter verarbeiten.
in meinem Code nutze ich den Union String für die Eingabe an einem Nextion Touch Display.
Zu meiner Idee:
Ich gebe des Wert 29 im Nextion ein. Und möchte einfach nur sagen:
Wenn der Wert 29(im Union Format) <= x dann schreibe im Seriellen Monitor "Alles in Ordnung"
Als Code:
int x = 30;
if(String(value.valLong)<= x){
Serial.println("Alles in Ordnung");
}
nur klappt das leider nicht. Kann mir jemand helfen?
hier Sende ich eine Zahl vom Nextion zum Arduino.(b1 ist der Sendenbutton vom Nextion)
Hier übergebe ich die die Gesendete Zahl an den Seriellen Monitor.
Da im ich im finalen Projekt keinen Seriellen Monitor mehr habe, ich aber die vom Nextion Gesendete Zahl sehen möchte, gebe ich sie damit auf ein extra Zahlenfeld auf den Nextion zurück.
Ok ich hätte vorab sagen sollen das mein Code den ich da geschrieben habe sicher 1 Woche Recherche benötigt hat. Was darauf schließen lässt das ich nicht fit in C bin.
Deshalb verstehe ich nahezu nichts was in deinem Code steht Tommy.
Das Problem kannst Du aber nicht uns anlasten. Lerne die Grundlagen der Sprache C++, die Du benutzen willst an einfachen Beispielen und gehe später zu komplexeren Themen.
Das Nextion scheint derzeitg Deinen Wissensstand etwas zu überfordern. Daran sind schon Leute mit mehr Programmiererfahrung daran verzweifelt. Das ist kein Stoff für absolute Anfänger, die nur Codeschnipsel zusammen kopieren, ohne deren Inhalt zu verstehen.
Du versuchst derzeit einen Marathon zu laufen, obwohl Du noch nicht mal krabbeln kannst. Sorry für die evtl. harten Worte, aber so sehe ich das.
Ich denke das ich schon verstehe was in meinem Sketch steht.(kann mich aber sicherlich täuschen"
Meine Interpretation meines Sketches ist: Da der Nextion einen ASKII Code über die Serielle Schnittstelle sendet und dieser Quasi über die Union Funktion "lesbar" gemacht wird. Der Rest ist ja dann nur noch Serial.println.
Und zu jeder Funktion die in dem Sketch stehe habe ich mich auch belesen. Außer Union da habe ich nicht so richtig was gefunden.
Du glaubst nicht, was man mit Hilfe einer oder mehrer blinkender LEDs alles lernen kann
Aber möglicherweise machst Du ja auch nur einen meiner Anfangsfehler, denn ich dachte, nur der Inhalt der Arduino-Referenz würde auf einem Arduino laufen. Aber nein, es ist grundsätzlich der Sprachumfang von C++, für mich eine Überraschung. Es gibt wegen der nur acht Bits Einschränkungen, aber viel funktioniert.
Beispielsweise auch sscanf, das ich in Deinem Fall nützlich finde, getestet mit einem UNO:
void setup() {
Serial.begin(9600);
Serial.println("\nStart");
char buf[10] = {"XX"};
long valLong = 0;
for (long v = 25; v < 33; v++)
{
snprintf(buf, sizeof(buf), "%li", v);
Serial.print("buf: "); Serial.print(buf);
sscanf (buf, "%li", &valLong);
Serial.print("\tvalLong: "); Serial.print(valLong);
if (valLong <= 30)
{
Serial.print("\tAlles in Ordnung");
}
Serial.println();
}
}
void loop() {}
Ausgabe:
Start
buf: 25 valLong: 25 Alles in Ordnung
buf: 26 valLong: 26 Alles in Ordnung
buf: 27 valLong: 27 Alles in Ordnung
buf: 28 valLong: 28 Alles in Ordnung
buf: 29 valLong: 29 Alles in Ordnung
buf: 30 valLong: 30 Alles in Ordnung
buf: 31 valLong: 31
buf: 32 valLong: 32
Natürlich kannst Du im Nachschlagewerk Deiner Wahl nachlesen, ich finde cplusplus.com schön knackig.
Inzwischewn haben hier so viele geschrieben, daß sich mein Hinweis möglicherweise wiederholt, na sei's drum.
Nach eigener Aussage, zumindest habe ich dich so verstanden, bist du weder fit in C noch in C++.
Das finde ich nicht dramatisch, denn das kann man/du ändern!
Das mit "Wenn du keine Ahnung hast lass es einfach" wirst du von mir nicht hören, solange ich einen Hauch von Willen spüren kann.
"oder fang mit dem Blink LED Sketch an"
Das könnte schon eher von mir sein.
So wie es auch quasi aussichtslos ist, ohne jede Fahrpraxis ein Formel1 Rennen gewinnen zu wollen.
Ich weiß das!
Zwischen den beiden Zuständen liegt viel harte Arbeit.
Dann ist ey doch gut, wenn du da noch etwas übst.
Nimm z.B. den Code von Tommy und teste damit. Da wirst du sicher schnell verstehen, wie das funktioniert, oder hier nachfragen.
Gegenfrage:
Was für einen Controller verwendest du ?