22
22
#include " ModbusClient.h"
23
23
24
24
ModbusClient::ModbusClient () :
25
- _mb(NULL )
25
+ _mb(NULL ),
26
+ _defaultId(0x00 )
26
27
{
27
28
}
28
29
@@ -33,11 +34,12 @@ ModbusClient::~ModbusClient()
33
34
}
34
35
}
35
36
36
- int ModbusClient::begin (modbus_t * mb)
37
+ int ModbusClient::begin (modbus_t * mb, int defaultId )
37
38
{
38
39
end ();
39
40
40
41
_mb = mb;
42
+ _defaultId = defaultId;
41
43
if (_mb == NULL ) {
42
44
return 0 ;
43
45
}
@@ -49,6 +51,8 @@ int ModbusClient::begin(modbus_t* mb)
49
51
return 0 ;
50
52
}
51
53
54
+ modbus_set_error_recovery (_mb, MODBUS_ERROR_RECOVERY_PROTOCOL);
55
+
52
56
return 1 ;
53
57
}
54
58
@@ -64,7 +68,7 @@ void ModbusClient::end()
64
68
65
69
int ModbusClient::readCoil (int address)
66
70
{
67
- return readCoil (0x00 , address);
71
+ return readCoil (_defaultId , address);
68
72
}
69
73
70
74
int ModbusClient::readCoil (int id, int address)
@@ -80,7 +84,7 @@ int ModbusClient::readCoil(int id, int address)
80
84
81
85
int ModbusClient::readCoils (int address, uint8_t values[], int nb)
82
86
{
83
- return readCoils (0x00 , address, values, nb);
87
+ return readCoils (_defaultId , address, values, nb);
84
88
}
85
89
86
90
int ModbusClient::readCoils (int id, int address, uint8_t values[], int nb)
@@ -96,7 +100,7 @@ int ModbusClient::readCoils(int id, int address, uint8_t values[], int nb)
96
100
97
101
int ModbusClient::readDiscreteInput (int address)
98
102
{
99
- return readDiscreteInput (0x00 , address);
103
+ return readDiscreteInput (_defaultId , address);
100
104
}
101
105
102
106
int ModbusClient::readDiscreteInput (int id, int address)
@@ -112,7 +116,7 @@ int ModbusClient::readDiscreteInput(int id, int address)
112
116
113
117
int ModbusClient::readDiscreteInputs (int address, uint8_t values[], int nb)
114
118
{
115
- return readDiscreteInputs (0x00 , address, values, nb);
119
+ return readDiscreteInputs (_defaultId , address, values, nb);
116
120
}
117
121
118
122
int ModbusClient::readDiscreteInputs (int id, int address, uint8_t values[], int nb)
@@ -128,7 +132,7 @@ int ModbusClient::readDiscreteInputs(int id, int address, uint8_t values[], int
128
132
129
133
long ModbusClient::readHoldingRegister (int address)
130
134
{
131
- return readHoldingRegister (0x00 , address);
135
+ return readHoldingRegister (_defaultId , address);
132
136
}
133
137
134
138
long ModbusClient::readHoldingRegister (int id, int address)
@@ -144,7 +148,7 @@ long ModbusClient::readHoldingRegister(int id, int address)
144
148
145
149
int ModbusClient::readHoldingRegisters (int address, uint16_t values[], int nb)
146
150
{
147
- return readHoldingRegisters (0x00 , address, values, nb);
151
+ return readHoldingRegisters (_defaultId , address, values, nb);
148
152
}
149
153
150
154
int ModbusClient::readHoldingRegisters (int id, int address, uint16_t values[], int nb)
@@ -160,7 +164,7 @@ int ModbusClient::readHoldingRegisters(int id, int address, uint16_t values[], i
160
164
161
165
long ModbusClient::readInputRegister (int address)
162
166
{
163
- return readInputRegister (0x00 , address);
167
+ return readInputRegister (_defaultId , address);
164
168
}
165
169
166
170
long ModbusClient::readInputRegister (int id, int address)
@@ -176,7 +180,7 @@ long ModbusClient::readInputRegister(int id, int address)
176
180
177
181
int ModbusClient::readInputRegisters (int address, uint16_t values[], int nb)
178
182
{
179
- return readInputRegisters (0x00 , address, values, nb);
183
+ return readInputRegisters (_defaultId , address, values, nb);
180
184
}
181
185
182
186
int ModbusClient::readInputRegisters (int id, int address, uint16_t values[], int nb)
@@ -192,7 +196,7 @@ int ModbusClient::readInputRegisters(int id, int address, uint16_t values[], int
192
196
193
197
int ModbusClient::writeCoil (int address, uint8_t value)
194
198
{
195
- return writeCoil (0x00 , address, value);
199
+ return writeCoil (_defaultId , address, value);
196
200
}
197
201
198
202
int ModbusClient::writeCoil (int id, int address, uint8_t value)
@@ -208,7 +212,7 @@ int ModbusClient::writeCoil(int id, int address, uint8_t value)
208
212
209
213
int ModbusClient::writeCoils (int address, const uint8_t values[], int nb)
210
214
{
211
- return writeCoils (0x00 , address, values, nb);
215
+ return writeCoils (_defaultId , address, values, nb);
212
216
}
213
217
214
218
int ModbusClient::writeCoils (int id, int address, const uint8_t values[], int nb)
@@ -224,7 +228,7 @@ int ModbusClient::writeCoils(int id, int address, const uint8_t values[], int nb
224
228
225
229
int ModbusClient::writeHoldingRegister (int address, uint16_t value)
226
230
{
227
- return writeHoldingRegister (0x00 , address, value);
231
+ return writeHoldingRegister (_defaultId , address, value);
228
232
}
229
233
230
234
int ModbusClient::writeHoldingRegister (int id, int address, uint16_t value)
@@ -240,7 +244,7 @@ int ModbusClient::writeHoldingRegister(int id, int address, uint16_t value)
240
244
241
245
int ModbusClient::writeHoldingRegisters (int address, const uint16_t values[], int nb)
242
246
{
243
- return writeHoldingRegisters (0x00 , address, values, nb);
247
+ return writeHoldingRegisters (_defaultId , address, values, nb);
244
248
}
245
249
246
250
int ModbusClient::writeHoldingRegisters (int id, int address, const uint16_t values[], int nb)
@@ -256,7 +260,7 @@ int ModbusClient::writeHoldingRegisters(int id, int address, const uint16_t valu
256
260
257
261
int ModbusClient::maskWriteRegister (int address, uint16_t andMask, uint16_t orMask)
258
262
{
259
- return maskWriteRegister (0x00 , address, andMask, orMask);
263
+ return maskWriteRegister (_defaultId , address, andMask, orMask);
260
264
}
261
265
262
266
int ModbusClient::maskWriteRegister (int id, int address, uint16_t andMask, uint16_t orMask)
@@ -272,7 +276,7 @@ int ModbusClient::maskWriteRegister(int id, int address, uint16_t andMask, uint1
272
276
273
277
int ModbusClient::writeAndReadRegisters (int writeAddress, const uint16_t writeValues[], int writeNb, int readAddress, uint16_t readValues[], int readNb)
274
278
{
275
- return writeAndReadRegisters (0x00 , writeAddress, writeValues, writeNb, readAddress, readValues, readNb);
279
+ return writeAndReadRegisters (_defaultId , writeAddress, writeValues, writeNb, readAddress, readValues, readNb);
276
280
}
277
281
278
282
int ModbusClient::writeAndReadRegisters (int id, int writeAddress, const uint16_t writeValues[], int writeNb, int readAddress, uint16_t readValues[], int readNb)
0 commit comments