📄 remotecfg.~pas
字号:
frmremotecfg.Memo1.Lines.Add(frmremotecfg.StatusBar1.Panels[3].Text);
result:=r;
end;
function ReadData(socket:integer):string;
var a,s:string;
len,i:integer;
ACC:word;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CTRL_READDATA,chr(socket div 256)+chr(socket mod 256)));
s:=waitcomdata(4000*8);
if s='' then
begin
frmremotecfg.StatusBar1.Panels[3].Text:='[数据读取失败,设备无响应!]';
frmremotecfg.memo1.Lines.add(frmremotecfg.StatusBar1.Panels[3].Text);
result:='';
exit;
end;
if ((s[1]<>chr(FRAME_HEAD1)) or (s[2]<>chr(FRAME_HEAD2))) then
begin
frmremotecfg.StatusBar1.Panels[3].Text:='[数据读取失败,返回数据包头非法!]';
frmremotecfg.memo1.Lines.add(frmremotecfg.StatusBar1.Panels[3].Text);
result:='';
exit;
end;
if s[5]<>chr(CMD_REPLYDATA) then
begin
frmremotecfg.StatusBar1.Panels[3].Text:='[数据读取失败,返回数据包命令字非法!]';
frmremotecfg.memo1.Lines.add(frmremotecfg.StatusBar1.Panels[3].Text);
result:='';
exit;
end;
len:=ord(s[3])*256+ord(s[4]);
ACC:=0;
for I:=3 to LENGTH(S)-2 do
BEGIN
ACC:=ACC+ord(S[I]);
END;
if acc<>ord(s[length(s)-1])*256+ord(s[length(s)]) then
begin
frmremotecfg.StatusBar1.Panels[3].Text:='[数据读取失败,返回数据包校验错!]';
frmremotecfg.memo1.Lines.add(frmremotecfg.StatusBar1.Panels[3].Text);
result:='';
exit;
end;
a:=copy(s,6,len-3);
result:=a;
end;
function Disconnect(socket:integer):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CTRL_DISCONNECT,chr(socket div 256)+chr(socket mod 256)));
result:=waitreply;
end;
function CloseSocket(socket:integer):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CTRL_CLOSESOCKET,chr(socket div 256)+chr(socket mod 256)));
result:=waitreply;
end;
//---------------------------------------------------
function EnterTransMode:integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_ENTERTRANSMODE,''));
result:=waitreply;
end;
function EnterATMode:integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_ENTERATMODE,''));
result:=waitreply;
end;
//---------setting funcitons-----------------------------
function Reset:integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_RESET,''));
result:=waitreply;
end;
function GetStatus:integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CTRL_GETSTATUS,''));
result:=wait_status;
end;
function SetStatus(status:integer):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CTRL_SETSTATUS,chr(status)));
result:=waitreply;
end;
function SetWorkMode(workmode:integer):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_WORKMODE,chr(workmode)) );
result:=waitreply;
end;
function SetSocketType(sockettype:integer):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_SOCKETTYPE,chr(sockettype)) );
result:=waitreply;
end;
function SetAPN(APN:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_APN,APN) );
result:=waitreply;
end;
function SetAPNUserName(accstr:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_APNUSERNAME,accstr));
result:=waitreply;
end;
function SetAPNPwd(pwdstr:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_APNPWD,pwdstr));
result:=waitreply;
end;
function SetBaudrate(Baudrate:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_BAUDRATE,Baudrate));
result:=waitreply;
end;
function SetDNSIP(DNSIP:string):integer;//注意此时的dnsip是四字节的数值
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_DNSIP,DNSIP));
result:=waitreply;
end;
function SetCenter1DN(CenterDN:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTER1DN,CenterDN));
result:=waitreply;
end;
function SetCenter2DN(CenterDN:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTER2DN,CenterDN));
result:=waitreply;
end;
function SetCenter3DN(CenterDN:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTER3DN,CenterDN));
result:=waitreply;
end;
function SetCenter1IP(CenterIP:string):integer;//注意此时的centerip是四字节的数值
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTER1IP,CenterIP));
result:=waitreply;
end;
function SetCenter2IP(CenterIP:string):integer;//注意此时的centerip是四字节的数值
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTER2IP,CenterIP));
result:=waitreply;
end;
function SetCenter3IP(CenterIP:string):integer;//注意此时的centerip是四字节的数值
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTER3IP,CenterIP));
result:=waitreply;
end;
function SetLocalPort(Port:string):integer;//注意此时的port是2字节的数值
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_LOCALPORT,port));
result:=waitreply;
end;
function SetCenterPort(Port:string):integer;//注意此时的port是2字节的数值
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTERPORT,port));
result:=waitreply;
end;
function SetBeatTime(beattime:string):integer;//注意此时的beattime是2字节的数值
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_BEATTIME,beattime));
result:=waitreply;
end;
function SetKeyTime(keytime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_KEYTIME,keytime));
result:=waitreply;
end;
function SetDtuId(Id:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_DTUID,Id));
result:=waitreply;
end;
function SetDtuPhno(Phno:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_DTUPHNO,Phno));
result:=waitreply;
end;
function SetLoginPwd(Pwd:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_LOGINPWD,Pwd));
result:=waitreply;
end;
function SetDefaultCfg:integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_SETDEFAULT,''));
result:=waitreply;
end;
function SetKeyChr(KeyChr:string):integer;
begin
// G_KEYCHR:=ord(keychr[1]);
G_KEYCHR:=keychr;
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_KEYCHR,KeyChr));
result:=waitreply;
end;
//-------super params
function SetATMonTime(atmontime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_ATMONTIME,atmontime));
result:=waitreply;
end;
function SetATLossMaxCount(count:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_ATLOSSMAXCOUNT,count));
result:=waitreply;
end;
function SetATMaxWait(wtime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_ATMAXWAIT,wtime));
result:=waitreply;
end;
function SetGSMLossMaxCount(count:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_GSMLOSSMAXCOUNT,count));
result:=waitreply;
end;
function SetGPRSMonTime(montime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_GPRSMONTIME,montime));
result:=waitreply;
end;
function SetGPRSLossMaxCount(count:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_GPRSLOSSMAXCOUNT,count));
result:=waitreply;
end;
function SetGPRSMaxWait(wtime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_GPRSMAXWAIT,wtime));
result:=waitreply;
end;
function SetCenterLossMaxCount(count:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_CENTERLOSSMAXCOUNT,count));
result:=waitreply;
end;
function SetBeatMaxWait(wtime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_BEATMAXWAIT,wtime));
result:=waitreply;
end;
function SetLoginMaxWait(wtime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_LOGINMAXWAIT,wtime));
result:=waitreply;
end;
function SetLoginFailMaxCount(count:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_LOGINFAILMAXCOUNT,count));
result:=waitreply;
end;
function SetTCPWinSize(size:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_TCPWINSIZE,size));
result:=waitreply;
end;
function SetTCPOVT_ResendBeginTime(btime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_TCPOVT_RESENDBEGINTIME,btime));
result:=waitreply;
end;
function SetTCPOVT_ResendCount(count:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_TCPOVT_RESENDCOUNT,count));
result:=waitreply;
end;
function SetDNSMaxWait(wtime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_DNSMAXWAIT,wtime));
result:=waitreply;
end;
function SetDNSFailMaxCount(count:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_DNSFAILMAXCOUNT,count));
result:=waitreply;
end;
{
function SetModuleLoseTime(losetime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_MODULELOSETIME,losetime));
result:=waitreply;
end;
function SetGSMLoseTime(losetime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_GSMLOSETIME,losetime));
result:=waitreply;
end;
function SetGPRSLoseTime(losetime:string):integer;
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_GPRSLOSETIME,losetime));
result:=waitreply;
end;
}
function GetParamValue(cmds:string):string; //输出为字符串
begin
frmremotecfg.xmodem1.SendString(BuildDataPacket(CMD_GETPARAM,cmds));
result:=waitcomdata(4000*8);
end;
//--------------------------------------------------------------
procedure AddParamItem(CmdID:String;ParamName:String;paramval:string;describe:string);
var listitem:tlistitem;
begin
listitem:=frmremotecfg.ListView1.Items.Add;
listitem.Caption:=cmdid;
listitem.SubItems.Add(paramname);
listitem.SubItems.Add(paramval);
listitem.SubItems.Add(describe);
end;
procedure showedit(maxlen:integer;mask:string);
begin
frmremotecfg.gedit.MaxLength:=maxlen;
geditmask:=mask;
frmremotecfg.gedit.Visible:=true; frmremotecfg.gcombobox.Visible:=false;
end;
procedure showcombo;
begin
frmremotecfg.gedit.Visible:=false; frmremotecfg.gcombobox.Visible:=true;
end;
procedure SetActiveItem(ItemIndex:integer);
var listitem:tlistitem;
cmd:byte;
begin
if frmremotecfg.ListView1.Items[itemindex]=nil then exit;
listitem:=frmremotecfg.listview1.items[itemindex];
frmremotecfg.GLabel.caption:=listitem.subitems[0];
//------prepare values-----------
with frmremotecfg do
begin
gcombobox.Items.clear;
gcombobox.text:=listitem.SubItems[1];
GEdit.text:=listitem.SubItems[1];
cmd:=strtohex(listitem.Caption);
case cmd of
CMD_WORKMODE:
begin
showcombo;
gcombobox.Items.Add('透明传输模式');
gcombobox.Items.Add('用户控制模式');
gcombobox.Items.Add('工业MODEM模式');
end;
CMD_SOCKETTYPE:
begin
showcombo;
gcombobox.Items.Add('TCP');
gcombobox.Items.Add('UDP');
end;
CMD_APN,CMD_APNUSERNAME,CMD_APNPWD: showedit(16,'');
CMD_BAUDRATE:
begin
showcombo;
gcombobox.Items.Add('38400');
gcombobox.Items.Add('19200');
gcombobox.Items.Add('9600');
gcombobox.Items.Add('4800');
gcombobox.Items.Add('2400');
gcombobox.Items.Add('1200');
end;
CMD_DNSIP: showedit(15,'0123456789.');
CMD_CENTER1DN,CMD_CENTER2DN,CMD_CENTER3DN: showedit(32,'');
CMD_CENTER1IP,CMD_CENTER2IP,CMD_CENTER3IP: showedit(15,'0123456789.');
// CMD_LOCALPORT,CMD_CENTERPORT,CMD_BEATTIME,CMD_MODULELOSETIME,CMD_GSMLOSETIME,CMD_GPRSLOSETIME,CMD_KEYTIME: showedit(5,'0123456789');
CMD_LOCALPORT,CMD_CENTERPORT,CMD_BEATTIME,CMD_KEYTIME: showedit(5,'0123456789');
CMD_ATMONTIME,CMD_ATMAXWAIT,CMD_GPRSMONTIME,CMD_GPRSMAXWAIT,CMD_BEATMAXWAIT,CMD_LOGINMAXWAIT,CMD_TCPOVT_RESENDBEGINTIME,CMD_DNSMAXWAIT:showedit(4,'0123456789');
CMD_ATLOSSMAXCOUNT,CMD_GSMLOSSMAXCOUNT,CMD_GPRSLOSSMAXCOUNT,CMD_CENTERLOSSMAXCOUNT,CMD_LOGINFAILMAXCOUNT,CMD_TCPWINSIZE,CMD_TCPOVT_RESENDCOUNT,CMD_DNSFAILMAXCOUNT:showedit(2,'0123456789');
CMD_DTUID:showedit(8,'');
CMD_DTUPHNO:showedit(16,'0123456789');
CMD_LOGINPWD:showedit(6,'');
CMD_KEYCHR:
begin
showedit(3,'0123456789ABCDEF');
end;
end;
end;
end;
procedure TfrmRemoteCfg.FormCreate(Sender: TObject);
begin
G_SuperFlag:=false;
G_KEYCHR:=chr($FF)+chr($FF);
G_TMData:='';
LineGet:=TLineGet.create;
LineGet.Init;
xmodem1:=tdtucom.Create;
xmodem1.dataocx:=frmMain.DataCenterX1;
end;
procedure TfrmRemoteCfg.Timer1Timer(Sender: TObject);
var tip,s:string;
i:integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -