#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;
|
/*< LYW 20220610 - #4185 ADD Start >*/
|
virtual BOOL ReadData(const CString strAddr, int BitPosition, int nSize, int& nData);
|
/*< LYW 20220610 - #4185 ADD End >*/
|
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;
|
|
};
|