Hi,
ich mache Übertragungen gerne mit einem String fester Länge und dann in Hex.
In deinem Fall würde ich ein Startbyte senden, was außerhalb der Hexwerte 0-F liegt um Verwechslung mit den Datenbytes auszuschließen, also zB. das "S", danach einen String mit den Hexwerten. Für alle möglichen Werte bräuchte ich dann 7 Zeichen.
3 für den ersten Wert (OK, nix gespart ) und für den zweiten Wert 4 Zeichen. Also würde mein ganzer String zB. für die Werte 29 und 6753 so aussehen "S01D1A61"
Durch die feste Datenlänge spare ich mir die ganzen Trennzeichen etc.
Ist eine etwas umständliche und warscheinlich recht langsame Methode, schließlich muß man die Daten erstmal so formatieren, daß Nullen vorangestellt werden.
Dafür sind es dann auch nur 8 Bytes (oder 10 mit cr/lf) zu senden, was die Zeit beim Übertragen minimiert.
Außerdem kann man die Daten schön im Terminalprogramm beobachten, insbesondere, wenn danach ein cr/lf gesendet wird.

In der Empfangsroutine werden die Daten nach Erkennung des Startbytes dann in einem Rutsch eingelesen und einfach per "mid" wieder aufgetrennt und in Werte umgewandelt
Beschreibungen wie "Spannung" "Strom" etc. kann man in der Empfangsroutine ja wieder hinzufügen.

Gruß
Christopher