#ifndef DTU_H #define DTU_H #include #include #include #include "microinverter.h" #include "modbus.h" class Dtu { private: std::shared_ptr modbus; std::vector microinverters; void populateMicroinverters(); public: Dtu(const char *ip_address, int port); std::pair getMicroinverterBySerialNumber(long long serialNumber); bool isConnected(); bool modbusError(); std::string modbusErrorMessage(); void updateMicroinverters(std::vector ¶metersToGet, bool allParameters, std::vector µinvertersToGet); void printMicroinverters(std::vector ¶metersToGet, bool allParameters, std::vector µinvertersToGet, bool shortNames, bool printTodayProduction, bool printTotalProduction); void setStatusMicroinverters(uint16_t value, std::string statusName, std::vector& microinvertersToSet); ~Dtu(); }; #endif