#pragma once #include "BaseClient.h" class Upsstat { public: Upsstat() { inputVol = 0; lastVol = 0; outputVol = 0; outputLoad = 0; outputF = 0; unitVol = 0; tempValue = 0; isVolError = false; isBatteryVolLow = false; isBypassMode = false; isUpsError = false; upsType = false; isTesting = false; isShutdown = false; } ~Upsstat() {} public: BaseStat baseStat; float inputVol; //输入电压: MMM.M float lastVol; //上一次转电池放电时电压: NNN.N float outputVol; //输出电压: PPP.P int outputLoad; //输出负载百分比: QQQ float outputF; //输入频率: RR.R float unitVol; //电池单元电压: S.SS float tempValue; //温度: TT.T bool isVolError; //市电异常 bool isBatteryVolLow; //电池电压低 bool isBypassMode; //旁路模式 bool isUpsError; //UPS 故障 bool upsType; //UPS 后备式 (0 :在线式) bool isTesting; //测试进行中 bool isShutdown; //关机 }; #pragma pack(1) class UpsstatParam { public: UpsstatParam() : inputVol(new FloatData("inputVol", u8"输入电压: MMM.M")) , lastVol(new FloatData("lastVol", u8"上一次转电池放电时电压: NNN.N")) , outputVol(new FloatData("outputVol", u8"输出电压: PPP.P")) , outputLoad(new IntData("outputLoad", u8"输出负载百分比: QQQ")) , outputF(new FloatData("outputF", u8"输入频率: RR.R")) , unitVol(new FloatData("unitVol", u8"电池单元电压: S.SS")) , tempValue(new FloatData("tempValue", u8"温度: TT.T")) , isVolError(new BoolData("isVolError", u8"市电异常")) , isBatteryVolLow(new BoolData("isBatteryVolLow", u8"电池电压低")) , isBypassMode(new BoolData("isBypassMode", u8"旁路模式")) , isUpsError(new BoolData("isUpsError", u8"UPS 故障")) , upsType(new BoolData("upsType", u8"UPS 后备式 (0 :在线式)")) , isTesting(new BoolData("isTesting", u8"测试进行中")) , isShutdown(new BoolData("isShutdown", u8"关机")) { //inputVol = 0; //lastVol = 0; //outputVol = 0; //outputLoad = 0; //outputF = 0; //unitVol = 0; //tempValue = 0; //isVolError = false; //isBatteryVolLow = false; //isBypassMode = false; //isUpsError = false; //upsType = false; //isTesting = false; //isShutdown = false; } ~UpsstatParam(){} public: BaseStat baseStat; char m_startFlag; //开始标记 FloatData* inputVol; //输入电压: MMM.M FloatData* lastVol; //上一次转电池放电时电压: NNN.N FloatData* outputVol; //输出电压: PPP.P IntData* outputLoad; //输出负载百分比: QQQ FloatData* outputF; //输入频率: RR.R FloatData* unitVol; //电池单元电压: S.SS FloatData* tempValue; //温度: TT.T BoolData* isVolError; //市电异常 BoolData* isBatteryVolLow; //电池电压低 BoolData* isBypassMode; //旁路模式 BoolData* isUpsError; //UPS 故障 BoolData* upsType; //UPS 后备式 (0 :在线式) BoolData* isTesting; //测试进行中 BoolData* isShutdown; //关机 char m_endFlag; //结束标记 }; #pragma pack() class UPSClient :public TcpClient { public: UPSClient(void* pconfig = nullptr); ~UPSClient(); //void InitCommand(); //void ShutDownUps(float minute); void GetStat(Upsstat& stat); //void SendToClients(); private: //void static ProcInfo(void* pobject, Command* pcommand); //void static ProcShutDown(void* pobject, Command* pcommand); private: UpsstatParam m_Stat; };