⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 remotecfg.~pas

📁 GPRS/CDMA DTU数据中心源代码,基于DataCenterX控件开发.
💻 ~PAS
📖 第 1 页 / 共 4 页
字号:
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 + -