{------------------------------------------------------------------------------}
|
{µ¥ÔªÃû³Æ£º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.
|