#ifndef JANITZA104_ESP32_JANITZA_H_ #define JANITZA104_ESP32_JANITZA_H_ #include enum class JanitzaType { FLOAT, LONG64, INT, SHORT }; enum class JanitzaUnit { V, A, W, VA, Wh }; struct JanitzaRegister { uint16_t addr; JanitzaType type; JanitzaUnit unit; const char* name; const char* desc; }; class JanitzaReader { private: ModbusMaster node; uint8_t lastErrorCode = 0; static void modbusPreTransmissionCallback(); static void modbusPostTransmissionCallback(); public: void configure(); bool readFloat(const JanitzaRegister& reg, float* val); uint8_t getLastErrorCode() const; }; const char* JanitzaUnitStr(JanitzaUnit unit); #endif //JANITZA104_ESP32_JANITZA_H_