【正文】
========procedure (Sender: TObject。 Buffer: Pointer。 BufferLength: Word)。 type ss=array[1..8192]of char 。 var str1:^ss。 i:integer。 s:array[0..8192] of char 。 n:integer。 string1:string。begin str1:=Buffer。 //s[]=(39。039。,39。139。,39。239。,39。339。...39。E39。) for i:=0 to 9 do s[i]:=chr(48+i)。 for i:=10 to 15 do s[i]:=chr(55+i)。 string1:=39。39。 for i:=1 to bufferlength do begin n:=ord(str1^[i])。 string1:=string1+s[n div 16]+s[n mod 16]+ 39。 39。 // 除取整 除取余 //(39。接收→ 39。 + s[n div 16]+s[n mod 16] )。 end。 //轉(zhuǎn)換字符串完畢后,清空buffer ZeroMemory(buffer,0)。 //根據(jù)過濾狀態(tài),調(diào)用replacing函數(shù)替換字符串 if =39。狀態(tài):已停止過濾39。 then begin string1 :=string1。 end else begin for i:=0 to do begin string1:=replacing(string1,trim([i]),39。39。)。 end。 {string1:=replacing(string1,39。82 71 14 01 08 39。,39。39。)。 string1:=replacing(string1,39。81 33 00 00 09 80 33 00 00 08 39。,39。39。)。 } end。 {if trim(string1) 39。39。 then begin (39。接收39。+string1)。 Tmr_Rtn_Str[1]:= string1 end。} if trim(string1) 39。39。 then begin (39。接收39。+string1)。 for i:=1 to 16 do begin if Tmr_Qry_Str[i]=39。01 03 00 00 00 0539。 then begin Tmr_Rtn_Str[i]:= string1。 Tmr_Qry_Str[i]:=39。39。 end else Tmr_Qry_Str[i]:=39。39。 end。 end。end。//==============================清除MEMO文本框中的數(shù)據(jù)============================procedure (Sender: TObject)。begin 。end。procedure (Sender: TObject)。begin :=39。狀態(tài):已開始過濾39。end。procedure (Sender: TObject)。begin :=39。狀態(tài):已停止過濾39。end。procedure (Sender: TObject)。begin 。end。//查詢狀態(tài)函數(shù)function Return_Sta_Sting(SqrStr:string):String。vari:integer。Cur_CRC16Str,End_Sqr_Str:string。begin for i:=1 to 32 do //循環(huán)地址碼1~32,將查詢返回值保存至數(shù)組 begin if strtoint(copy(Trimplace(SqrStr),1,2))=i then begin Cur_CRC16Str:=returnCRC16(SqrStr)。 //計算CRC16校驗碼 End_Sqr_Str:=SqrStr +39。 39。+Cur_CRC16Str。 //最終查詢字符串 sentcustom(End_Sqr_Str)。 //發(fā)送查詢指令 Result:=End_Sqr_Str end end。 end。//定時返回狀態(tài)值procedure (Sender: TObject)。vari,Ad_id:integer。 //循環(huán)用整數(shù)變量Tmr_Qry_Str1:string。 //定時器狀態(tài)查詢字符串變量Tmr_Rtn_Str1:string。 //定時器狀態(tài)返回字符串變量begin Tmr_Qry_Str1:=39。01 03 00 00 00 0539。 //查詢字符串 Ad_id:=StrToInt(39。$39。+)。 //查詢字符串地址碼 try For i:=1 to 16 do begin if i=Ad_id then begin Tmr_Qry_Str[i]:=Tmr_Qry_Str1。 //為狀態(tài)查詢字符串?dāng)?shù)組賦值 Return_Sta_Sting(Tmr_Qry_Str1)。 //執(zhí)行狀態(tài)查詢 Tmr_Rtn_Str1:=Trimplace(Tmr_Rtn_Str[i])。 //狀態(tài)返回值 //:=Tmr_Rtn_Str1。 end。 if (Tmr_Rtn_Str139。39。) and (copy(Tmr_Rtn_Str1,5,2)=39。0A39。) and (round(length(Tmr_Rtn_Str1)/2)=15) then begin :=Tmr_Rtn_Str1。 :=IntToStr(trunc(StrToInt(39。$39。+copy(Tmr_Rtn_Str1,7,4))/10))。 //當(dāng)前溫度 :=。 :=39。.39。+IntToStr(StrToInt(39。$39。+copy(Tmr_Rtn_Str1,7,4))(trunc(StrToInt(39。$39。+copy(Tmr_Rtn_Str1,7,4))/10))*10)。 :=IntToStr(trunc(StrToInt(39。$39。+copy(Tmr_Rtn_Str1,11,4))/10))。 //設(shè)置溫度 :=。 if StrToInt(39。$39。+copy(Tmr_Rtn_Str1,15,4))=1 then