📄 remotecfg.pas
字号:
begin
{
// if xmodem1.Opened=false then exit;
if xmodem1.ReadString(s) then
begin
tip:='';
for i:=1 to length(s) do
begin
tip:=tip+hextostr(ord(s[i]))+' ';
end;
frmremotecfg.memo1.lines.add('上行:'+tip);
end;
}
end;
procedure TfrmRemoteCfg.suiButton1Click(Sender: TObject);
begin
{ if xmodem1.Opened then xmodem1.CloseDevice;
try
xmodem1.DeviceName:=edit1.text;
xmodem1.BaudRate:=br9600;
if combobox1.text='9600' then xmodem1.BaudRate:=br9600;
if combobox1.text='4800' then xmodem1.BaudRate:=br4800;
if combobox1.text='2400' then xmodem1.BaudRate:=br2400;
if combobox1.text='1200' then xmodem1.BaudRate:=br1200;
if combobox1.text='19200' then xmodem1.BaudRate:=br19200;
if combobox1.text='38400' then xmodem1.BaudRate:=br38400;
xmodem1.OpenDevice;
if xmodem1.Opened then statusbar1.Panels[1].text:=edit1.text+'打开成功,BaudRate='+combobox1.text
else statusbar1.Panels[1].text:=edit1.text+'打开失败';
except
statusbar1.Panels[1].text:=edit1.text+'打开失败';
end;
}
end;
procedure TfrmRemoteCfg.CheckBox1Click(Sender: TObject);
begin
//memo1.Visible:=checkbox1.Checked;
// panel3.Visible:=checkbox1.Checked;
end;
procedure TfrmRemoteCfg.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
if change=ctState then
begin
if Item.Selected then
begin
SetActiveItem(listview1.ItemIndex);
end;
end;
end;
procedure AddParamItems;
begin
frmremotecfg.ListView1.Items.Clear;
AddParamItem(hextostr(CMD_WORKMODE),'DTU工作模式','','');
AddParamItem(hextostr(CMD_APN),'APN 名称','','');
AddParamItem(hextostr(CMD_APNUSERNAME),'APN 访问用户名','','');
AddParamItem(hextostr(CMD_APNPWD),'APN 访问密码','','');
AddParamItem(hextostr(CMD_BAUDRATE),'串口波特率','','');
AddParamItem(hextostr(CMD_DNSIP),'DNS服务器IP地址','','域名解析服务器的IP地址');
AddParamItem(hextostr(CMD_CENTER1DN),'数据采集中心1域名','','用于DTU自动解析出采集中心1的IP地址');
AddParamItem(hextostr(CMD_CENTER2DN),'数据采集中心2域名','','用于DTU自动解析出采集中心2的IP地址');
AddParamItem(hextostr(CMD_CENTER3DN),'数据采集中心3域名','','用于DTU自动解析出采集中心3的IP地址');
AddParamItem(hextostr(CMD_CENTER1IP),'数据采集中心1 IP地址','','');
AddParamItem(hextostr(CMD_CENTER2IP),'数据采集中心2 IP地址','','');
AddParamItem(hextostr(CMD_CENTER3IP),'数据采集中心3 IP地址','','');
AddParamItem(hextostr(CMD_SOCKETTYPE),'通信协议','','TCP/UDP通信协议选择');
AddParamItem(hextostr(CMD_BEATTIME),'心跳包时间间隔','','');
AddParamItem(hextostr(CMD_DTUID),'DTU身份识别ID','','8为ID号,在同一系统内不可重复');
AddParamItem(hextostr(CMD_DTUPHNO),'DTU电话号码','','最大长度为16个数字,在同一系统内不可重复');
AddParamItem(hextostr(CMD_LOGINPWD),'数据采集中心登陆口令','','6位ASCII字符');
AddParamItem(hextostr(CMD_LOCALPORT),'DTU本地端口号','','DTU设备的本地Socket端口号');
AddParamItem(hextostr(CMD_CENTERPORT),'采集中心侦听端口号','','采集中心的Socket侦听端口号');
AddParamItem(hextostr(CMD_KEYCHR),'透明模式数据结束符','','用于判断用户数据结束的字符(00-FF),空表示没有结束符');
AddParamItem(hextostr(CMD_KEYTIME),'透明模式数据帧间隔时间','','用于判断用户数据包结束的时间间隔(0-6500),单位为0.1秒');
//---super param------------
if G_SuperFlag then
begin
{
AddParamItem(hextostr(CMD_MODULELOSETIME),'GSM引擎故障监测时间','','');
AddParamItem(hextostr(CMD_GSMLOSETIME),'GSM掉网监测时间','','');
AddParamItem(hextostr(CMD_GPRSLOSETIME),'GPRS掉线监测时间','','');
}
AddParamItem(hextostr(CMD_ATMONTIME),'★AT命令监测间隔时间','','0-6500,单位:秒,0表示不监测');
AddParamItem(hextostr(CMD_ATLOSSMAXCOUNT),'★GSM引擎不响应最大次数','','1-256次,0表示256次');
AddParamItem(hextostr(CMD_ATMAXWAIT),'★AT命令响应最长时间','','1-6500,单位:秒,0表示采用默认值(6秒)');
AddParamItem(hextostr(CMD_GSMLOSSMAXCOUNT),'★GSM网络掉线最大次数','','1-256次,0表示256次');
AddParamItem(hextostr(CMD_GPRSMONTIME),'★GPRS网络在线监测时间','','1-6500,单位:秒,0表示不监测');
AddParamItem(hextostr(CMD_GPRSLOSSMAXCOUNT),'★GPRS网络掉线最大次数','','1-256次,0表示256次');
AddParamItem(hextostr(CMD_GPRSMAXWAIT),'★GPRS网络响应最长时间','','1-6500,单位:秒,0表示采用默认值(10秒)');
AddParamItem(hextostr(CMD_CENTERLOSSMAXCOUNT),'★数据中心掉线最大次数','','1-256次,0表示256次');
AddParamItem(hextostr(CMD_BEATMAXWAIT),'★心跳响应最长时间','','1-6500,单位:秒,0表示采用默认值(10秒)');
AddParamItem(hextostr(CMD_LOGINMAXWAIT),'★登录响应最长时间','','1-6500,单位:秒,0表示采用默认值(10秒)');
AddParamItem(hextostr(CMD_LOGINFAILMAXCOUNT),'★登录失败最大次数','','1-256次,0表示256次');
AddParamItem(hextostr(CMD_TCPWINSIZE),'★TCP滑动窗口大小','','1-255,0表示采用默认值(4)');
AddParamItem(hextostr(CMD_TCPOVT_RESENDBEGINTIME),'★TCP超时重传开始时间','','1-6500,单位:秒,0表示采用默认值(5秒)');
AddParamItem(hextostr(CMD_TCPOVT_RESENDCOUNT),'★TCP超时重传最大次数','','1-256次,0表示256次');
AddParamItem(hextostr(CMD_DNSMAXWAIT),'★DNS响应最长时间','','1-6500,单位:秒,0表示采用默认值(10秒)');
AddParamItem(hextostr(CMD_DNSFAILMAXCOUNT),'★DNS失败最大次数','','1-256次,0表示256次');
end;
end;
procedure TfrmRemoteCfg.FormActivate(Sender: TObject);
begin
{
xmodem1.OpenDevice;
// showmessage('FormActivate:xmodem1.OpenDevice');
if xmodem1.Opened then statusbar1.Panels[1].text:=edit1.text+'打开成功'
else statusbar1.Panels[1].text:=edit1.text+'打开失败';
}
AddParamItems;
pagecontrol1.ActivePageIndex:=0;
timer1.Enabled:=true;
end;
function getip(valuestr:string):string;
var i:integer;
s,a,b,c,d:string;
rets:string;
begin
rets:='0000';
s:=valuestr;
i:=pos('.',s);
if i=0 then
begin
result:='';
exit;
end;
a:=copy(s,1,i-1);
s:=copy(s,i+1,length(s));
i:=pos('.',s);
if i=0 then
begin
result:='';
exit;
end;
b:=copy(s,1,i-1);
s:=copy(s,i+1,length(s));
i:=pos('.',s);
if i=0 then
begin
result:='';
exit;
end;
c:=copy(s,1,i-1);
s:=copy(s,i+1,length(s));
d:=s;
try
if ((strtoint(a)>255) or (strtoint(a)<0)) then
begin
result:=''; exit;
end;
if ((strtoint(b)>255) or (strtoint(b)<0)) then
begin
result:=''; exit;
end;
if ((strtoint(c)>255) or (strtoint(c)<0)) then
begin
result:=''; exit;
end;
if ((strtoint(d)>255) or (strtoint(d)<0)) then
begin
result:=''; exit;
end;
rets[1]:=chr(strtoint(a));
rets[2]:=chr(strtoint(b));
rets[3]:=chr(strtoint(c));
rets[4]:=chr(strtoint(d));
except
result:='';
exit;
end;
result:=rets;
end;
function getport(valuestr:string):string;
var portnum:integer;
begin
try
portnum:=strtoint(valuestr);
if portnum>65535 then
begin
result:=''; exit;
end;
except
result:='';
exit;
end;
result:=chr(portnum div 256)+chr(portnum mod 256);
end;
function getlosetime(valuestr:string):string;
var losetime:integer;
begin
try
losetime:=strtoint(valuestr);
if losetime>65535 then
begin
result:=''; exit;
end;
except
result:='';
exit;
end;
result:=chr(losetime div 256)+chr(losetime mod 256);
end;
function getkeytime(valuestr:string):string;
var keytime:integer;
begin
try
keytime:=strtoint(valuestr);
if keytime>6500 then
begin
result:=''; exit;
end;
except
result:='';
exit;
end;
result:=chr(keytime div 256)+chr(keytime mod 256);
end;
function getkeychr(valuestr:string):string;
begin
if valuestr='' then result:=chr($FF)+chr($FF)
else
begin
result:=chr($0)+chr(strtohex(valuestr));
end;
end;
function getbeattime(valuestr:string):string;
var beattime:integer;
begin
try
beattime:=strtoint(valuestr);
if beattime>65535 then
begin
result:=''; exit;
end;
except
result:='';
exit;
end;
result:=chr(beattime div 256)+chr(beattime mod 256);
end;
function getcountval(valuestr:string):string;
var count:byte;
begin
try
count:=strtoint(valuestr);
if count>256 then
begin
result:=''; exit;
end;
except
result:='';
exit;
end;
result:=chr(count);
end;
function get6500time(valuestr:string):string;
var itime:integer;
begin
try
itime:=strtoint(valuestr);
if itime>6500 then
begin
result:=''; exit;
end;
except
result:='';
exit;
end;
result:=chr(itime div 256)+chr(itime mod 256);
end;
function isdigitstr(valuestr:string):boolean;
var r:integer;
begin
try
r:=strtoint(valuestr)
except
result:=false;
exit;
end;
result:=true;
end;
function WriteParamValue(cmdid:string;valuestr:string):integer;
var r:integer;
cmd:byte;
begin
frmremotecfg.StatusBar1.Panels[3].Text:='正在设置,请稍候...';
cmd:=strtohex(cmdid);
case cmd of
CMD_WORKMODE:
begin
if valuestr='透明传输模式' then r:=SetWorkMode(0)
else if valuestr='用户控制模式' then r:=SetWorkMode(1)
else if valuestr='工业MODEM模式' then r:=SetWorkMode(2)
else r:=-3;
end;
CMD_SOCKETTYPE:
begin
if valuestr='TCP' then r:=SetSocketType(0)
else if valuestr='UDP' then r:=SetSocketType(1)
else r:=-3;
end;
CMD_APN: r:=SetAPN(valuestr);
CMD_APNUSERNAME: r:=SetAPNUserName(valuestr);
CMD_APNPWD: r:=SetAPNPwd(valuestr);
CMD_BAUDRATE: r:=SetBaudrate(valuestr);
CMD_DNSIP:
begin
if getip(valuestr)<>'' then r:=SetDNSIP(getip(valuestr))
else r:=-3;
end;
CMD_CENTER1DN: r:=SetCenter1DN(valuestr);
CMD_CENTER2DN: r:=SetCenter2DN(valuestr);
CMD_CENTER3DN: r:=SetCenter3DN(valuestr);
CMD_CENTER1IP:
begin
if getip(valuestr)<>'' then
begin
r:=SetCenter1IP(getip(valuestr));
end
else r:=-3;
end;
CMD_CENTER2IP:
begin
if getip(valuestr)<>'' then r:=SetCenter2IP(getip(valuestr))
else r:=-3;
end;
CMD_CENTER3IP:
begin
if getip(valuestr)<>'' then r:=SetCenter3IP(getip(valuestr))
else r:=-3;
end;
CMD_LOCALPORT:
begin
if getport(valuestr)<>'' then r:=SetLocalPort(getport(valuestr))
else r:=-3;
end;
CMD_CENTERPORT:
begin
if getport(valuestr)<>'' then r:=SetCenterPort(getport(valuestr))
else r:=-3;
end;
CMD_BEATTIME:
begin
if getbeattime(valuestr)<>'' then r:=SetBeatTime(getbeattime(valuestr))
else r:=-3;
end;
CMD_DTUID:
begin
if length(valuestr)=8 then r:=SetDtuId(valuestr)
else r:=-3;
end;
CMD_DTUPHNO: r:=SetDtuPhno(valuestr);
CMD_LOGINPWD:
begin
if length(valuestr)=6 then r:=SetLoginPwd(valuestr)
else r:=-3;
end;
CMD_KEYCHR:
begin
{
if getkeychr(valuestr)<>'' then r:=SetKeyChr(getkeychr(valuestr))
else r:=-3;
}
r:=SetKeyChr(getkeychr(valuestr));
end;
CMD_KEYTIME:
begin
if getkeytime(valuestr)<>'' then r:=SetKeyTime(getkeytime(valuestr))
else r:=-3;
end;
//----------super
CMD_ATMONTIME:
begin
if get6500time(valuestr)<>'' then r:=SetAtMonTime(get6500time(valuestr))
else r:=-3;
end;
CMD_ATMAXWAIT:
begin
if get6500time(valuestr)<>'' then r:=SetATMAXWAIT(get6500time(valuestr))
else r:=-3;
end;
CMD_GPRSMONTIME:
begin
if get6500time(valuestr)<>'' then r:=SetGPRSMONTIME(get6500time(valuestr))
else r:=-3;
end;
CMD_GPRSMAXWAIT:
begin
if get6500time(valuestr)<>'' then r:=SetGPRSMAXWAIT(get6500time(valuestr))
else r:=-3;
end;
CMD_BEATMAXWAIT:
begin
if get6500time(valuestr)<>'' then r:=SetBEATMAXWAIT(get6500time(valuestr))
else r:=-3;
end;
CMD_LOGINMAXWAIT:
begin
if get6500time(valuestr)<>'' then r:=SetLOGINMAXWAIT(get6500time(valuestr))
else r:=-3;
end;
CMD_TCPOVT_RESENDBEGINTIME:
begin
if get6500time(valuestr)<>'' then r:=SetTCPOVT_RESENDBEGINTIME(get6500time(valuestr))
else r:=-3;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -