Moin!
Ich empfange mit einem Arduino (Zero) NMEA Daten über die Serielle
Schnittstelle. Diese Daten werden dann mit TinyGPS verarbeitet. Nun
möchte ich diese Daten (und noch ein paar andere) über UDP versenden.
Die UDP Verbindung funktioniert schon, jedoch scheitere ich am (was
Anfang so schien) simpelsten... dem Zusammenfügen des NMEA Strings, bzw.
Char arrays.
Arduino untersützt kein float im sprintf, daher bin ich auf dtostrf
gestoßen. Das ganze wird jedoch ziemlich unübserichtlich und wirkt ein
bisschen aufgeblasen für ein simples zusammenfügen eines Char Arrays.
Ich bin noch recht neu in der Programmierecke und komme eher aus dem
klassischem Maschinenbau, habt daher bitte etwas Nachsicht :)
Ich habe auch schon überlegt, neben TinyGPS auch einfach den Seriellen
Stream zu Puffern und diesen einfach so auszugeben. Jedoch muss ich
später auch "Custom NMEA" Nachrichten senden, daher komme ich um den Bau
meines Char Arrays nicht herum.
So sollte der String aussehen:
Das Erstellen von Strings ist eines der Paradebeispiele eines
erzeugenden Design Patterns namens "Builder". Die Beischreibung auf
Wikipedia ist ganz ok:
https://en.wikipedia.org/wiki/Builder_pattern
Dort findet sich auch ein Beispiel, wie so etwas in C++ (sprich Arduino)
meist aussieht.