From 868daf94f29ce1ffdd799a68c07bb668cd373bcd Mon Sep 17 00:00:00 2001 From: HP\李良庭 <liliangting@lanpucloud.cn:1111> Date: 星期二, 08 七月 2025 11:49:03 +0800 Subject: [PATCH] 提交分辨率自适应版本V3.1.0.1500 --- src/thread/resetThread.pas | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 111 insertions(+), 0 deletions(-) diff --git a/src/thread/resetThread.pas b/src/thread/resetThread.pas new file mode 100644 index 0000000..f16d09d --- /dev/null +++ b/src/thread/resetThread.pas @@ -0,0 +1,111 @@ +{------------------------------------------------------------------------------} +{单元名称:resetThread.pas } +{模块名称:仪器复位线程 } +{模块说明:线程创建后自动运行,更新复位计时界面 } +{建立日期:2025-01-17 } +{修改修改:2025-01-17 } +{版权所有:李良庭 liangtingli@outlook.com } +{------------------------------------------------------------------------------} +unit resetThread; + +interface + +uses + Classes, PubUtils, SysUtils, ActuatorLib; + +type + TResetThread = class(TThread) + private + { Private declarations } + t_ret : Integer; //返回值 + t_faultCode : Word; //水分仪故障码 + + procedure UpdateStart; + procedure UpdateStop; + procedure UpdateTest; + procedure UpdateFaultCode; + protected + procedure Execute; override; + public + constructor Create(param: Boolean=false); + procedure Terminate; + end; + +implementation + +uses + uMain, Global, log4me, uDM, uInit; + +{ TResetThread } + +//--------线程初始化---------------------------------------- +//线程初始化 +constructor TResetThread.Create(param: Boolean=false); +begin + //线程停止后自动释放 + inherited Create(param); //设置线程运行, False-自动运行, True-手动启动 + FreeOnTerminate := True; //设置线程退出自动销 + t_ret := 0; +end; + +//线程销毁事件 +procedure TResetThread.Terminate; +begin + inherited; + m_ResetThread := 0; //清理线程句柄 +end; + +//------- 界面输出 ---------------------------------------- +//启动定时器 +procedure TResetThread.UpdateStart; +begin + glStartTest := GetMillisecondTimeStamp; + dm.tmReset.Enabled := true; +end; + +//更新检测结果到界面 +procedure TResetThread.UpdateStop; +begin + dm.tmReset.Enabled := false; + //设置按钮不可用 + frmMain.SetResetUI(true); +end; + +//复位提示 +procedure TResetThread.UpdateTest; +begin + if t_ret=0 then + frmMain.lblMaintain.Caption := '提示:下发水分仪 [复位] 操作成功!' + else + frmMain.lblMaintain.Caption := '提示:下发水分仪 [复位] 操作失败!'; +end; + +//出错显示--仪器自检出错 +procedure TResetThread.UpdateFaultCode; +begin + RefashFaultCode(t_faultCode); +end; + +//------- 线程执行 ---------------------------------------- +//线程入口 +procedure TResetThread.Execute; +begin + try + //执行截距调整代码 + Synchronize(UpdateStart); + t_ret := ResetCommand(hWrDev); + Synchronize(UpdateStop); + + //输出复位结果 + Synchronize(UpdateTest); + + //检查水分仪故障码 + ReadFaultCode(hWrDev, @t_faultCode); + Synchronize(UpdateFaultCode); + finally + //销毁线程 + Terminate; + end; +end; + +end. -- Gitblit v1.9.3