#pragma once #include "BaseClient.h" #include "../config/bean/AlarmCfg.h" class CXFlatLaserState { public: CXFlatLaserState() { m_PumpSourceTemperatureAlarm = false; //泵源温度报警 m_OpticalPathTemperatureAlarm = false; //光路温度报警 m_CircuitTemperatureAlarm = false; //电路温度报警 m_EncryptionExpirationAlarm = false; //加密过期报警 m_DriveBoard1OvercurrentAlarm = false; //驱动板1过流报警 m_DriveBoard2OvercurrentAlarm = false; //驱动板2过流报警 m_DriveBoard3OvercurrentAlarm = false; //驱动板3过流报警 m_DriveBoard4OvercurrentAlarm = false; //驱动板4过流报警 m_QbhTemperatureAlarm = false; //QBH温度报警 m_ExternalBeamCombinerTemperatureAlarm = false; //外合束器温度报警 m_WaterFlowMeterAlarm = false; //水流量计报警 m_PumpSourceTemperature = 0; //泵源温度 m_OpticalPathTemperature = 0; //光路温度 m_CircuitTemperature = 0; //电路温度 m_DriveBoard1Current = 0.0f; //驱动板1电流 m_DriveBoard2Current = 0.0f; //驱动板2电流 m_DriveBoard3Current = 0.0f; //驱动板3电流 m_DriveBoard4Current = 0.0f; //驱动板4电流 m_SensorHumidity = 0; //传感器湿度 m_InternalControlPower = 0.0f; //内控功率 m_PwmFrequency = 0; //PWM频率 m_PwmDutyCycle = 0.0f; //PWM占空比 m_PwmPower = 0.0f; //PWM功率 m_InternalPd1Alarm = false; //内部PD1报警 m_Interna2Pd1Alarm = false; //内部PD2报警 m_PulseEnergyAlarm = false; //脉冲能量报警 m_QbhContactAlarm = false; //QBH触点报警 m_EmergencyStopAlarm = false; //急停报警 m_WaterFlowSwitchAlarm = false; //水流量开关报警 m_InterlockAlarm = false; //互锁报警 m_AveragePowerAlarm = false; //平均功率报警 m_MAlarm = false; //M报警 m_ExternalBeamCombinerPdAlarm = false; //外合束器PD报警 m_ExternalAnalogAlarm = false; //外部模拟量报警 m_AbnormalLaserEmissionAlarm = false; //异常出光报警 m_UpperEmergencyStopAlarm = false; //上位机急停报警 m_PowerAlarm = false; //功率报警 m_MainPowerSupply1Alarm = false; //主电源1报警 m_MainPowerSupply2Alarm = false; //主电源2报警 m_IoEN = false; m_IoPWM = false; m_IoStop = false; m_IoRed = false; m_LaserState = false; //激光状态 m_RedLightState = false; //红光状态 m_IoStart = false; m_IoControl = false; m_PwmStartError = false; //PWM开启报警 m_PdPowerError = false; //PD电源报警 m_AnalogPower = 0.0f; m_PwmFrequencyAssist = 0; m_PwmDutyCycleAssist = 0.0f; m_PwmPowerAssist = 0.0f; } ~CXFlatLaserState() { } public: bool m_PumpSourceTemperatureAlarm; //泵源温度报警 bool m_OpticalPathTemperatureAlarm; //光路温度报警 bool m_CircuitTemperatureAlarm; //电路温度报警 bool m_EncryptionExpirationAlarm; //加密过期报警 bool m_DriveBoard1OvercurrentAlarm; //驱动板1过流报警 bool m_DriveBoard2OvercurrentAlarm; //驱动板2过流报警 bool m_DriveBoard3OvercurrentAlarm; //驱动板3过流报警 bool m_DriveBoard4OvercurrentAlarm; //驱动板4过流报警 bool m_QbhTemperatureAlarm; //QBH温度报警 bool m_ExternalBeamCombinerTemperatureAlarm; //外合束器温度报警 bool m_WaterFlowMeterAlarm; //水流量计报警 int m_PumpSourceTemperature; //泵源温度 int m_OpticalPathTemperature; //光路温度 int m_CircuitTemperature; //电路温度 float m_DriveBoard1Current; //驱动板1电流 float m_DriveBoard2Current; //驱动板2电流 float m_DriveBoard3Current; //驱动板3电流 float m_DriveBoard4Current; //驱动板4电流 int m_SensorHumidity; //传感器湿度 float m_InternalControlPower; //内控功率 unsigned short m_PwmFrequency; //PWM频率 float m_PwmDutyCycle; //PWM占空比 float m_PwmPower; //PWM功率 bool m_InternalPd1Alarm; //内部PD1报警 bool m_Interna2Pd1Alarm; //内部PD2报警 bool m_PulseEnergyAlarm; //脉冲能量报警 bool m_QbhContactAlarm; //QBH触点报警 bool m_EmergencyStopAlarm; //急停报警 bool m_WaterFlowSwitchAlarm; //水流量开关报警 bool m_InterlockAlarm; //互锁报警 bool m_AveragePowerAlarm; //平均功率报警 bool m_MAlarm; //M报警 bool m_ExternalBeamCombinerPdAlarm; //外合束器PD报警 bool m_ExternalAnalogAlarm; //外部模拟量报警 bool m_AbnormalLaserEmissionAlarm; //异常出光报警 bool m_UpperEmergencyStopAlarm; //上位机急停报警 bool m_PowerAlarm; //功率报警 bool m_MainPowerSupply1Alarm; //主电源1报警 bool m_MainPowerSupply2Alarm; //主电源2报警 bool m_IoEN; bool m_IoPWM; bool m_IoStop; bool m_IoRed; bool m_LaserState; //激光状态 bool m_RedLightState; //红光状态 bool m_IoStart; bool m_IoControl; bool m_PwmStartError; //PWM开启报警 bool m_PdPowerError; //PD电源报警 float m_AnalogPower; unsigned short m_PwmFrequencyAssist; float m_PwmDutyCycleAssist; float m_PwmPowerAssist; }; class CXFlatLaserClient :public TcpClient { public: CXFlatLaserClient(CommunicationCfg* cfg, AlarmCfg* alarm); ~CXFlatLaserClient(); void GetState(CXFlatLaserState& state); //void DrawClientState()override; void SetPwmFrequency(unsigned short pwmf); void SetPwmDutyCycle(float fvalue); void SetPwmPower(float fvalue); private: void InitCommand(); void static PorcReadInfo1(void* pobject, Command* pcommand); void static PorcReadInfo2(void* pobject, Command* pcommand); void static PorcReadInfo3(void* pobject, Command* pcommand); void static ProcWrite(void* pobject, Command* pcommand) {} private: CXFlatLaserState m_CXFlatLaserState; AlarmCfg* m_LaserAlarm; };