#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; };