-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathmodbustcp.h
51 lines (39 loc) · 1.05 KB
/
modbustcp.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#ifndef MODBUSTCP_H
#define MODBUSTCP_H
#include <WiFi.h>
#include <ModbusServerTCPasync.h>
#include <AdvancedLogger.h>
#include "ade7953.h"
#include "customtime.h"
#include "constants.h"
#include "global.h"
class ModbusTcp
{
public:
ModbusTcp(
int port,
int serverId,
int maxClients,
int timeout,
AdvancedLogger &logger,
Ade7953 &ade7953,
CustomTime &customTime);
void begin();
private:
ModbusServerTCPasync _mbServer;
uint16_t _getRegisterValue(uint16_t address);
uint16_t _getFloatBits(float value, bool high);
bool _isValidRegister(uint16_t address);
static ModbusMessage _handleReadHoldingRegisters(ModbusMessage request); // Must resturn a ModbusMessage as requested by registerWorker() method
int _port;
int _serverId;
int _maxClients;
int _timeout;
AdvancedLogger &_logger;
Ade7953 &_ade7953;
CustomTime &_customTime;
int _lowerLimitChannelRegisters;
int _stepChannelRegisters;
int _upperLimitChannelRegisters;
};
#endif // MODBUS_TCP_H