📄 unit3.pas
字号:
//构造上位机报文
SetLength(mByteAry,100);
Send_len:=0;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
Send_len := Send_len+1;
mByteAry[Send_len] := $01; //命令
GetMem(Buffer,10);
len := strlen(pchar(SETADDR.Text));
mByteAry[2] := 5+len; //长度
strcopy(buffer,pchar(SETADDR.Text)); //设备地址
for i:=0 to len-1 do
begin
Send_len := Send_len+1;
mByteAry[Send_len]:=byte((Buffer+i)^);
end;
FreeMem(Buffer);
len := strlen(pchar(mByteAry));
mByteAry[len] := CalCheck(mByteAry,len);
mByteAry[len+1] :=$0;
MSComm.Output :=mByteAry; //发送命令
end;
procedure TInit_Machine.Button5Click(Sender: TObject);
var
len:byte;
temp_port,temp_time:word;
mByteAry: array of byte;
Send_len:byte;
temp1,temp2:byte;
begin
//构造上位机报文
SetLength(mByteAry,50); //置发送缓冲区为此,发送时直接发送50
Send_len:=0;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 5+8; //长度
Send_len := Send_len+1;
mByteAry[Send_len] :=$02; //命令
Send_len := Send_len+1;
mByteAry[Send_len]:=byte(strToint(IP1.Text));//ip地址
Send_len := Send_len+1;
mByteAry[Send_len]:=byte(strToint(IP2.Text));
Send_len := Send_len+1;
mByteAry[Send_len]:=byte(strToint(IP3.Text));
Send_len := Send_len+1;
mByteAry[Send_len]:=byte(strToint(IP4.Text));
temp_port:=strToint(PORTNUM.Text); //port
Send_len := Send_len+1;
mByteAry[Send_len]:=(temp_port shr 8) and $ff;
Send_len := Send_len+1;
mByteAry[Send_len]:=temp_port and $ff;
temp_time := strToint(time_initer.Text); //时间间隔
Send_len := Send_len+1;
mByteAry[Send_len]:=(temp_time shr 8) and $ff;
temp1:= mByteAry[Send_len];
//if temp1=0 then //调整,如果是零,串口将不予发送
// mByteAry[Send_len]:=$ff;
Send_len := Send_len+1;
mByteAry[Send_len]:=temp_time and $ff;
Send_len := Send_len+1;
mByteAry[Send_len] := CalCheck(mByteAry,Send_len);
Send_len := Send_len+1;
mByteAry[Send_len] :=$0;
MSComm.Output :=mByteAry; //发送命令
end;
procedure TInit_Machine.Button7Click(Sender: TObject);
var
len,i:byte;
mByteAry: array of byte;
buffer:pchar;
Send_len:byte;
begin
//构造上位机报文
SetLength(mByteAry,100);
Send_len:=0;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
Send_len := Send_len+1;
mByteAry[Send_len] := $03; //命令
GetMem(Buffer,30);
len := strlen(pchar(APNSET.Text));
mByteAry[2] := 5+len; // 长度
strcopy(buffer,pchar(APNSET.Text)); //APN
for i:=0 to len do
begin
Send_len := Send_len+1;
mByteAry[Send_len]:=byte((Buffer+i)^);
end;
FreeMem(Buffer);
len := strlen(pchar(mByteAry));
mByteAry[len] := CalCheck(mByteAry,len);
mByteAry[len+1] :=$0;
MSComm.Output :=mByteAry; //发送命令
end;
procedure TInit_Machine.FormCreate(Sender: TObject);
begin
Button3.Enabled:=FALSE;
Button5.Enabled:=FALSE;
DTU_CLICK.Enabled:=FALSE;
end;
procedure TInit_Machine.DTU_CLICKClick(Sender: TObject);
var
len:byte;
mByteAry: array of byte;
Send_len:byte;
i:byte;
buffer:pchar;
begin
//构造上位机报文
SetLength(mByteAry,250); //置发送缓冲区为此,发送时直接发送50
len := strlen(pchar(memo_text.Text));
if len=0 then
exit;
Send_len:=0;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 5+len; //长度
Send_len := Send_len+1;
mByteAry[Send_len] :=$50; //命令
GetMem(Buffer,255);
strcopy(buffer,pchar(memo_text.Text));
for i:=0 to len-1 do
begin
Send_len := Send_len+1;
mByteAry[Send_len]:=byte((Buffer+i)^);
end;
FreeMem(Buffer);
Send_len := Send_len+1;
mByteAry[Send_len] := CalCheck(mByteAry,Send_len);
Send_len := Send_len+1;
mByteAry[Send_len] :=$0;
MSComm.Output :=mByteAry; //发送命令
end;
procedure TInit_Machine.send_smsClick(Sender: TObject);
var
len:byte;
mByteAry: array of byte;
Send_len:byte;
i:byte;
buffer:pchar;
begin
//构造上位机报文
SetLength(mByteAry,250); //置发送缓冲区为此,发送时直接发送50
len := strlen(pchar(sms_content.Text));
if (len=0) or (len>50) then
begin
ShowMessage('输入错误');
exit;
end;
Send_len:=0;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 5+len; //长度
Send_len := Send_len+1;
mByteAry[Send_len] :=$80; //命令
GetMem(Buffer,255);
strcopy(buffer,pchar(sms_content.Text));
for i:=0 to len-1 do
begin
Send_len := Send_len+1;
mByteAry[Send_len]:=byte((Buffer+i)^);
end;
FreeMem(Buffer);
Send_len := Send_len+1;
mByteAry[Send_len] := CalCheck(mByteAry,Send_len);
Send_len := Send_len+1;
mByteAry[Send_len] :=$0;
MSComm.Output :=mByteAry; //发送命令
end;
procedure TInit_Machine.phone_setClick(Sender: TObject);
var
len:byte;
mByteAry: array of byte;
Send_len:byte;
i:byte;
buffer:pchar;
begin
//构造上位机报文
SetLength(mByteAry,250); //置发送缓冲区为此,发送时直接发送50
Send_len:=0;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 36;
GetMem(Buffer,255);
strcopy(buffer,pchar(phon1.Text));
strcat(buffer,pchar(phon2.Text));
strcat(buffer,pchar(phon3.Text));
strcat(buffer,pchar(phon4.Text));
strcat(buffer,pchar(phon5.Text));
strcat(buffer,pchar(phon6.Text));
strcat(buffer,pchar(phon7.Text));
strcat(buffer,pchar(phon8.Text));
len := strlen(buffer);
Send_len := Send_len+1;
mByteAry[Send_len] := 5+len; //长度
Send_len := Send_len+1;
mByteAry[Send_len] :=$A0; //命令
if (len=0) then
begin
ShowMessage('输入错误');
exit;
end;
for i:=0 to len-1 do
begin
Send_len := Send_len+1;
mByteAry[Send_len]:=byte((Buffer+i)^);
end;
FreeMem(Buffer);
Send_len := Send_len+1;
mByteAry[Send_len] := CalCheck(mByteAry,Send_len);
Send_len := Send_len+1;
mByteAry[Send_len] :=$0;
MSComm.Output :=mByteAry; //发送命令
end;
procedure TInit_Machine.setcentClick(Sender: TObject);
var
len,i:byte;
mByteAry: array of byte;
buffer:pchar;
Send_len:byte;
begin
//构造上位机报文
SetLength(mByteAry,100);
Send_len:=0;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
mByteAry[Send_len] := 36;
Send_len := Send_len+1;
len := strlen(pchar(center_list.Text));
mByteAry[Send_len] := 5+len; //长度
Send_len := Send_len+1;
mByteAry[Send_len] := $A1; //命令
GetMem(Buffer,50);
strcopy(buffer,pchar(center_list.Text));
for i:=0 to len-1 do
begin
Send_len := Send_len+1;
mByteAry[Send_len]:=byte((Buffer+i)^);
end;
FreeMem(Buffer);
Send_len := Send_len+1;
mByteAry[Send_len] := CalCheck(mByteAry,Send_len);
Send_len := Send_len+1;
mByteAry[Send_len] :=$0;
MSComm.Output :=mByteAry; //发送命令
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -