hk007:
Kann man das auch ohne die Wandlung in einen String machen?
Ja, natürlich.
Meine Meinung:
Wenn Du für einen Mikrocontroller programmierst, dann solltest Du überhaupt keine String-Objekte verwenden! Noch dazu, weil die String-Objekte in Arduino fehlerhaft implementiert sind und die Verwendung unter bestimmten Bedingungen (wohlgemerkt bei fehlerfreiem Code!) ruckzuck den gesamten freien RAM-Speicher aufbrauchen kann, so dass das Programm dann durchdreht. Stringobjekte unter Arduino zu verwenden ist eine Fehlerquelle ersten Ranges für die Programmierung von nichtfunktionierenden Programmen.
Dein packetBuffer dürfte ein char-Array sein, und wenn ein solches irgendwo mit einem Nullzeichen abgeschlossen ist, dann ist es quasi ein C-String, auf den Du die Stringfunktionen der C string-Standardlibrary anwenden kannst:
http://www.nongnu.org/avr-libc/user-manual/group__avr__string.html
Z.B. suchen im C-String mit strstr().
Im Endeffekt mußt Du Dir als erstes ein Übertragungsprotokoll überlegen, was und wie es übertragen werden soll.
Das können Strings sein, z.B. kannst Du den Puffer ab Pufferstart mit Zeichen des Strings füllen, ein Nullzeichen dranhängen, dann kann der übertragene packetBuffer direkt wie ein C-String mit Funktionen der Standardlibrary behandelt werden.
Du kannst Startzeichen und Endezeichen aus dem Steuerzeichenbereich festlegen, wenn Strings im Puffer stehen sollen.
Du kannst den Puffer aber auch als Integer-Array behandeln, wobei der Zeiger auf das erste Zeichen im packetBuffer dann als erstes Zeichen eines Integer-Arrays betrachtet wird, mit dem Protokoll: Im ersten Integer steht die Anzahl der nachfolgenden Integerwerte, in den nachfolgenden Speicherstellen dann die übertragenen Werte.
Wenn Du Dir ein für Deine Zwecke passendes Übertragungsprotokoll ausgedacht hast, in dem alle notwendigen Werte übertragen werden können, muß es nur noch codiert werden. Wenn die übertragenen Werte immer denselben Aufbau haben und immger gleich viele Werte und immer in derselben Reihenfolge reinkommen, kann der Code sehr einfach sein. Und wenn ganz viele verschiedene Daten, mit unterschiedlichem Aufbau, unterschiedlicher Länge, in unterschiedlicher Anzahl und verschiedener Reihenfolge übertragen werden sollen, kann das Übertragungsprotokoll auch ziemlich komplex werden.