📄 tcommsenddatathread_unit.pas
字号:
bSendDataBuf[2] := SETUPTIME;
bSendDataBuf[3] := TCTLINK[iContrl];
CharToBcd(@bSendDataBuf[4],FormatDateTime('yy',Now),2);
CharToBcd(@bSendDataBuf[5],FormatDateTime('mm',Now),2);
CharToBcd(@bSendDataBuf[6],FormatDateTime('dd',Now),2);
CharToBcd(@bSendDataBuf[7],FormatDateTime('hh',Now),2);
CharToBcd(@bSendDataBuf[8],FormatDateTime('nn',Now),2);
CharToBcd(@bSendDataBuf[9],FormatDateTime('ss',Now),2);
bSendDataBuf[10]:= WELLSIGN;
CopyMemory(@bSendDataBuf[3],@bSendDataBuf[4],7);
crc16 :=chkcrc16(9,@bSendDataBuf);
CopyMemory(@bSendDataBuf[11],@crc16,2);
bSendDataBuf[10] := bSendDataBuf[12];
bSendDataBuf[12] := 0;
nLen :=CommNetDriver.ClientComm.SendData(@bSendDataBuf,11);
if (nLen>0) then
begin
iCount := 0;
While (iCount<3) do
begin
if not AcceptData then
begin
break;
end
else
begin
CommNetDriver.m_hSection.Acquire;
iLength := 0;
CopyMemory(@iLength,@CommNetDriver.GDataBuf,2);
iHead := FindBufHead(@CommNetDriver.GDataBuf[3],iLength);
CommNetDriver.m_hSection.Release;
if (iHead>0) then
begin
Case CommNetDriver.GDataBuf[iHead+1] of
RIGHT_CALL:
begin
crc16 :=chkcrc16(4,@CommNetDriver.GDataBuf[iHead]);
CopyMemory(@crc161,@CommNetDriver.GDataBuf[iHead+4],2);
if (crc16=crc161) then
begin
SYSTIMEDOWN[TCTLINK[iContrl]] := true;
break;
end;
end;
End;
end
else
begin
Inc(iCount);
end;
end;
end;
end;
end ;
end;
/////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
//////自动放冷水////////////////
{if SendWater_flag=1 then
begin
if (copy(SendWater_Time1,1,5) <=FormatDateTime('hh:nn',now)) and (not SendWater_sys) then
begin
SendWaterCount:=0;
with GLBDataModule.PDADOQuery do
begin
Close;
SendWater_Sql :='SELECT CT_CommandNum, CT_MachineNUM, CT_TCPathNUM '+
' FROM CTMachineTAB '+
' WHERE (CT_VALID = ''1'') AND (CT_SaleStatus = 1) and CT_Type =0 ';
Sql.Text := SendWater_Sql;
Open;
if GLBDataModule.PDADOQuery.RecordCount <> 0 then
begin
SenderWatering :=true;
Main_Form.Timer2.Interval :=1000000;
Main_Form.Timer2.Enabled :=true;
while not GLBDataModule.PDADOQuery.eof do
begin
CommNo := FieldbyName('CT_CommandNum').AsInteger;
PathNo := FieldbyName('CT_TCPathNUM').AsInteger;
MacNo := FieldbyName('CT_MachineNUM').AsInteger;
CommFunc.StatUp_ColdWater(CommNo,PathNo,MacNo,FSTime);
SendWaterCount:=SendWaterCount+1;
Next;
if (SendWaterCount Mod 5 )=0 then
begin
Sleep(3000);
end;
end;
SendWater_sys :=true;
SendWater_flag :=0;
end;
if SendwaterCount =GLBDataModule.PDADOQuery.RecordCount then
begin
SendWater_sys :=true;
SendWater_flag :=0;
end;
end;
end;
end; }
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
//发查询命令
CommNetDriver.m_hSection.Acquire;
ZeroMemory(@CommNetDriver.GDataBuf,1024);
CommNetDriver.m_hSection.Release;
ZeroMemory(@bSendDataBuf,1024);
bSendDataBuf[1] := STARSIGN;
bSendDataBuf[2] := QUERY;
bSendDataBuf[3] := TCTLINK[iContrl];
bSendDataBuf[4] := WELLSIGN;
crc16:=chkcrc16(4,@bSendDataBuf);
CopyMemory(@bSendDataBuf[6],@crc16,2);
bSendDataBuf[5] := bSendDataBuf[7];
bSendDataBuf[7] := 0;
nLen := CommNetDriver.ClientComm.SendData(@bSendDataBuf,6);
//Main_Form.Edit1.Text :=IntToStr(StrToInt(Main_Form.Edit1.Text)+1);
if (nLen>0) then
begin
Sleep(20);
if not AcceptData then
begin
break;
end
else
begin
CommNetDriver.m_hSection.Acquire;
iLength := 0;
CopyMemory(@iLength,@CommNetDriver.GDataBuf,2);
iHead := FindBufHead(@CommNetDriver.GDataBuf[3],iLength);
CommNetDriver.m_hSection.Release;
if (iHead>0) then
begin
Case CommNetDriver.GDataBuf[iHead+1] Of
$00:
begin
//总控器配置请求
crc16 :=chkcrc16(8,@CommNetDriver.GDataBuf[iHead]);
CopyMemory(@crc161,@CommNetDriver.GDataBuf[iHead+8],2);
if (crc16=crc161) then
begin
ZeroMemory(@bSendDataBuf,1024);
bSendDataBuf[1] := STARSIGN;
bSendDataBuf[2] := SETUPCMD;
////drc
case CommNetDriver.GDataBuf[iHead+2] of
1: CopyMemory(@bSendDataBuf[3],@TCTLINK[1],17);
2: CopyMemory(@bSendDataBuf[3],@TCTLINK[18],17);
3: CopyMemory(@bSendDataBuf[3],@TCTLINK[35],17);
4: CopyMemory(@bSendDataBuf[3],@TCTLINK[52],17);
end;
CommNetDriver.m_hSection.Acquire;
ZeroMemory(@CommNetDriver.GDataBuf,1024);
CommNetDriver.m_hSection.Release;
//drc
bSendDataBuf[20]:=WELLSIGN;
crc16 := chkcrc16(20,@bSendDataBuf);
CopyMemory(@bSendDataBuf[22],@crc16,2);
bSendDataBuf[21]:=bSendDataBuf[23];
bSendDataBuf[23]:=0;
nLen :=CommNetDriver.ClientComm.SendData(@bSendDataBuf,22);
if (nLen>0) then
begin
Sleep(500);
if not AcceptData then
begin
break;
end
else
begin
CommNetDriver.m_hSection.Acquire;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -