#ifndef DTU_H #define DTU_H #include #include #include #include "microinverter.h" #include "modbus.h" class Dtu { private: modbus_t *modbus; std::vector microinverters; Port dtuPort; int rtuId; bool connected; void populateMicroinverters(); public: Dtu(const char *address, int id, bool rtu, bool tcp); Dtu(modbus_t *modbus, int id); std::pair getMicroinverterBySerialNumber(long long serialNumber); bool isConnected(); 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); bool empty(); void listOfMicroinverters(); float getCurrentPower(); int getCurrentOnOff(); void turnOffMicroinverters(); void turnOnMicroinverters(); void limitMicroinverters(uint16_t limit); ~Dtu(); }; #endif