#pragma once #ifdef BUILD_GUIDLL #define DLLCLASS __declspec(dllexport) #include using namespace boost::interprocess; #else #define DLLCLASS __declspec(dllimport) class managed_shared_memory; #endif class COpStatus; class DLLCLASS CGuiOutputController { public: CGuiOutputController(void); ~CGuiOutputController(void); // allocate array size for output array void InitOutputArray(); BOOL IsOff(const COutputSetting &OutputSetting); BOOL IsOn(const COutputSetting &OutputSetting); BOOL Off(const COutputSetting &OutputSetting); BOOL On(const COutputSetting &OutputSetting); // return the size of gOutputArray int GetSizeofOutputArray(); // make a copy of gOutputArray void CopyOutputStatus(); // check if there is state change in output BOOL IsOutputStateChange(int iOutputNo, BOOL &bOutputState); long GetOutputStatusSize(); BOOL GetOutputStatus(int nIndex); // Get name of Output point char* GetOutputName(int nIndex); // copy of gOutputArray that is used to compare the output state during machine running vs // output state in maintenance mode BOOL *m_bpOutputArray; // to keep track output state array size int m_iOutputStateArraySize; private: managed_shared_memory *m_managed_shm; COpStatus *m_pOpStatus; };