#pragma once
|
|
#include "CHThreadPools/WorkThreadPools.h"
|
|
enum emSendSignal { SendSig_LoadingSuccess=0, SendSig_LoadingFail, SendSig_AlignSuccess, SendSig_AlignFail, SendSig_ReviewSuccess, SendSig_ReviewFail, SendSig_LightFail, SendSig_AFFail, SendSig_AutoMode, SendSig_ManualMode };
|
|
enum ThreadSignalType { ThreadSignal_Mode=0, ThreadSignal_Send, ThreadSignal_Recv };
|
|
enum ThreadSignalDataType { ThreadSignalType_SendSignal = 0, ThreadSignalType_ReadData, ThreadSignalType_SendData };
|
|
class CSignalData
|
{
|
public:
|
CSignalData(int nType=0)
|
{
|
nSignalType = nType;
|
bCheckTimeOut = FALSE;
|
|
nAddrIndex = 0;
|
nSignalIndex = 0;
|
wSignalValue = 0;
|
dwOnTime = 0;
|
//< SWK 20221221 - #4403 ADD >
|
ullStartTick = 0;
|
}
|
|
int nSignalType;
|
BOOL bCheckTimeOut;
|
|
|
// add
|
int nAddrIndex;
|
int nSignalIndex;
|
WORD wSignalValue;
|
DWORD dwOnTime;
|
//< SWK 20221221 - #4403 ADD >
|
ULONGLONG ullStartTick;
|
};
|
|
class CSignalThreadData : public CWorkThreadData
|
{
|
public:
|
CSignalThreadData(LPVOID pPtr) : CWorkThreadData(pPtr)
|
{
|
}
|
|
~CSignalThreadData()
|
{
|
|
}
|
|
CSignalData signalData;
|
};
|
|
interface ISignalThread2Parent
|
{
|
virtual void IST2P_RunThreadProcess(const CSignalData& signalData) = 0;
|
};
|
|
class CSignalThread : public CWorkThreadPools
|
{
|
public:
|
CSignalThread(int nThreadCount=1);
|
virtual ~CSignalThread(void);
|
void SetST2P(ISignalThread2Parent* pST2P) { m_pST2P = pST2P; }
|
|
BOOL AddThreadData(const CSignalData& data);
|
|
protected:
|
virtual void WorkThreadProcess(PVOID pParameter);
|
|
protected:
|
ISignalThread2Parent* m_pST2P;
|
|
};
|