2025-06-22 18:28:29 +03:00

35 lines
738 B
C++

#ifndef JANITZA104_ESP32_JANITZA_H_
#define JANITZA104_ESP32_JANITZA_H_
#include <ModbusMaster.h>
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_