如何使用SPCOMM接收資料(ReceiveData) |
尚未結案
|
pu168888
一般會員 發表:4 回覆:2 積分:1 註冊:2004-06-18 發送簡訊給我 |
|
juneo
高階會員 發表:103 回覆:190 積分:118 註冊:2004-05-13 發送簡訊給我 |
unit comm; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, SPComm; type
TFCOMM = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Button3: TButton;
Comm1: TComm;
Memo2: TMemo;
ComboBox1: TComboBox;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word);
private
{ Private declarations }
public
{ Public declarations }
end; var
FCOMM: TFCOMM;
viewstring:string;
i:integer;
rbuf:array[1..99] of byte;
sbuf:array[1..99] of byte; implementation {$R *.dfm} procedure TFCOMM.Button1Click(Sender: TObject);
begin
comm1.StopComm;
//comm1.CommName := combobox1.Text;
comm1.StartComm;
Memo1.Lines.Clear;
Memo2.Lines.Clear;
end; procedure TFCOMM.Button2Click(Sender: TObject);
begin
comm1.StopComm;
end; procedure senddata; var i:integer; commflg:boolean; begin viewstring:='' ; commflg:=true; for i:=1 to 9 do begin
if not fcomm.comm1.writecommdata(@sbuf[i],1) then begin
commflg:=false;
break;
end; //發送時位元組間的延時
//sleep(2);
viewstring:=viewstring inttohex(sbuf[i],2);
end; viewstring:='發送' viewstring;
fcomm.memo1.lines.add(viewstring);
fcomm.memo1.lines.add('' );
if not commflg then messagedlg('發送失敗 !' ,mterror,[mbyes],0); end; procedure TFCOMM.Button3Click(Sender: TObject);
begin
sbuf[1]:=byte($40); //幀頭
sbuf[2]:=byte($30); //命令號
sbuf[3]:=byte($31);
sbuf[4]:=byte($32);
sbuf[5]:=byte($36);
sbuf[6]:=byte($36);
sbuf[7]:=byte($37);
sbuf[8]:=byte($0D);
sbuf[9]:=byte($0A);//幀尾
senddata;//調用發送函數 end; procedure TFCOMM.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;BufferLength: Word); //接收資料段
var
i:integer; begin
viewstring:='' ; move(buffer^,pchar(@rbuf)^,bufferlength);
for i:=1 to bufferlength do
viewstring:=viewstring inttohex(rbuf[i],bufferlength) '' ;
viewstring:='接收' viewstring;
memo2.lines.add(viewstring);
memo2.lines.add('' ); end; end. 你只要把接收資料段的程式複製過去修改一下就可以ㄌ
你test看看以上資料也是我由網路上找到的 分享比獲得更快樂
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |