为实现汽车衡与计算机通信,该汽车衡通信要求为:其始字符:STX(0X02) 地址:31-3F 功能码:A~Z 数据:字符串 结束:CR(0D)
地址为两位数的地址值,A~Z,实现不同功能的代码,我需要从汽车衡返回重量数据,只需要发送地址 值 02 加 功能代码 B 即可,完整的发送命令格式为: 02(起始字符)02(地址值)B(功能代码)0D(结束值) ,汽车衡就会返回数据,其连续输出数据格式为18个字节 :
STX ABC XXXXXX XXXXX CR
1 2 3 4 5
其中第3项为重量值,6位不带符号和小数点的数字。程序如下:
procedure TForm1.FormShow(Sender: TObject);
begin
comm1.StartComm;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//comm1.StopComm;
end;
begin
comm1.StartComm;
sleep(10);
sbuf[1]:=byte($02);
sbuf[2]:=byte($02);
sbuf[3]:=byte($55);
sbuf[4]:=byte($42);
sbuf[5]:=byte($0D);senddata;end;这是发送数据的代码
BufferLength: Word);
var
i:integer;
begin
viewstring:='';
move(buffer^,pchar(@rbuf)^,bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring+inttostr(rbuf[i]);
viewstring:='接受'+viewstring+' : ';
memo1.lines.add(viewstring);
memo1.lines.add('');
comm1.StopComm;
end;
另外哪位大虾给我一个CPORT的例子可以吗?非常感谢!!1