소스:
function HexDisplay(sStr : String) : String;
var
sTmp,sHex : String;
i : integer;
begin
sTmp :='';
for i:=1 to Length(sStr) do
begin
sHex := Format('%x',[byte(sStr[i])]);
if Length(sHex) = 1 then sTmp := sTmp + '$0'+ sHex
else sTmp := sTmp +'$' + sHex;
end;
Result := sTmp;
end;
procedure TMain.ComPortRxChar(Sender: TObject; Count: Integer);
var
Str : String;
begin
ComPort.ReadStr(Str, Count);
Edit1.Text := HexDisplay(Str);
end;
해서 값을 값을 추출해서 보면 보낸값은 $03$02$00$04$1F 로 보내면 $03$02$04$1F 값 즉 $00값이 빠진 것만 들어 옵니다.
TComport의 Properties중에
DiscardNull이 혹시 True로 되어 있는게 아닌지..