K
Kungfu
Unregistered / Unconfirmed
GUEST, unregistred user!
我用下载的控件(TComPort)控制PC的COM口,来实现数据采集并处理(基本思想:测量仪器可以不断地测量并发送数据,当程序接收到“END"按键时,就开始收集一次量测数据,并将数据加入到Memo控件)。但是我发现我的程序不能收集一次完整的测量数据,而只能收集到数据的前面几位,真的不知道是为什么??请各位帮忙吧!!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin
if Key=VK_END then
begin
ComPort2.Open;
ComPort2.SetRTS(true);
end;
end;
procedure TForm1.ComPort2RxChar(Sender: TObject; Count: Integer);
var s:string; //当接收到数据时做处理!!
begin
ComPort2.ReadStr(s,100);
Memo1.Lines.Add(s);
ComPort2.SetRTS(false);.......................(1)
end;
就是这样当我按下END键时,并不能接收到完整的一次测量数据,只能接收到前几位数据。但是如果将如上语句(1)去掉,则可以取得每次完整的数据,但是却会不断地就收数据,
而我只希望在按下END键时去接收一次完整的数据。不只该怎么办才好,请大家一定帮忙了,这里先谢谢大家!!!
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin
if Key=VK_END then
begin
ComPort2.Open;
ComPort2.SetRTS(true);
end;
end;
procedure TForm1.ComPort2RxChar(Sender: TObject; Count: Integer);
var s:string; //当接收到数据时做处理!!
begin
ComPort2.ReadStr(s,100);
Memo1.Lines.Add(s);
ComPort2.SetRTS(false);.......................(1)
end;
就是这样当我按下END键时,并不能接收到完整的一次测量数据,只能接收到前几位数据。但是如果将如上语句(1)去掉,则可以取得每次完整的数据,但是却会不断地就收数据,
而我只希望在按下END键时去接收一次完整的数据。不只该怎么办才好,请大家一定帮忙了,这里先谢谢大家!!!