SDC C-Project CF Review 프로그램
LYW
2022-08-05 5f12658f37fed156e67b3318542c98f359341ffd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#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;
    }
 
    int        nSignalType;
    BOOL    bCheckTimeOut;
 
 
    // add 
    int        nAddrIndex;
    int        nSignalIndex;
    WORD    wSignalValue;
    DWORD    dwOnTime;
};
 
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;
 
};