DELPHI語言在遠(yuǎn)程紅外測溫報警系統(tǒng)中的應(yīng)用
a)接收數(shù)據(jù)
上位機(jī)采用事件驅(qū)動方式接收數(shù)據(jù)。當(dāng)下位機(jī)傳送一幀數(shù)據(jù)上來輸入緩存時,將觸發(fā)TCOMM 組件的OnReceiveData 事件,對數(shù)據(jù)進(jìn)行接收。然后對接收的數(shù)據(jù)進(jìn)行判斷,分別轉(zhuǎn)相應(yīng)的處理程序。下面是數(shù)據(jù)接收的程序段:
begin
try
count:=form1.Comm1.ReadInputByte(pt);
if ((count+1) mod 4>0) then
begin
form1.Comm1.DataCount:=0;
exit;
end;
for i:=0 to 3 do
begin
re[i]:=pt^;
inc(pt);
end;
… //數(shù)據(jù)處理部分
b)發(fā)送數(shù)據(jù)
發(fā)送數(shù)據(jù)采用異步I/O 方式,即將要發(fā)送的數(shù)據(jù)用WriteCommData 方法發(fā)送到寫線程,然后立即返回。該方法所有的操作均在后臺進(jìn)行,如果發(fā)送成功,返回True, 發(fā)送失敗,返回False。下面是發(fā)送數(shù)據(jù)的主要程序段:
form1.Comm1.PortOpen:=true;
form1.Comm1.OutputByte(send);
timedelay(300);
3.4 系統(tǒng)初始化模塊設(shè)計
本系統(tǒng)初始化部分設(shè)計程序如下:
begin
Position:=poscreencenter;
form1.Comm1.DataCount:=0;
form1.Comm1.RThreshold:=1;
form1.Comm1.PortOpen:=true;//串行口初始化
form1.sys_ini();//系統(tǒng)參數(shù)初始化
…
3.5 參數(shù)設(shè)置模塊設(shè)計
為了系統(tǒng)的操作方便,在菜單中加入了參數(shù)的設(shè)置,可以選擇串行口,選擇通信的波特率等等。
4 結(jié)束語
系統(tǒng)經(jīng)過一個多月的觀察測試,該軟件系統(tǒng)運行穩(wěn)定,使用操作方便,測量精度高。
評論