Files
dyp/backup_ansi/uTCPDeviceNew.pas
2026-05-07 20:25:34 +08:00

123 lines
3.2 KiB
ObjectPascal

unit uTCPDeviceNew;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
uFrameBase, System.ImageList, FMX.ImgList, FMX.ListBox, uksoap,System.StrUtils,
FMX.Controls.Presentation, FMX.Edit, FMX.Objects,uListConent,uShowInfo,uTCPDevice,
FMX.ScrollBox, FMX.Memo;
type
TTCPDeviceNew = class
private
procedure F2DCodeCreate();
procedure F2DCodeDelete();
public
F2DCodeValue:String;
F2DCode: T2DCode;
constructor Create();
destructor Destroy; override;
procedure F2DCodeShowState(Avalue: string); //显示读头状态
procedure F2DCodeWork(Sender:TObject;sValue: string); //读取条码
end;
var
TCPDeviceNew: TTCPDeviceNew;
implementation
uses uDM, uPucFun, uSafeLog;
constructor TTCPDeviceNew.Create;
begin
F2DCodeCreate();
end;
destructor TTCPDeviceNew.Destroy;
begin
F2DCodeDelete;
inherited;
end;
procedure TTCPDeviceNew.F2DCodeCreate();
var
sDevName,sIp,sPort:string;
tmpValue:string;
i:integer;
begin
//Rectangle001.Visible:=ksoap.P_LINE='油墨印刷機';
//根据配置加载设备
for i := 1 to 1 do
begin
tmpValue:=dm.MemTableReadKeyValue('读头','tv_line_speed'+i.ToString);
if tmpValue<>'' then
begin
if CheckParameter(tmpValue,sDevName,sIp,sPort) then
begin
if sameText(sDevName.ToLower,'keyence') then //2D读头
begin
F2DCode:=T2DCode.Create(sIp,sPort.ToInteger);
F2DCode.Num:=i;
F2DCode.OnWork:=F2DCodeWork;
F2DCode.OnShowState:=F2DCodeShowState;
F2DCode.Connect;
TThread.CreateThreadX<Integer>(
procedure (Avalue:Integer)
begin
Sleep(1000);
TThread.Synchronize( nil,
procedure
begin
// F2DCode.Open;
// WorkLog.MessageInfo('%s条码%s读取Open'+sIp+(sPort));
end
);
end,i
).Start;
end;
end;
end;
end;
end;
procedure TTCPDeviceNew.F2DCodeDelete;
begin
if F2DCode<>nil then
begin
F2DCode.Close;
Sleep(200);
F2DCode.DisConnect;
F2DCode.Destroy;
// F2DCode:= nil;
FreeandNil(F2DCode);
WorkLog.Debug('连接已关闭');
end;
end;
procedure TTCPDeviceNew.F2DCodeShowState(Avalue: string); //显示读头状态
begin
// AddLog(Avalue);
WorkLog.Debug('条码读取狀態'+Avalue);
if (pos('连接成功',Avalue)>0) and (F2DCode<>nil) then
F2DCode.Open;
end;
procedure TTCPDeviceNew.F2DCodeWork(Sender:TObject;sValue: string); //读取条码
begin
F2DCodeValue:= sValue;
WorkLog.Debug('条码读取:'+F2DCodeValue);
// WorkLog.MessageInfo('条码读取:'+self.Name);
// if sValue='ERROR' then
// BEGIN
// // AddLog('条码读取出错'+sValue);
// // WorkLog.MessageInfo('条码读取出错'+sValue);
// // TxtBarCodePrompt.Text:='二维码读取出错';
// Exit;
// END;
end;
end.