GrpcPrint/PrintC/Communication/TempCtrlClient.h

115 lines
2.8 KiB
C
Raw Normal View History

2024-04-18 11:59:51 +08:00
#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;
};