35 lines
738 B
C++
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_
|