' schrieb:kann man eigentlich Hex und Ascii mischen, also einen zusammengestzten string aus mehreren Stringkonstanten durch string addieren zusammenfügen und dann mit einen rutsch über Visa übertragen?
Natürlich.
Da "HEX", "ASCII" und wie sie alle heißen (in erster Linie) Darstellungsformen sind, im Speicher aber immer das selbe Format haben (nämlich "binär"), kann man sie bedenkenlos addieren (wobei "addieren", wie eben HEX etc., auch schon wieder ein mehrdeutiges Wort ist: Eine Addition im mathematischen Sinne findet bei einem Verknüpfen von Strings nicht statt, wohl aber ein Anhängen, concatenate genannt. Die meisten sagen aber "String addieren", leider nicht "Strings verknüpfen").
Was du auf jeden Fall klären solltest, ist die Schnittstelle. Und die sollte irgendwo schriftlich fixiert sein. Aus der Schnittstellenbeschreibung muss nämlich eindeutig hervorgehen, ob du binär (also in etwa ASCII) oder HEX übertragen musst.
Noch was (bevor ich wieder in meinen Garten gehe und in Schweis zerfließe):
Es gibt ein Sicherungsprotokoll "HEX-Space". Dabei werden alle Zeichen, die eben übertragen werden sollen, in "HEX" mit einem nachfolgendem "Space" konvertiert. Tatsächlich übertragen werden nur Zahlen aus dem Bereich [32, 48..57, 61..66] (in ASCII dargestellt [' ', '0'..'9', 'A'..'F']). Sinn der Sache: Einfache Datensicherung. Wird ein Zeichen empfangen, das sich nicht im angegebenen Bereich befindet, so kann ein Fehler festgestellt werden.
In deinem Falle funktioniert die Datensicherung wahrscheinlich so: Start der Übertragung ist das Zeichen 0x81, also SOH mit gesetztem 8. Bit. Alle folgenden Zeichen sind ASCII, also Zeichen ohne gesetztem 8. Bit. So kann man praktisch auf den Beginn der Übertragung triggern. Der Inhalt des Datenpaketes sind möglicherweise Zahlen in Dezimaldarstellung(!). Eine Zahl z.B. 1203 kann man nicht in ASCII darstellen, wenn dann z.B. in Dezimal, nämlich: "1203" (oder HEX: "04B3"). Dieser String (die Dezimaldarstellung ist vom Typ her also ein String) wiederum besteht aus den vier ASCII-Zeichen "1", "2", "0" und "3" (oder den vier ASCII-Zeichen "0", "4", "B" und "3").
Hinweis:
Ich sehe gerade: Was ich in meinem ersten Posting als [0..9, A..F] geschrieben habe, muss korrekt ['0'..'9', 'A'..'F'] oder [48..57, 61..66] heißen.