115 lines
2.8 KiB
C++
115 lines
2.8 KiB
C++
#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;
|
||
};
|