#pragma once
|
|
#if _MSC_VER > 1000
|
#pragma once
|
#endif // _MSC_VER > 1000
|
|
#include <vector>
|
#include "TimerThreadPool.h"
|
|
class CGlass_Data;
|
enum CHECKSEQ_MESSAGE_SECTION {CHECKSEQ_SHORT_SCANSTART_OVERTIME=0,CHECKSEQ_SHORT_SCANSTART_COMPLETE,CHECKSEQ_LONG_SCANSTART_OVERTIME,CHECKSEQ_LONG_SCANSTART_COMPLETE,CHECKSEQ_ONESCAN_OVERTIME,CHECKSEQ_ONESCAN_COMPLETE
|
,CHECKSEQ_GLASS_INSPECTION_OVERTIME,CHECKSEQ_GLASS_INSPECTION_COMPLETE,CHECKSEQ_UNKNOWN};
|
|
class CCheckSeqMessage
|
{
|
public:
|
CCheckSeqMessage(){Reset();}
|
virtual ~CCheckSeqMessage(){;}
|
void Reset()
|
{
|
iScan = 0;
|
dwTickStart = dwTickEnd = dwDuration = dwCheckTime = 0;
|
emCheckSeq = CHECKSEQ_UNKNOWN;
|
bDelete = FALSE;
|
}
|
void SetCheck(CHECKSEQ_MESSAGE_SECTION emCheck,DWORD dwChkTime,int ScanIdx)
|
{
|
Reset();
|
|
dwCheckTime = dwChkTime;
|
emCheckSeq = emCheck;
|
dwTickStart = GetTickCount();
|
iScan = ScanIdx;
|
bDelete = FALSE;
|
}
|
|
DWORD dwTickStart;
|
DWORD dwTickEnd;
|
DWORD dwCheckTime;
|
DWORD dwDuration;
|
int iScan;
|
BOOL bDelete;
|
CHECKSEQ_MESSAGE_SECTION emCheckSeq;
|
};
|
|
interface ICheckSequenceInterface2Parent
|
{
|
virtual void CheckSeqMSG_Received(CCheckSeqMessage *pCheckSeq) = 0;
|
};
|
/////////////////////////////////////////////////////////////////////////////
|
// CThread_CheckSequence thread
|
|
#define PAD_RECIPE_NAME_CNT 200
|
class CThread_CheckSequence : public CTimerThreadPool
|
{
|
public:
|
CThread_CheckSequence(DWORD dwPeriod=11); // protected constructor used by dynamic creation
|
virtual ~CThread_CheckSequence();
|
|
// Operations
|
public:
|
BOOL CreateThread();
|
void SetC2M(ICheckSequenceInterface2Parent *pC2M,CGlass_Data *pGlassData){m_pC2M=pC2M,m_pGlassData = pGlassData;}
|
//void SetC2M(ICheckSequenceInterface2Parent *pC2M){m_pC2M=pC2M;}
|
void ClearMessage();
|
|
virtual void TimerThreadProcess(PVOID pParameter);
|
|
std::vector<CCheckSeqMessage> *GetVecCheckSeqMSG(){return &m_VecCheckSeqMSG;}
|
int AddCheckSeqMSG(CHECKSEQ_MESSAGE_SECTION emSection,DWORD dwChkTime,int iScan);
|
|
protected:
|
CCriticalSection m_csCheckMSG;
|
ICheckSequenceInterface2Parent *m_pC2M;
|
std::vector<CCheckSeqMessage> m_VecCheckSeqMSG;
|
CGlass_Data *m_pGlassData;
|
};
|
|
/////////////////////////////////////////////////////////////////////////////
|