INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Logging nach Serial und/oder Telnet
19.06.2021, 15:25
Beitrag #33
RE: Logging nach Serial und/oder Telnet
Beleidigt habe ich keinen.
Danke für verschwendete Zeit... Und ja, ich bin die ganze Zeit am lesen und C lernen,
weiss den Unterschied zwischen Deklarationen und Zuweisungen und weiss auch was Pointer sind.
Sowas gab es schon zu meiner Assembler Zeit (6502).
Nur sind mir nicht immer die Syntax verständlich.
Aber egal, wer nicht will, will nicht, kann man nix machen.
@miq19: Verstehe mich nicht falsch, aber warum hast DU hier etwas gefragt und Hilfe erhofft?
Hättest Du es toll gefunden, als Antwort "Lern doch erstmal C/C++" zu bekommen?

Schönen Tach noch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.06.2021, 15:32 (Dieser Beitrag wurde zuletzt bearbeitet: 19.06.2021 15:33 von Tommy56.)
Beitrag #34
RE: Logging nach Serial und/oder Telnet
(19.06.2021 15:25)mega-hz schrieb:  Beleidigt habe ich keinen.
Dann lies Dir Dein Posting #30 nochmal durch.
Die Aussage, dass Du den Unterschied zwischen Deklaration und Zuweisung kennst, widerspricht Deiner Fragestellung.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.06.2021, 15:40
Beitrag #35
RE: Logging nach Serial und/oder Telnet
Code:
Print& port = Serial;
deklariert eine neue Variable der Typs "Referenz auf ein Print-Objekt", die nur im aktuellen Codeblock existiert, und initialisiert sie mit der Referenz auf Serial. Diese Deklaration überdeckt die globale Variable gleichen Namens für den aktuellen Codeblock. d.h., hier ist port eine andere Variable, die globale behält ihren vorherigen Wert. Verlässt das Programm den Block, ist wieder die globale Variable sichtbar.

Code:
port = Serial;
würde der globalen Variablen stattdessen einen neuen Wert zuweisen, die Referenz auf Serial. Diese Änderung der globalen Variablen ist auch nach Verlassen des aktuellen Codeblocks wirksam.

Code:
<typ> <name> = <wert>;

versus

<name> = <wert>;

Ich bleibe dabei: lerne C/C++, ,sonst wirst Du mit Deinem Kram nicht erfolgreich sein.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.07.2021, 11:49
Beitrag #36
RE: Logging nach Serial und/oder Telnet
Nach längerer Pause und viel lesen habe ich das Problem nun in den Griff bekommen!
Im Prinzip war ich schon auf dem richtigen Weg, jedoch hatte es an der richtigen Schreibweise gehapert.

Für alle die print Ausgaben auch umlenken möchten, hier eine kurze Erklärung:

Ganz oben im Programm Kopf lege ich einen Pointer Namens port an, dieser zeigt erstmal nach Adresse 0
Code:
Print* port = 0L;
Im Setup weise ich port der Seriellen zu
Code:
port = &Serial;
, damit ein definiertes Ziel existiert.
Anstatt nun wie gewohnt print.Serial() könnte man denken, man müsste print.port() schreiben.
Dies ist falsch, die Printausgaben müssen nun so geschrieben werden:
Code:
port->print("Hallo");
.
Dies war auch mein Knackpunkt... Warum man nicht einfach print.port() schreiben kann und warum nun ein -> anstelle des punktes sein muss,
konnte ich leider nicht herausfinden. Vielleicht dient das lediglich nur zur Unterscheidung.
Nun möchte ich aber die Ausgabe auch auf die Ethernet Schnittstelle ausgeben können ohne alle Ausgaben neu anzupassen, dies habe ich so gelöst:
In einer Schleife wird abgefragt, ob Zeichen über die Serielle oder über die Ethernet-Schnittstelle kommen.
Code:
EthernetClient client = server.available();  

  if (readSerial(Serial) == true)
  {
    digitalWrite(LED_ETH, LOW);
    digitalWrite(LED_SER, HIGH);
    port = &Serial;
    parseSerial();
  }
  if (readSerial(client) == true)
  {
    digitalWrite(LED_ETH, HIGH);
    digitalWrite(LED_SER, LOW);
    port = &server;
    parseSerial();
  }
Je nach Schnittstelle wird port nun einem anderen Ziel zugewiesen und somit werden alle printausgaben entweder auf Serial oder Ethernet ausgegeben. Zusätzlich werden zwei LEDs umgeschaltet, die den Zugriff auf Serial/ETH anzeigen.
Dann geht es weiter zur Auswerte-Routine parseSerial() wo die reinkommenden Zeichen ausgewertet werden.
Funktioniert super, genau wie es soll.
Sicher kann man auch andere Schnittstellen, die die Printbefehle unterstützen, benutzen.

Ich hoffe, ich konnte dies gut erklären damit es auch andere Verstehen.
Trotz allem noch danke an Tommy und miq19 und besonders an JAC!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kleine Bitmap oder jpeg Bild anzeigen celkev2021 1 131 27.07.2021 20:29
Letzter Beitrag: Tommy56
  Wemos D1 mini: Startet nur nach Upload 1 mal RudolfAtITD 5 799 24.05.2021 18:38
Letzter Beitrag: Tommy56
  Serial Puffer manipulieren. Trexis5 46 4.452 21.05.2021 11:28
Letzter Beitrag: Trexis5
  Erfahrungen mit ESP32 und WLAN/MQTT oder was ich beobachtet habe... Arduino4Fun 23 5.723 09.04.2021 16:15
Letzter Beitrag: amshh
  ESP8266 Webserver nach Zeit nicht mehr verfügbar. ESPWolf 21 3.466 02.02.2021 17:54
Letzter Beitrag: Tommy56
  falsches Display oder einfach nur keine Ahnung? Steinspiel 30 3.295 11.01.2021 19:48
Letzter Beitrag: Tommy56
  ESP-32 USB->Serial Adapter Positiv 1 1.401 31.08.2020 19:04
Letzter Beitrag: KlaRa
  Esp8266 GPIO default In- oder Out-put? N1d45 0 999 29.08.2020 06:58
Letzter Beitrag: N1d45
  Grundsätzliche Fragen nach Umstieg von Lua auf Arduino Stefan72 6 1.815 06.07.2020 22:58
Letzter Beitrag: Stefan72
  WEMOS D1 mini pro nach 4 Jahren gestorben Tommy56 1 1.277 02.07.2020 05:52
Letzter Beitrag: amithlon

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste