@@ -62,16 +62,16 @@ void ModbusClient::end()
62
62
}
63
63
}
64
64
65
- void ModbusClient::setId (int id )
65
+ int ModbusClient::readCoil (int address )
66
66
{
67
- modbus_set_slave (_mb, id );
67
+ return readCoil ( 0x00 , address );
68
68
}
69
69
70
- int ModbusClient::readCoil (int address)
70
+ int ModbusClient::readCoil (int id, int address)
71
71
{
72
72
uint8_t value;
73
73
74
- if (readCoils (address, &value, 1 ) < 0 ) {
74
+ if (readCoils (id, address, &value, 1 ) < 0 ) {
75
75
return -1 ;
76
76
}
77
77
@@ -80,6 +80,13 @@ int ModbusClient::readCoil(int address)
80
80
81
81
int ModbusClient::readCoils (int address, uint8_t values[], int nb)
82
82
{
83
+ return readCoils (0x00 , address, values, nb);
84
+ }
85
+
86
+ int ModbusClient::readCoils (int id, int address, uint8_t values[], int nb)
87
+ {
88
+ modbus_set_slave (_mb, id);
89
+
83
90
if (modbus_read_bits (_mb, address, nb, values) < 0 ) {
84
91
return 0 ;
85
92
}
@@ -88,10 +95,15 @@ int ModbusClient::readCoils(int address, uint8_t values[], int nb)
88
95
}
89
96
90
97
int ModbusClient::readDiscreteInput (int address)
98
+ {
99
+ return readDiscreteInput (0x00 , address);
100
+ }
101
+
102
+ int ModbusClient::readDiscreteInput (int id, int address)
91
103
{
92
104
uint8_t value;
93
105
94
- if (!readDiscreteInputs (address, &value, 1 )) {
106
+ if (!readDiscreteInputs (id, address, &value, 1 )) {
95
107
return -1 ;
96
108
}
97
109
@@ -100,6 +112,13 @@ int ModbusClient::readDiscreteInput(int address)
100
112
101
113
int ModbusClient::readDiscreteInputs (int address, uint8_t values[], int nb)
102
114
{
115
+ return readDiscreteInputs (0x00 , address, values, nb);
116
+ }
117
+
118
+ int ModbusClient::readDiscreteInputs (int id, int address, uint8_t values[], int nb)
119
+ {
120
+ modbus_set_slave (_mb, id);
121
+
103
122
if (modbus_read_input_bits (_mb, address, nb, values) < 0 ) {
104
123
return 0 ;
105
124
}
@@ -108,10 +127,15 @@ int ModbusClient::readDiscreteInputs(int address, uint8_t values[], int nb)
108
127
}
109
128
110
129
long ModbusClient::readHoldingRegister (int address)
130
+ {
131
+ return readHoldingRegister (0x00 , address);
132
+ }
133
+
134
+ long ModbusClient::readHoldingRegister (int id, int address)
111
135
{
112
136
uint16_t value;
113
137
114
- if (!readHoldingRegisters (address, &value, 1 )) {
138
+ if (!readHoldingRegisters (id, address, &value, 1 )) {
115
139
return -1 ;
116
140
}
117
141
@@ -120,6 +144,13 @@ long ModbusClient::readHoldingRegister(int address)
120
144
121
145
int ModbusClient::readHoldingRegisters (int address, uint16_t values[], int nb)
122
146
{
147
+ return readHoldingRegisters (0x00 , address, values, nb);
148
+ }
149
+
150
+ int ModbusClient::readHoldingRegisters (int id, int address, uint16_t values[], int nb)
151
+ {
152
+ modbus_set_slave (_mb, id);
153
+
123
154
if (modbus_read_registers (_mb, address, nb, values) < 0 ) {
124
155
return 0 ;
125
156
}
@@ -128,10 +159,15 @@ int ModbusClient::readHoldingRegisters(int address, uint16_t values[], int nb)
128
159
}
129
160
130
161
long ModbusClient::readInputRegister (int address)
162
+ {
163
+ return readInputRegister (0x00 , address);
164
+ }
165
+
166
+ long ModbusClient::readInputRegister (int id, int address)
131
167
{
132
168
uint16_t value;
133
169
134
- if (!readInputRegisters (address, &value, 1 )) {
170
+ if (!readInputRegisters (id, address, &value, 1 )) {
135
171
return -1 ;
136
172
}
137
173
@@ -140,6 +176,13 @@ long ModbusClient::readInputRegister(int address)
140
176
141
177
int ModbusClient::readInputRegisters (int address, uint16_t values[], int nb)
142
178
{
179
+ return readInputRegisters (0x00 , address, values, nb);
180
+ }
181
+
182
+ int ModbusClient::readInputRegisters (int id, int address, uint16_t values[], int nb)
183
+ {
184
+ modbus_set_slave (_mb, id);
185
+
143
186
if (modbus_read_input_registers (_mb, address, nb, values) < 0 ) {
144
187
return 0 ;
145
188
}
@@ -149,6 +192,13 @@ int ModbusClient::readInputRegisters(int address, uint16_t values[], int nb)
149
192
150
193
int ModbusClient::writeCoil (int address, uint8_t value)
151
194
{
195
+ return writeCoil (0x00 , address, value);
196
+ }
197
+
198
+ int ModbusClient::writeCoil (int id, int address, uint8_t value)
199
+ {
200
+ modbus_set_slave (_mb, id);
201
+
152
202
if (modbus_write_bit (_mb, address, value) < 0 ) {
153
203
return 0 ;
154
204
}
@@ -158,6 +208,13 @@ int ModbusClient::writeCoil(int address, uint8_t value)
158
208
159
209
int ModbusClient::writeCoils (int address, const uint8_t values[], int nb)
160
210
{
211
+ return writeCoils (0x00 , address, values, nb);
212
+ }
213
+
214
+ int ModbusClient::writeCoils (int id, int address, const uint8_t values[], int nb)
215
+ {
216
+ modbus_set_slave (_mb, id);
217
+
161
218
if (modbus_write_bits (_mb, address, nb, values) < 0 ) {
162
219
return 0 ;
163
220
}
@@ -167,6 +224,13 @@ int ModbusClient::writeCoils(int address, const uint8_t values[], int nb)
167
224
168
225
int ModbusClient::writeHoldingRegister (int address, uint16_t value)
169
226
{
227
+ return writeHoldingRegister (0x00 , address, value);
228
+ }
229
+
230
+ int ModbusClient::writeHoldingRegister (int id, int address, uint16_t value)
231
+ {
232
+ modbus_set_slave (_mb, id);
233
+
170
234
if (modbus_write_register (_mb, address, value) < 0 ) {
171
235
return 0 ;
172
236
}
@@ -176,6 +240,13 @@ int ModbusClient::writeHoldingRegister(int address, uint16_t value)
176
240
177
241
int ModbusClient::writeHoldingRegisters (int address, const uint16_t values[], int nb)
178
242
{
243
+ return writeHoldingRegisters (0x00 , address, values, nb);
244
+ }
245
+
246
+ int ModbusClient::writeHoldingRegisters (int id, int address, const uint16_t values[], int nb)
247
+ {
248
+ modbus_set_slave (_mb, id);
249
+
179
250
if (modbus_write_registers (_mb, address, nb, values) < 0 ) {
180
251
return 0 ;
181
252
}
@@ -185,6 +256,13 @@ int ModbusClient::writeHoldingRegisters(int address, const uint16_t values[], in
185
256
186
257
int ModbusClient::maskWriteRegister (int address, uint16_t andMask, uint16_t orMask)
187
258
{
259
+ return maskWriteRegister (0x00 , address, andMask, orMask);
260
+ }
261
+
262
+ int ModbusClient::maskWriteRegister (int id, int address, uint16_t andMask, uint16_t orMask)
263
+ {
264
+ modbus_set_slave (_mb, id);
265
+
188
266
if (modbus_mask_write_register (_mb, address, andMask, orMask) < 0 ) {
189
267
return 0 ;
190
268
}
@@ -194,6 +272,13 @@ int ModbusClient::maskWriteRegister(int address, uint16_t andMask, uint16_t orMa
194
272
195
273
int ModbusClient::writeAndReadRegisters (int writeAddress, const uint16_t writeValues[], int writeNb, int readAddress, uint16_t readValues[], int readNb)
196
274
{
275
+ return writeAndReadRegisters (0x00 , writeAddress, writeValues, writeNb, readAddress, readValues, readNb);
276
+ }
277
+
278
+ int ModbusClient::writeAndReadRegisters (int id, int writeAddress, const uint16_t writeValues[], int writeNb, int readAddress, uint16_t readValues[], int readNb)
279
+ {
280
+ modbus_set_slave (_mb, id);
281
+
197
282
if (modbus_write_and_read_registers (_mb, writeAddress, writeNb, writeValues, readAddress, readNb, readValues) < 0 ) {
198
283
return 0 ;
199
284
}
0 commit comments