📄 main.~pas
字号:
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 + -