#pragma once #include #include #include #include #include #include "common/Fields.h" class CommEntity; class Device { public: static std::shared_ptr create(Fields& fields); void setFields(Fields& fields); int startComm(); void getCacheVoltage(std::vector& vec); void getCacheCurrent(std::vector& vec); void getCachePower(std::vector& vec); // int datatype: 1: 电压,2:电流,3:功率 void setCache(int datatype, std::vector& vec); bool cache(int npos); void storeDB(int npos); void setParam(std::string k, std::string v); std::string getParam(std::string k, std::string defaultVal = ""); void getRuntimeParams(std::vector>& params); public: int deviceId = -1; int type = -1; std::string name; std::string code; int category; bool isOpen = false; std::string attrsJson = ""; int err = 0; int online = 0; int running = 0; //std::map mapAttrs; Fields attrs; // 通讯entity std::shared_ptr commEntity; int64_t tsDataDate {}; std::map mapCacheVoltage; std::map mapCacheCurrent; std::map mapCachePower; std::map mapParams; };