{------------------------------------------------------------------------------}
|
{µ¥ÔªÃû³Æ£ºstatusThread.pas }
|
{Ä£¿éÃû³Æ£ºÒÇÆ÷״̬¼ì²âÏß³Ì }
|
{Ä£¿é˵Ã÷£ºÏ̴߳´½¨ºó×Ô¶¯ÔËÐУ¬¶ÁË®·ÖÒÇ´íÎó´úÂëºóÍ˳ö }
|
{½¨Á¢ÈÕÆÚ£º2025-01-20 }
|
{ÐÞ¸ÄÐ޸ģº2025-01-20 }
|
{°æÈ¨ËùÓУºÀîÁ¼Í¥ liangtingli@outlook.com }
|
{------------------------------------------------------------------------------}
|
unit statusThread;
|
|
interface
|
|
uses
|
Classes, SysUtils, PubUtils, ActuatorLib;
|
|
type
|
TStatusThread = class(TThread)
|
private
|
{ Private declarations }
|
t_ret : Integer; //·µ»ØÖµ
|
procedure UpdateCaption;
|
protected
|
procedure readStatus();
|
procedure Execute; override;
|
public
|
constructor Create(param: Boolean=false);
|
procedure Terminate;
|
end;
|
|
implementation
|
|
uses
|
uMain, Global, log4me;
|
|
{ TStatusThread }
|
|
//--------Ï̳߳õʼ»¯----------------------------------------
|
//Ï̳߳õʼ»¯
|
constructor TStatusThread.Create(param: Boolean=false);
|
begin
|
//Ïß³ÌÍ£Ö¹ºó×Ô¶¯ÊÍ·Å
|
inherited Create(param); //ÉèÖÃÏß³ÌÔËÐÐ, False-×Ô¶¯ÔËÐÐ, True-ÊÖ¶¯Æô¶¯
|
FreeOnTerminate := True; //ÉèÖÃÏß³ÌÍ˳ö×Ô¶¯Ïú
|
t_ret := 0; //·µ»ØÖµ
|
end;
|
|
//Ïß³ÌÏú»Ùʼþ
|
procedure TStatusThread.Terminate;
|
begin
|
inherited;
|
m_StatusThread := 0; //ÇåÀíÏ߳̾ä±ú
|
end;
|
|
//--------½çÃæ´¦Àíº¯Êý--------------------------------------
|
//¸üÐÂÒÇÆ÷´íÎó´úÂëµ½×Ô¶¯/ÊÖ¶¯¼ì²â½çÃæ
|
procedure TStatusThread.UpdateCaption;
|
begin
|
//
|
end;
|
|
//------- Ö´ÐÐÏß³Ì ----------------------------------------
|
procedure TStatusThread.readStatus();
|
begin
|
//·µ»ØÖµ
|
t_ret := 0;
|
|
//¶Áȡˮ·ÖÒÇ´íÎó´úÂëÖ¸Áî
|
//t_ret := SendCommands(hWrDev, WR_DETECT, 0, glTime2);
|
|
//Êä³ö¼ÆË㺬ˮÂÊ
|
if t_ret<0 then
|
Synchronize(UpdateCaption);
|
end;
|
|
//------- Ïß³ÌÈë¿Ú ----------------------------------------
|
procedure TStatusThread.Execute;
|
begin
|
{ Place thread code here }
|
try
|
readStatus();
|
Sleep(1);
|
finally
|
Terminate;
|
end;
|
end;
|
|
end.
|