Delphi-Quellcode:
ComPort.WriteStr(char($01)+char($02)+char($01)+char($00)+char(00)+char($00)+char($3D));
// oder wenn es eh fix ist
ComPort.WriteStr(#01#02#01#00#00#00#$3D);
Beim Lesen solltest Du immer im Hinterkopf haben dass die Daten in Portionen kommen können bis sie komplett sind, also Puffern und den Puffer auswerten
Delphi-Quellcode:
procedure TwasAuchImmer.Comport1RxChar(Sender: TObject; Count: Integer);
var
s:AnsiString;
begin
BaseSerial1.ReadStr(s,Count);
FInBuffer := FInBuffer + s; // FPuffer ist hier eine Klassenvariable
InterpretInbuffer; // Eine Prozedur die den Puffer auswertet, komplette Nachrichten extrahiert, aus dem Puffer entfernt und verarbeitet
end;
Das was bei Dir ankommt sollte wenn Du wirklich Delphi7 verwendest, also kein Unicodeproblem haben kannst, an falschen Einstellungen für Baudrate, Stopbit, Parity oder ähnlichem liegen ...
BZW: was soll da rauskommen, wenn Du wieder HexCodes erwartest musst Du diese aus den Bytes extrahieren.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Const
Test='Âü~>ÂüÂüÂü';
var
s:AnsiString;
HexOut:String;
i:Integer;
begin
s := Test;
for I := 1 to Length(test) do HexOut := HexOut +'$' +IntToHex(Byte(s[i]),2);
Showmessage(HexOut);
end;