GrpcPrint/PrintS/Communication/IPGLaserClient.h

171 lines
5.2 KiB
C
Raw Normal View History

2024-03-19 17:45:12 +08:00
#pragma once
#include "BaseClient.h"
#include "../config/bean/AlarmCfg.h"
class IPGLaserState {
public:
IPGLaserState() {
currentSetpoint=0.0f;
laserTemperature=0.0f;
moduleErrorCode=0;
outputPower = "OFF";
isOverheat=false;
isEmissionOn = false;
isHighBackReflectionLevel = false;
isExtCtrlEnable = false;
isModuleDisconnected = false;
isAimingBeamON = false;
isModuleAlarm = false;
// isPulseTooShort = false;
// isPulseMode = false;
isPowerSupplyOff = false;
isModulationEnabled = false;
isEmission = false;
// isGateModeEnabled = false;
// isHighPulseEnergy = false;
isExtEmissionCtrlEnabled = false;
isPowerSupplyFailure = false;
// isLockFrontPanel = false;
// isKeyswitchInREMPosition = false;
// isWaveformPulseModeEnabled = false;
// isHighDutyCycle = false;
isLeakageCurrentTooHigh = false;
isLowTemperature = false;
isPowerSupplyVotageAlarm = false;
isExtRedLightCtrlEnabled = false;
isCritialError = false;
isOpticalInterlockActive = false;
//isAveragePowerTooHigh = false;
}
public:
float currentSetpoint; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float laserTemperature; //<2F>ڲ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>
string outputPower; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W
int moduleErrorCode; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isOverheat; //<2F>¶ȹ<C2B6><C8B9><EFBFBD>
bool isEmissionOn; //ʹ<><CAB9>
bool isHighBackReflectionLevel; //<2F>߷<EFBFBD><DFB7><EFBFBD><EFBFBD><EFBFBD>
bool isExtCtrlEnable; //<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>ģʽ
bool isModuleDisconnected; //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ʧ<EFBFBD><CAA7>
bool isModuleAlarm; //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isAimingBeamON; //<2F><><EFBFBD>
//bool isPulseTooShort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫С
//bool isPulseMode; //<2F><><EFBFBD><EFBFBD>ģʽ
bool isPowerSupplyOff; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ر<EFBFBD>
bool isModulationEnabled; //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
bool isEmission; //<2F><><EFBFBD><EFBFBD><E2B7A2>
// bool isGateModeEnabled; //Gateģʽ<C4A3><CABD><EFBFBD><EFBFBD>
// bool isHighPulseEnergy; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>
bool isExtEmissionCtrlEnabled; //<2F>ⲿEmission<6F><6E><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD>
bool isPowerSupplyFailure; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
//bool isLockFrontPanel; //ǰ<><C7B0>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//bool isKeyswitchInREMPosition; //Կ<>׿<EFBFBD><D7BF><EFBFBD>REMλ<4D><CEBB>
//bool isWaveformPulseModeEnabled;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
//bool isHighDutyCycle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>
bool isLowTemperature; //<2F>¶ȹ<C2B6><C8B9><EFBFBD>
bool isPowerSupplyVotageAlarm; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>Χ
bool isLeakageCurrentTooHigh; //©<><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isExtRedLightCtrlEnabled; //<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD>
bool isCritialError; //<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
bool isOpticalInterlockActive; //<2F><>ѧ<EFBFBD><D1A7>·<EFBFBD><C2B7>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·
//bool isAveragePowerTooHigh; //ƽ<><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫<EFBFBD><CCAB>
};
class IPGLaserClient:public TcpClient
{
public:
IPGLaserClient(CommunicationCfg* pconfig, AlarmCfg* laserAlarm, int freq = 100);
~IPGLaserClient();
void InitCommand();
void ResetAlarm();
void GetState(IPGLaserState& state);
private:
void static PorcReadCurrentSetpoint(void* pobject, Command* pcommand);
void static PorcReadLaserTemp(void* pobject, Command* pcommand);
void static PorcReadOutputPower(void* pobject, Command* pcommand);
void static PorcModuleErrorCode(void* pobject, Command* pcommand);
void static PorcDeviceStatus(void* pobject, Command* pcommand);
private:
IPGLaserState m_State;
AlarmCfg* m_LaserAlarm;
};
class IPGLaserStateV1 {
public:
IPGLaserStateV1() {
currentSetpoint = 0.0f;
laserTemperature = 0.0f;
moduleErrorCode = 0;
outputPower = "OFF";
isCommandBufferOverload = false;
isOverheat = false;
isEmissionOn = false;
isHighBackReflectionLevel = false;
isAnalogPowerControlEnable = false;
isAimingBeamON = false;
isPowerSupplyOff = false;
isModulationEnabled = false;
isEmission = false;
isGateModeEnable = false;
isHardwareEmissionCtrlEnabled = false;
isPowerSupplyFailure = false;
isLowTemperature = false;
isPowerSupplyAlarm = false;
isHardwareAimingBeanControlEnable = false;
isCritialError = false;
isFiberInterlockActive = false;
//isAveragePowerTooHigh = false;
}
public:
float currentSetpoint; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float laserTemperature; //<2F>ڲ<EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>
string outputPower; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W
int moduleErrorCode; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isCommandBufferOverload; //ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isOverheat; //<2F>¶ȹ<C2B6><C8B9><EFBFBD>
bool isEmissionOn; //ʹ<><CAB9>
bool isHighBackReflectionLevel; //<2F>߷<EFBFBD><DFB7><EFBFBD><EFBFBD><EFBFBD>
bool isAnalogPowerControlEnable; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool isAimingBeamON; //<2F><><EFBFBD>
bool isPowerSupplyOff; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>ر<EFBFBD>
bool isModulationEnabled; //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
bool isEmission; //<2F><><EFBFBD><EFBFBD><E2B7A2>
bool isGateModeEnable; //<2F><>ģʽ<C4A3><CABD><EFBFBD><EFBFBD>
bool isHardwareEmissionCtrlEnabled; //Ӳ<>ط<EFBFBD><D8B7><EFBFBD><E4BFAA>
bool isPowerSupplyFailure; //ģ<><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>
bool isLowTemperature; //<2F>¶ȹ<C2B6><C8B9><EFBFBD>
bool isPowerSupplyAlarm; //<2F><><EFBFBD><EFBFBD><E7B1A8>
bool isHardwareAimingBeanControlEnable; //Ӳ<>غ<EFBFBD><D8BA><EFBFBD><E2BFAA>
bool isCritialError; //<2F>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
bool isFiberInterlockActive; //<2F><>·<EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
};
class IPGLaserClientV1 :public TcpClient
{
public:
IPGLaserClientV1(CommunicationCfg* pconfig, AlarmCfg* laserAlarm);
~IPGLaserClientV1();
//void Init();
void InitCommand();
void ResetAlarm();
void GetState(IPGLaserStateV1& state);
void DrawClientState();
private:
void static PorcReadCurrentSetpoint(void* pobject, Command* pcommand);
void static PorcReadLaserTemp(void* pobject, Command* pcommand);
void static PorcReadOutputPower(void* pobject, Command* pcommand);
void static PorcModuleErrorCode(void* pobject, Command* pcommand);
void static PorcDeviceStatus(void* pobject, Command* pcommand);
private:
IPGLaserStateV1 m_State;
AlarmCfg* m_LaserAlarm;
AlarmCfgWrapper* m_AlarmCfgWrapper;
};