GrpcPrint/PrintC/Communication/TempCtrlClient.h

115 lines
2.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include "BaseClient.h"
struct TempAlarm
{
bool isOverLimit; //上限报警
bool isLowerLimit; //下限报警
bool isActiveAlarm; //正偏差报警
bool isInactiveAlarm; //负偏差报警
bool isInputLimit; //超量程报警
bool al1; //AL1状态0为动作
bool al2; //AL2状态0为动作
TempAlarm() {
isOverLimit = false;
isLowerLimit = false;
isActiveAlarm = false;
isInactiveAlarm = false;
isInputLimit = false;
al1 = false;
al2 = false;
}
};
class TempStat
{
public:
TempStat() {
measuredValue = 0;
settingValue = 0;
outputValue = 0;
scale = 0;
}
~TempStat() {}
public:
BaseStat baseStat;
float measuredValue; //测量值
float settingValue; //给定值
unsigned char outputValue; //输出值MV
TempAlarm alarm; //报警信息
int scale; //数值放大倍数
};
#pragma pack(1)
struct TempAlarmParam
{
char m_startFlag; //开始标记
BoolData* isOverLimit; //上限报警
BoolData* isLowerLimit; //下限报警
BoolData* isActiveAlarm; //正偏差报警
BoolData* isInactiveAlarm; //负偏差报警
BoolData* isInputLimit; //超量程报警
BoolData* al1; //AL1状态0为动作
BoolData* al2; //AL2状态0为动作
char m_endFlag; //结束标记
TempAlarmParam()
: isOverLimit(new BoolData("isOverLimit", u8"上限报警"))
, isLowerLimit(new BoolData("isLowerLimit", u8"下限报警"))
, isActiveAlarm(new BoolData("isActiveAlarm", u8"正偏差报警"))
, isInactiveAlarm(new BoolData("isInactiveAlarm", u8"负偏差报警"))
, isInputLimit(new BoolData("isInputLimit", u8"超量程报警"))
, al1(new BoolData("al1", u8"AL1状态0为动作"))
, al2(new BoolData("al2", u8"AL2状态0为动作")){
}
};
class TempStatParam
{
public:
TempStatParam()
: measuredValue(new FloatData("measuredValue", u8"测量值"))
, settingValue(new FloatData("settingValue", u8"给定值"))
, outputValue(new UcharData("outputValue", u8"输出值MV"))
, scale(new IntData("scale", u8"数值放大倍数")){
//measuredValue = 0;
//settingValue = 0;
//outputValue = 0;
//scale = 0;
}
~TempStatParam(){}
public:
BaseStat baseStat;
char m_startFlag; //开始标记
FloatData* measuredValue; //测量值
FloatData* settingValue; //给定值
UcharData* outputValue; //输出值MV
IntData* scale; //数值放大倍数
char m_endFlag; //开始标记
TempAlarmParam alarm; //报警信息
};
#pragma pack()
class TempCtrlClient :public TcpClient
{
public:
TempCtrlClient(void* pconfig = nullptr);
~TempCtrlClient();
//void SetTargeValue(float value);
void GetStat(TempStat& stat);
private:
//void InitCommand();
//void static ProcTempInfo(void* pobject, Command* pcommand);
//void static ProcSetTemp(void* pobject, Command* pcommand);
private:
TempStatParam m_Stat;
};