You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.9 KiB
C++
81 lines
1.9 KiB
C++
// CheckSwitch.h: interface for the CCheckSwitch class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#include <array>
|
|
|
|
#include "cmnhdr.h"
|
|
#include "RunTask.h"
|
|
#include "Input.h"
|
|
#include "Output.h"
|
|
#include "commondef.h"
|
|
#include "DllDefines.h"
|
|
|
|
class CRunCtrl;
|
|
|
|
struct stMSG_SEND
|
|
{
|
|
bool bOnSend;
|
|
bool bOffSend;
|
|
};
|
|
|
|
class MCCTRDLLCLASS CCheckSwitch : public CRunTask
|
|
{
|
|
public:
|
|
bool SetOuputState(int nOutput, bool bState);
|
|
void DoorLock(bool bLock = true);
|
|
bool IsEngineeringBypass();
|
|
bool IsCurtainBypass();
|
|
bool IsDoorBypass();
|
|
bool IsDoorOpen();
|
|
bool IsHardwareBypass();
|
|
bool IsStopButtonActivated();
|
|
void InitParameters();
|
|
void BypassEngineering(bool bBypass = true);
|
|
void BypassCurtain(bool bBypass = true);
|
|
void BypassDoor(bool bBypass = true);
|
|
void SetSystemOutput(int nOutput, COutput* copOutputPt);
|
|
|
|
CCheckSwitch(CRunCtrl* pRunCtrl);
|
|
virtual ~CCheckSwitch();
|
|
|
|
UINT RunThread(void);
|
|
|
|
void SetSwitch(int nSwitch, CInput* cipInputpt);
|
|
|
|
// Set door switch, curtain and engineering switch warn to not send before
|
|
void ResetSwitchWarning();
|
|
|
|
void SetGuiWindow(HWND hwnd);
|
|
|
|
//
|
|
void SetSafetySwitch(int nSwitch, bool bSafety);
|
|
bool IsSafetySwitch(int nSwitch);
|
|
|
|
private:
|
|
bool CheckSwitch(int nSwitchNo, CInput* cipSwitch, stMSG_SEND* pMsgSend, bool* pIsSendBefore);
|
|
void GetMainApp();
|
|
void CheckSwitch(int nSwitchNo, CInput* cipSwitch, stMSG_SEND* pMsgSend);
|
|
|
|
std::array<bool, SWITCH_SYSTEM> m_bSafetySwitch;
|
|
std::array<CInput*, SWITCH_SYSTEM> m_cipSwitch;
|
|
|
|
std::array < stMSG_SEND, SWITCH_SYSTEM> m_stMsgSend;
|
|
|
|
COutput* m_copSystemDoor;
|
|
COutput* m_copCurtainSensorReset;
|
|
|
|
HWND hwndMainApp;
|
|
|
|
bool m_bBypassDoor;
|
|
bool m_bBypassCurtain;
|
|
bool m_bBypassEngineering;
|
|
bool m_bHardwareBypass;
|
|
bool m_bWrnOnEnggSwitch;
|
|
|
|
// for ui-control decoupling
|
|
CRunCtrl* m_pRunCtrl;
|
|
};
|