GrpcPrint/PrintS/Communication/CXFlatLaserClient.h

148 lines
5.6 KiB
C++

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