SDC C-Project CF Review 프로그램
LYW
2021-10-15 e5fa774d622d6852fe8e1f033045aed221649108
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
#pragma once
 
#include "CHSignalControls/SignalControlInfo.h"
#include "CHThreadPools/TimerThreadPools.h"
#include "CHSignalControls/SignalThread.h"
 
class AFX_EXT_CLASS CSignalControl : public CTimerThreadPools, public ISignalThread2Parent
{
public:
    CSignalControl(int nIndex, DWORD dwPeriod=100);
    virtual ~CSignalControl(void);
    void SetSC2P(ISignalControl2Parnet*    pSC2P)        { m_pSC2P = pSC2P; }
    BOOL    IsConnected()                            { return m_bConnected; }
 
    virtual int        Connect(const CSignalControlInfo* pControlInfo) = 0;
    virtual void    Disconnect() = 0;
    virtual BOOL    Read_ReceiveSignal(int nAddrIndex, WORD& dwValue) = 0;
    virtual BOOL    Write_SendSignal(int nAddrIndex, int nSignalIndex, WORD wSignalValue, int nOnTime=1000) = 0;
    virtual BOOL    Read_SendSignal(int nAddrIndex, WORD& dwValue) = 0;
    virtual BOOL    ReadData(const CString strAddr, int nSize, CString& strData) = 0;
    virtual BOOL    ReadData(const CString strAddr, int nSize, char* pData) = 0;
    virtual BOOL    WriteWordData(const CString strAddr, int nSize, int nData) = 0;
    virtual BOOL    WriteData(const CString strAddr, int nSize, CString strData) = 0;
 
    // [2017:4:14]-[WEZASW] : CIM DV & RecipeBodyÀÇ Packet(CIM DATA ¿¢¼¿ Âü°í) ´ÜÀ§·Î Àü¼Û À§ÇÔ
    virtual BOOL    WritePacketData(const CString strAddr, int nSize, short* pPacketData) = 0;
    
public:
    // simulation
    virtual void    IST2P_RunThreadProcess(const CSignalData& signalData);
 
    int        GetUserSignalMode()    const                { return m_nUserSignalMode; }
    void    SetUserSignalMode(int nMode);            
    
    WORD*    GetSendSignalValue()                    { return m_pSendSignalValue; }
    WORD*    GetSendSignalValuePrev()                { return m_pSendSignalValuePrev; }
    int        GetSendSignalCount()                    { return m_nSendSignalCount; }
protected:
    virtual void    TimerThreadProcess(PVOID pParameter);
    
protected:
    ISignalControl2Parnet*    m_pSC2P;
    CSignalControlInfo        m_ControlInfo;
    CSignalThread*            m_pSignalThread;
    CCriticalSection        m_csWriteSignal;
 
protected:
    int                        m_nIndex;
    DWORD                    m_dwPeriod;
    BOOL                    m_bConnected;
 
    int                        m_nUserSignalMode;
    int                        m_nUserSignalData;
 
    // var
    int                        m_nReceiveSignalCount;
    int                        *m_pReceiveSignalValueAddr;
    WORD                    *m_pReceiveSignalValue;
    WORD                    *m_pReceiveSignalValuePrev;
    int                        m_nSendSignalCount;
    int                        *m_pSendSignalValueAddr;
    WORD                    *m_pSendSignalValue;
    WORD                    *m_pSendSignalValuePrev;
 
    BOOL m_bAlive;
 
};