📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, OleCtrls, DataCenterXControl_TLB;
type
TForm1 = class(TForm)
Button1: TButton;
Button3: TButton;
Button2: TButton;
Edit1: TEdit;
Memo1: TMemo;
DataCenterX1: TDataCenterX;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DataCenterX1DTULogin(Sender: TObject; const DTUID,
PWD: WideString; Status: Integer);
procedure DataCenterX1DTUData(Sender: TObject; const DTUID: WideString;
DataLen: Integer);
procedure FormCreate(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var DTUID,PWD:widestring;
begin
DTUID:='zsgprs01';
PWD:='123456';
DataCenterX1.AddDTU(DTUID,PWD);
if DataCenterX1.StartService(65000)=0 then Memo1.Lines.Add('服务启动成功')
else Memo1.Lines.Add('服务启动失败');
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if DataCenterX1.StopService=0 then Memo1.Lines.Add('服务停止成功')
else Memo1.Lines.Add('服务停止失败');
end;
procedure TForm1.Button2Click(Sender: TObject);
var DTUID,Buf:widestring;
P:Pchar;
k:integer;
s:string;
begin
DTUID:='zsgprs01'; s:=edit1.Text;
SetLength(Buf,length(s));
P:=@Buf[1];
for k:=1 to length(s) do p[k-1]:=s[k];
DataCenterX1.SendData(DTUID,Buf,length(s));
Memo1.Lines.Add('发送数据:'+s);
end;
procedure TForm1.DataCenterX1DTULogin(Sender: TObject; const DTUID,
PWD: WideString; Status: Integer);
begin
case status of
0: memo1.lines.Add(datetimetostr(now)+' '+'收到登录包,dtuid='+dtuid+','+'密码='+pwd+','+'登录成功');
-1: memo1.lines.Add(datetimetostr(now)+' '+'收到登录包,dtuid='+dtuid+','+'密码='+pwd+','+'登录失败,密码错误');
-2: memo1.lines.Add(datetimetostr(now)+' '+'收到登录包,dtuid='+dtuid+','+'密码='+pwd+','+'登录失败,DTUID非法');
end;
end;
procedure TForm1.DataCenterX1DTUData(Sender: TObject;
const DTUID: WideString; DataLen: Integer);
var Buf:widestring;
i:integer;
s:string;
p:pchar;
begin
setlength(Buf,datalen);
datacenterx1.ReadData(dtuid,Buf,datalen);
p:=@Buf[1];
s:='';
for i:=1 to DataLen do s:=s+p[i-1];
memo1.lines.Add('收到数据包,dtuid='+dtuid+','+'数据内容:'+s);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DataCenterX1.Init;
DataCenterX1.SetDataFormat(0);
end;
procedure TForm1.Button4Click(Sender: TObject);
var phoneno,protocol,sin_addr,local_addr,logon_time,update_time:widestring;
sin_port,local_port,status,sendcount,readcount:integer;
begin
DataCenterX1.GetDTUInfo('zsgprs01',phoneno,protocol,sin_addr,sin_port,local_addr,local_port,logon_time,Update_Time,Status,SendCount,ReadCount);
memo1.Lines.Add('zsgprs01 DTU信息:');
memo1.Lines.Add('phoneno='+phoneno);
memo1.Lines.Add('sin_addr='+sin_addr);
memo1.Lines.Add('sin_port='+inttostr(sin_port));
memo1.Lines.Add('local_addr='+local_addr);
memo1.Lines.Add('local_port='+inttostr(local_port));
memo1.Lines.Add('logon_time='+logon_time);
memo1.Lines.Add('update_time='+update_time);
if status=0 then memo1.Lines.Add('status=0:不在线');
if status=2 then memo1.Lines.Add('status=2:在线');
memo1.Lines.Add('sendcount='+inttostr(sendcount));
memo1.Lines.Add('readcount='+inttostr(readcount));
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
DataCenterX1.StopService;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -