Hai HaGü,
bei meinem Code war wohl die Berechnung des zweierkomplements falsch
Aber Klaus01 hat ja den richtigen Code geschreiben:
Delphi-Quellcode:
function Zweierkomplement(aValue: Integer): Integer;
begin
result := (aValue xor $FF) + 1;
end;
Wenn ich Probleme mit der seriellensteuerung von Geräten hatte habe ich immer versucht zu ermitteln was denn das "Herstellerprogramm" sendet. Dafür einfach zwei Serielleschnittstellen mit einem Null-Modem kabel verbinden. Auf Com1 sendet das Programm und auf Com2 werden mit Hyperterminal oder einem eingenen Delphiprogramm die Daten empfangen. Dann kann man einmal genau vergleichen was das Originalprogramm sendet und was dein Programm sendet.
Zum Empfang ist es gut ein Programm zu haben welches mit den Zahlenwert der empfangenen Byte anzeigt. Dadurch hat man keine Probleme wenn der
ASCII-Wert ein Steuerzeichen oder nicht darstellbares zeichen ist.
Stephan B.