GrpcPrint/PrintS/Communication/OxygenClient.h

70 lines
2.2 KiB
C++

#pragma once
#include "BaseClient.h"
//#include "../config/ConfigManager.h"
#include <map>
#include "../config/bean/ExtCfg.h"
#pragma pack(1)
class Oxygenstat
{
public:
explicit Oxygenstat()
: concentrationValue(new FloatData("concentrationValue",u8"浓度值"))
, valueUnit(new StrData("valueUnit",u8"浓度单位"))
, scale(new IntData("scale",u8"数值放大倍数",1))
, tempValue(new FloatData("tempValue",u8"温度值"))
, humidityValue(new FloatData("humidityValue",u8"湿度值"))
, concentrationAgValue(new FloatData("concentrationAgValue",u8"模拟量"))
{
//concentrationValue = 0.0f;
//valueUnit = "";
//scale = 1;
//tempValue = 0.0f;
//humidityValue = 0.0f;
//concentrationAgValue = 0.0f;
}
public:
BaseStat baseStat;
char m_startFlag;
FloatData* concentrationValue; //浓度值
StrData* valueUnit; //浓度单位
IntData* scale; //数值放大倍数
FloatData* tempValue; //温度值
FloatData* humidityValue; //湿度值
FloatData* concentrationAgValue; //模拟量
char m_endFlag;
};
#pragma pack()
class OxygenClient :public TcpClient
{
public:
OxygenClient(CommunicationCfg* pconfig);
~OxygenClient();
void GetOxygenStat(unsigned char addr, Oxygenstat& stat);
void GetOxygenStat(Oxygenstat& stat1, Oxygenstat& stat2, Oxygenstat& stat3);
void InitCommand();
protected:
virtual void ServerDisconnectProc();
virtual void WriteSuccessProc(int wlength, unsigned char* buffer, Command* pcommand);
virtual void WriteTimeoutProc(Command* pcommand);
virtual void ReadTimeoutProc(Command* pcommand);
virtual void ReadSuccessProc(int rlength, unsigned char* buffer, Command* pcommand);
//void AddToBaseMp(const string& suff, Oxygenstat* stat);
private:
void static PorcOxygenValue(void* pobject, Command* pcommand);
void static ProcPointInfo(void* pobject, Command* pcommand);
void static PorcConcentrationValue(void* pobject, Command* pcommand);
void static ProcTempInfo(void* pobject, Command* pcommand);
void static ProcNewVersion(void* pobject, Command* pcommand);
private:
map<unsigned char, Oxygenstat*> m_Oxygens;
ExtCfg* m_ExtCfg;
//vector<Command*> m_PurifierOxygenCommands;
//map<unsigned char, double> m_Oxygens;
};