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