#pragma once #include "BaseClient.h" #include "../config/bean/AlarmCfg.h" class CXLaserState { public: CXLaserState() { m_Current3OverLimitAlarm = false; m_QBHContactBadness = false; m_ContinueLightAlarm = false; m_BoardLowBattery = false; m_InterLockAlarm = false; m_EmergencyStopAlarm = false; m_Current2OverLimitAlarm = false; m_PumpTempOverLimitAlarm = false; m_PowerTempOverLimit = false; m_OpticalTempOverLimitAlarm = false; m_LowVoltageAlarm = false; m_ReturnLightAlarm = false; m_ForwardLightAlarm = false; m_Current1OverLimitAlarm = false; m_HighVoltageAlarm = false; m_Expire = false; m_IsExtCtrl = false; m_ExtPower = 0.0f; m_IsLaserOutput = false; } ~CXLaserState() {} public: BaseStat m_BaseStat; bool m_Current3OverLimitAlarm; //电流3过流 bool m_QBHContactBadness; //QBH接触不良 bool m_ContinueLightAlarm; //连续前向光报警锁机 bool m_BoardLowBattery; //主板电池电量不足 bool m_InterLockAlarm; //互锁报警 bool m_EmergencyStopAlarm; //急停报警 bool m_Current2OverLimitAlarm; //电流2过流 bool m_PumpTempOverLimitAlarm; //泵源温度过高 bool m_PowerTempOverLimit; //电模块温度过高 bool m_OpticalTempOverLimitAlarm; //光模块温度过高 bool m_LowVoltageAlarm; //欠压报警 bool m_ReturnLightAlarm; //回光报警 bool m_ForwardLightAlarm; //前向光报警 bool m_Current1OverLimitAlarm; //电流1过流 bool m_HighVoltageAlarm; //过压报警 bool m_Expire; //加解到期 bool m_IsExtCtrl; //是否外控 float m_ExtPower; //外控功率 bool m_IsLaserOutput; //是否激光输出 }; class CXLaserClient :public TcpClient { public: CXLaserClient(CommunicationCfg* pconfig, AlarmCfg* laserAlarm); ~CXLaserClient(); void InitCommand(); //void DrawClientState(); void GetState(CXLaserState& state); private: void static PorcReadAlarm(void* pobject, Command* pcommand); void static PorcReadExtCtrl(void* pobject, Command* pcommand); void static PorcReadExtPower(void* pobject, Command* pcommand); void static PorcReadLaserState(void* pobject, Command* pcommand); private: CXLaserState m_State; AlarmCfg* m_LaserAlarm; AlarmCfgWrapper* m_AlarmCfgWrapper; };