#pragma once #include #include "SignalControl.h" class AFX_EXT_CLASS CSignalControl_DitSharedMemorySync : public CSignalControl { public: CSignalControl_DitSharedMemorySync(int nIndex, DWORD dwPeriod=100); virtual ~CSignalControl_DitSharedMemorySync(void); virtual int Connect(const CSignalControlInfo* pControlInfo); virtual void Disconnect(); virtual BOOL Read_ReceiveSignal(int nAddrIndex, WORD& dwValue); virtual BOOL Write_SendSignal(int nAddrIndex, int nSignalIndex, WORD wSignalValue, int nOnTime=1000); virtual BOOL Read_SendSignal(int nAddrIndex, WORD& dwValue); virtual BOOL ReadData(const CString strAddr, int nSize, CString& strData); virtual BOOL ReadData(const CString strAddr, int nSize, char* pData); /*< 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); virtual BOOL WriteData(const CString strAddr, int nSize, CString strData); virtual BOOL WritePacketData(const CString strAddr, int nSize, short* pPacketData); protected: virtual int Hex2Dec(const CString& hex_str); virtual void IST2P_RunThreadProcess(const CSignalData& signalData); private: // memory map HANDLE m_hMemMap; char* m_pMemStartAddr; CEvent m_ReadEvent; CEvent m_WriteEvent; };