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

📄 main.pas

📁 路灯控制 可以实现路灯远程开关等
💻 PAS
📖 第 1 页 / 共 5 页
字号:
begin
    if checkbox1.Checked=true then s2:='1';
    if checkbox1.Checked=false then s2:='0';

with dm.DataModule1.ADO_SB do
 begin
    s:=fieldbyname('设备编号').AsString;
    Close;
    SQL.Clear;
    SQL.Add('update 设备档案 set ');
    SQL.add('设备编号='''+Edit2.text+'''');
    SQL.add(',设备型号='''+Edit4.text+'''');
    SQL.add(',工作模式='''+combobox2.text+'''');
    SQL.add(',设备IP地址='''+Edit6.text+'''');
    SQL.add(',路灯选择='''+getorder+'''');
    SQL.add(',是否选择='''+s2+'''');
    SQL.add(',设备监听端口号='''+Edit7.text+'''');
    SQL.add(',手机号='''+Edit8.text+'''');
    SQL.Add('where 设备编号='''+s+'''');
     ExecSQL;
    Close;
    SQL.Clear;
    SQL.Add('Select * From 设备档案');
    Open;

  end;
  bitbtn7.Enabled:=true;
end;





procedure TFrm_Main.DataSource_SBDataChange(Sender: TObject;
  Field: TField);
var
s:string;
begin
   s:=dm.DataModule1.ADO_SB.fieldbyname('是否选择').AsString;
   if s='1' then checkbox1.Checked:=true;
   if s='0' then checkbox1.Checked:=false;
   with dm.DataModule1.ADO_SB  do
   begin
    Edit2.Text:=fieldbyname('设备编号').AsString;
    Edit4.Text:=fieldbyname('设备型号').AsString;
    combobox2.Text:=fieldbyname('工作模式').AsString;
    Edit6.Text:=fieldbyname('设备IP地址').AsString;
    Edit7.Text:=fieldbyname('设备监听端口号').AsString;
    Edit8.Text:=fieldbyname('手机号').AsString;
    outorder;

  end;


end;

procedure TFrm_Main.N4Click(Sender: TObject);
begin
 tabbednotebook1.ActivePage:='设备信息管理';
end;

procedure TFrm_Main.N6Click(Sender: TObject);
var
TD:Tfrm_TD;
begin
TD:=Tfrm_TD.Create(application);
TD.ShowModal;
TD.Free;

end;

procedure TFrm_Main.N12Click(Sender: TObject);
begin
close;
end;

//=================配置设备=====================
procedure TFrm_Main.BitBtn7Click(Sender: TObject);
var
i:integer;
{a:array[1..30] of string;
b:array[1..30] of string;
cc:array[1..30] of string;
d:array[1..30] of string;
e:array[1..30] of string;
f:array[1..30] of string;}

begin

with dm.DataModule1.ADO_SB do
begin
 for  i:=1 to dm.DataModule1.ADO_SB.RecordCount   do
 begin
 s1[i]:=fieldbyname('设备IP地址').AsString;
 s2[i]:=fieldbyname('路灯选择').AsString;
 s3[i]:=fieldbyname('是否选择').AsString;
 s[i]:=s3[i]+s1[i]+s2[i];

 choose[i]:=strtoint(copy(s[i],1,1));
 next;
 end;
end;


  for i:=1 to 28 do
  begin
  send[i]:=':'+copy(s[i],2,2)+'C'+copy(s[i],4,12)+'0000'+'C'+'00'+chr(13);
 // send[i]:=':00'+'C'+copy(s[i],4,12)+'0000'+'C'+'00'+chr(13);
  end;

  for i:=1 to 28 do
  begin
  choose1[i]:=choose[i];
  end;



  for i:=1 to 28 do
  begin
  a[i]:=copy(s2[i],1,2);
   if a[i]='00' then a[i]:='0';
   if a[i]='01' then a[i]:='1';
  b[i]:=copy(s2[i],3,2);
   if b[i]='00' then b[i]:='0';
   if b[i]='01' then b[i]:='1';
  cc[i]:=copy(s2[i],5,2);
   if cc[i]='00' then cc[i]:='0';
   if cc[i]='01' then cc[i]:='1';
  d[i]:=copy(s2[i],7,2);
   if d[i]='00' then d[i]:='0';
   if d[i]='01' then d[i]:='1';
  e[i]:=copy(s2[i],9,2);
   if e[i]='00' then e[i]:='0';
   if e[i]='01' then e[i]:='1';
  f[i]:=copy(s2[i],11,2);
   if f[i]='00' then f[i]:='0';
   if f[i]='01' then f[i]:='1';

  fasong[i]:=f[i]+d[i]+e[i]+cc[i]+b[i]+a[i];
  end;

  if choose1[1]=1 then c1.Checked:=true
  else                 c1.Checked:=false;

    if choose1[2]=1 then c2.Checked:=true
  else                 c2.Checked:=false;

    if choose1[3]=1 then c3.Checked:=true
  else                 c3.Checked:=false;

    if choose1[4]=1 then c4.Checked:=true
  else                 c4.Checked:=false;

    if choose1[5]=1 then c5.Checked:=true
  else                 c5.Checked:=false;

    if choose1[6]=1 then c6.Checked:=true
  else                 c6.Checked:=false;

    if choose1[7]=1 then c7.Checked:=true
  else                 c7.Checked:=false;

    if choose1[8]=1 then c8.Checked:=true
  else                 c8.Checked:=false;

    if choose1[9]=1 then c9.Checked:=true
  else                 c9.Checked:=false;

    if choose1[10]=1 then c10.Checked:=true
  else                 c10.Checked:=false;

    if choose1[11]=1 then c11.Checked:=true
  else                 c11.Checked:=false;

    if choose1[12]=1 then c12.Checked:=true
  else                 c12.Checked:=false;

    if choose1[13]=1 then c13.Checked:=true
  else                 c13.Checked:=false;

    if choose1[14]=1 then c14.Checked:=true
  else                 c14.Checked:=false;

    if choose1[15]=1 then c15.Checked:=true
  else                 c15.Checked:=false;

    if choose1[16]=1 then c16.Checked:=true
  else                 c16.Checked:=false;

    if choose1[17]=1 then c17.Checked:=true
  else                 c17.Checked:=false;

    if choose1[18]=1 then c18.Checked:=true
  else                 c18.Checked:=false;

    if choose1[19]=1 then c19.Checked:=true
  else                 c19.Checked:=false;

    if choose1[20]=1 then c20.Checked:=true
  else                 c20.Checked:=false;

      if choose1[21]=1 then c21.Checked:=true
  else                 c21.Checked:=false;

      if choose1[22]=1 then c22.Checked:=true
  else                 c22.Checked:=false;

      if choose1[23]=1 then c23.Checked:=true
  else                 c23.Checked:=false;

      if choose1[24]=1 then c24.Checked:=true
  else                 c24.Checked:=false;

      if choose1[25]=1 then c25.Checked:=true
  else                 c25.Checked:=false;

      if choose1[26]=1 then c26.Checked:=true
  else                 c26.Checked:=false;

      if choose1[27]=1 then c27.Checked:=true
  else                 c27.Checked:=false;

     if choose1[28]=1 then c28.Checked:=true
  else                 c28.Checked:=false;

   {   if choose1[29]=1 then c29.Checked:=true
  else                 c29.Checked:=false;

      if choose1[30]=1 then c30.Checked:=true
  else                 c30.Checked:=false; }


  
  Application.MessageBox('配置成功!','提示!',64);

  bitbtn7.Enabled:=false;

end;


//===============发送 开灯======================
procedure TFrm_Main.Timer1Timer(Sender: TObject);
var
i:integer;
s:string;
begin
    try
    if Comm1.PortOpen=false then Comm1.PortOpen:=true;
  except
    showmessage('无法打开串行口!');
    exit;
  end;


   if choose1[1]=1 then
   begin
   comm1.DataCount:=0;
   comm1.OutputString(send[1]);
   sleep(600);
   if  comm1.Input=':01OK' then
   begin
     if fasong[1]<>'000000' then led1.LedPlasticColor:=clgreen
       else
           begin
                 led1.LedPlasticColor:=clred;
                  with dm.DataModule1.ADO_log do
                  begin
                  close;
                  sql.Clear;
                  SQL.Add('Insert Into log values(:a1,:a2,:a3)');
                  parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
                  Parameters.parambyname('a2').value:='5-11-3 关灯';
                  Parameters.parambyname('a3').value:='无 ';
                  execsql;
                  end;
           end;





    if copy(send[1],5,2)='01' then
    begin
    led1_1.LedPlasticColor:=clgreen;
    zhuangtai[1,1]:='1';
       with dm.DataModule1.ADO_log do
       begin
       close;
       sql.Clear;
       SQL.Add('Insert Into log values(:a1,:a2,:a3)');
       parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
       Parameters.parambyname('a2').value:='5-11-3 1路开灯';
       Parameters.parambyname('a3').value:='无 ';
       execsql;
       end;
    end;

    if copy(send[1],5,2)='00' then
    begin
    led1_1.LedPlasticColor:=clred;
    zhuangtai[1,1]:='0';
    end;
    if copy(send[1],7,2)='01' then
    begin
    led1_2.LedPlasticColor:=clgreen;
    zhuangtai[1,2]:='1';
       with dm.DataModule1.ADO_log do
       begin
       close;
       sql.Clear;
       SQL.Add('Insert Into log values(:a1,:a2,:a3)');
       parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
       Parameters.parambyname('a2').value:='5-11-3 2路开灯';
       Parameters.parambyname('a3').value:='无';
       execsql;
       end;
    end;
    if copy(send[1],7,2)='00' then
    begin
     led1_2.LedPlasticColor:=clred;
     zhuangtai[1,2]:='0';
     end;
    if copy(send[1],9,2)='01' then
    begin
    led1_3.LedPlasticColor:=clgreen;
    zhuangtai[1,3]:='1';
       with dm.DataModule1.ADO_log do
       begin
       close;
       sql.Clear;
       SQL.Add('Insert Into log values(:a1,:a2,:a3)');
       parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
       Parameters.parambyname('a2').value:='5-11-3 3路开灯';
       Parameters.parambyname('a3').value:='无 ';
       execsql;
       end;
    end;
    if copy(send[1],9,2)='00' then
    begin
    led1_3.LedPlasticColor:=clred;
    zhuangtai[1,3]:='0';
    end;



    choose1[1]:=0;
    readC[1]:=1;
    exit;
   end  else
   begin
   statusbar1.Panels[2].Text:='第1路设备故障!';
   exit;
   end
   end  else
   begin
   zhuangtai[1,1]:='0';
   zhuangtai[1,2]:='0';
   zhuangtai[1,3]:='0';
   end;












   if choose1[2]=1 then
   begin
   comm1.DataCount:=0;
   comm1.OutputString(send[2]);
   sleep(600);
   if  comm1.Input=':02OK' then
   begin
        if fasong[2]<>'000000' then led2.LedPlasticColor:=clgreen
       else
       begin
                  led2.LedPlasticColor:=clred;
                  with dm.DataModule1.ADO_log do
                  begin
                  close;
                  sql.Clear;
                  SQL.Add('Insert Into log values(:a1,:a2,:a3)');
                  parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
                  Parameters.parambyname('a2').value:='5-11-4 关灯';
                  Parameters.parambyname('a3').value:='无 ';
                  execsql;
                  end;
       end;




  if copy(send[2],5,2)='01' then
    begin
    led2_1.LedPlasticColor:=clgreen;
    zhuangtai[2,1]:='1';
       with dm.DataModule1.ADO_log do
       begin
       close;
       sql.Clear;
       SQL.Add('Insert Into log values(:a1,:a2,:a3)');
       parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
       Parameters.parambyname('a2').value:='5-11-4 1路开灯';
       Parameters.parambyname('a3').value:='无';

       execsql;
       end;
    end;

    if copy(send[2],5,2)='00' then
    begin
    led2_1.LedPlasticColor:=clred;
    zhuangtai[2,1]:='0';
    end;
    if copy(send[2],7,2)='01' then
    begin
    led2_2.LedPlasticColor:=clgreen;
    zhuangtai[2,2]:='1';
       with dm.DataModule1.ADO_log do
       begin
       close;
       sql.Clear;
       SQL.Add('Insert Into log values(:a1,:a2,:a3)');
       parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
       Parameters.parambyname('a2').value:='5-11-4 2路开灯';
       Parameters.parambyname('a3').value:='无';

       execsql;
       end;
    end;
    if copy(send[2],7,2)='00' then
    begin
     led2_2.LedPlasticColor:=clred;
     zhuangtai[2,2]:='0';
     end;
    if copy(send[2],9,2)='01' then
    begin
    led2_3.LedPlasticColor:=clgreen;
    zhuangtai[2,3]:='1';
       with dm.DataModule1.ADO_log do
       begin
       close;
       sql.Clear;
       SQL.Add('Insert Into log values(:a1,:a2,:a3)');
       parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
       Parameters.parambyname('a2').value:='5-11-4 3路开灯';
       Parameters.parambyname('a3').value:='无';

       execsql;
       end;
    end;
    if copy(send[2],9,2)='00' then
    begin
    led2_3.LedPlasticColor:=clred;
    zhuangtai[2,3]:='0';
    end;




    choose1[2]:=0;
    readC[2]:=1;
    exit;
    end  else
   begin
   statusbar1.Panels[2].Text:='第2路设备故障!';
   exit;
   end;
   end     else
   begin
   zhuangtai[2,1]:='0';
   zhuangtai[2,2]:='0';
   zhuangtai[2,3]:='0';
   end;








   if choose1[3]=1 then
   begin
   comm1.DataCount:=0;
   comm1.OutputString(send[3]);
   sleep(600);
   if  comm1.Input=':03OK' then
   begin
        if fasong[3]<>'000000' then led3.LedPlasticColor:=clgreen
       else
       begin
                  led3.LedPlasticColor:=clred;
                  with dm.DataModule1.ADO_log do
                  begin
                  close;
                  sql.Clear;
                  SQL.Add('Insert Into log values(:a1,:a2,:a3)');
                  parameters.ParamByName('a1').Value:=FormatDateTime('YYYY-MM-DD HH:NN:SS',Now);
                  Parameters.parambyname('a2').value:='5-9-1 关灯';
                  Parameters.parambyname('a3').value:='无 ';
                  execsql;
                  end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -