77 lines
2.2 KiB
C++

#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;
};