主题:如何使用mscomm1发送较长的十六进制
请教下大家 用delphi里面 mscomm控件发送这样一串十六进制:0AA400100100C20129
代码上要怎么写,以下是我写的,好像有点不行,各路神仙帮忙看看
在一个按钮下面的事件:
var
senddata: array[1..20] of char;
sendstr: string;
restr: string;
i: longint;
begin
mscomm1.CommPort := 1; //指定端口
mscomm1.Settings := '9600,N,8,1'; //其它参数
mscomm1.InBufferSize := 1024; //接收缓冲区
mscomm1.OutBufferSize := 1024; //发送缓冲区
mscomm1.InputMode := comInputModeBinary; //接收模式
mscomm1.InputLen := 0; //一次读取所有数据
mscomm1.SThreshold := 0; //一次发送所有数据
mscomm1.InBufferCount := 0; //清空读取缓冲区
mscomm1.OutBufferCount := 0; //清空发送缓冲区
mscomm1.PortOpen := true; //打开端口
MSComm1.RThreshold := 16; //设置接收多少字节开始产生oncomm事件
senddata[1] := chr($0A); //要发送的数据 0AA400100100C20129
senddata[2] := chr($A4);
senddata[3] := chr($00);
senddata[4] := chr($10);
senddata[5] := chr($01);
senddata[6] := chr($00);
senddata[7] := chr($C2);
senddata[8] := chr($01);
senddata[9] := chr($29);
sendstr := '';
for i := 1 to 9 do
sendstr := sendstr + senddata[i];
mscomm1.output := sendstr;
end;
因为查了一些资料 好像大多发送的十六进制都是8位或者8位以内的, 而我要发送的是9位,这个是不是有什么关系?这种长的十六进制需要对代码做什么改进呢?
代码上要怎么写,以下是我写的,好像有点不行,各路神仙帮忙看看
在一个按钮下面的事件:
var
senddata: array[1..20] of char;
sendstr: string;
restr: string;
i: longint;
begin
mscomm1.CommPort := 1; //指定端口
mscomm1.Settings := '9600,N,8,1'; //其它参数
mscomm1.InBufferSize := 1024; //接收缓冲区
mscomm1.OutBufferSize := 1024; //发送缓冲区
mscomm1.InputMode := comInputModeBinary; //接收模式
mscomm1.InputLen := 0; //一次读取所有数据
mscomm1.SThreshold := 0; //一次发送所有数据
mscomm1.InBufferCount := 0; //清空读取缓冲区
mscomm1.OutBufferCount := 0; //清空发送缓冲区
mscomm1.PortOpen := true; //打开端口
MSComm1.RThreshold := 16; //设置接收多少字节开始产生oncomm事件
senddata[1] := chr($0A); //要发送的数据 0AA400100100C20129
senddata[2] := chr($A4);
senddata[3] := chr($00);
senddata[4] := chr($10);
senddata[5] := chr($01);
senddata[6] := chr($00);
senddata[7] := chr($C2);
senddata[8] := chr($01);
senddata[9] := chr($29);
sendstr := '';
for i := 1 to 9 do
sendstr := sendstr + senddata[i];
mscomm1.output := sendstr;
end;
因为查了一些资料 好像大多发送的十六进制都是8位或者8位以内的, 而我要发送的是9位,这个是不是有什么关系?这种长的十六进制需要对代码做什么改进呢?