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