Skip to content

Commit fa633ee

Browse files
committed
simple functions transformed into "inline"
1 parent 3c170e1 commit fa633ee

File tree

2 files changed

+41
-78
lines changed

2 files changed

+41
-78
lines changed

src/Modbus.cpp

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -74,69 +74,6 @@ word Modbus::reg (word address) {
7474
}
7575
}
7676

77-
// INLINE --------------------
78-
void Modbus::addHreg (word offset, word value) {
79-
this->addReg (offset + 40001, value);
80-
}
81-
82-
bool Modbus::setHreg (word offset, word value) {
83-
return setReg (offset + 40001, value);
84-
}
85-
86-
word Modbus::hreg (word offset) {
87-
return reg (offset + 40001);
88-
}
89-
90-
#ifndef USE_HOLDING_REGISTERS_ONLY
91-
void Modbus::addCoil (word offset, bool value) {
92-
this->addReg (offset + 1, value ? 0xFF00 : 0x0000);
93-
}
94-
95-
void Modbus::addIsts (word offset, bool value) {
96-
this->addReg (offset + 10001, value ? 0xFF00 : 0x0000);
97-
}
98-
99-
void Modbus::addIreg (word offset, word value) {
100-
this->addReg (offset + 30001, value);
101-
}
102-
103-
bool Modbus::setCoil (word offset, bool value) {
104-
return setReg (offset + 1, value ? 0xFF00 : 0x0000);
105-
}
106-
107-
bool Modbus::setIsts (word offset, bool value) {
108-
return setReg (offset + 10001, value ? 0xFF00 : 0x0000);
109-
}
110-
111-
bool Modbus::setIreg (word offset, word value) {
112-
return setReg (offset + 30001, value);
113-
}
114-
115-
bool Modbus::coil (word offset) {
116-
if (reg (offset + 1) == 0xFF00) {
117-
return true;
118-
}
119-
else {
120-
return false;
121-
}
122-
}
123-
124-
bool Modbus::ists (word offset) {
125-
if (reg (offset + 10001) == 0xFF00) {
126-
return true;
127-
}
128-
else {
129-
return false;
130-
}
131-
}
132-
133-
word Modbus::ireg (word offset) {
134-
return reg (offset + 30001);
135-
}
136-
#endif
137-
// INLINE --------------------
138-
139-
14077
void Modbus::receivePDU (byte * frame) {
14178
byte fcode = frame[0];
14279
word field1 = (word) frame[1] << 8 | (word) frame[2];

src/Modbus.h

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
/*
22
Modbus.h - Header for Modbus Base Library
33
Copyright (C) 2014 André Sarmento Barbosa
4+
Copyright (C) 2023 Pascal JEAN aka epsilonrt
45
*/
56
#include "Arduino.h"
67

78
#pragma once
89

9-
#define MAX_REGS 32
10-
#define MAX_FRAME 128
10+
#define MAX_REGS 32 // Unused !
11+
#define MAX_FRAME 128 // Unused !
1112
//#define USE_HOLDING_REGISTERS_ONLY
1213

1314
// Function Codes
@@ -102,21 +103,29 @@ class Modbus {
102103
@param offset register offset (PDU addressing: 0-9999)
103104
@param value default value
104105
*/
105-
void addHreg (word offset, word value = 0);
106+
inline void addHreg (word offset, word value = 0) {
107+
this->addReg (offset + 40001, value);
108+
}
109+
106110
/**
107111
@brief Change the value of a holding register
108112
This value will be returned when bus read, the master can also modify it.
109113
@param offset register offset (PDU addressing: 0-9999)
110114
@param value new value
111115
@return true, false if register not found.
112116
*/
113-
bool setHreg (word offset, word value);
117+
inline bool setHreg (word offset, word value) {
118+
return setReg (offset + 40001, value);
119+
}
114120
/**
115121
@brief Return the value of a holding register
116122
@param offset register offset (PDU addressing: 0-9999)
117123
@return register value
118124
*/
119-
word hreg (word offset);
125+
inline word hreg (word offset) {
126+
return reg (offset + 40001);
127+
}
128+
120129
/**
121130
@brief Change the value of a holding register
122131
This value will be returned when bus read, the master can also modify it.
@@ -151,62 +160,79 @@ class Modbus {
151160
@param offset coil offset (PDU addressing: 0-9999)
152161
@param value default value
153162
*/
154-
void addCoil (word offset, bool value = false);
163+
void addCoil (word offset, bool value = false) {
164+
this->addReg (offset + 1, value ? 0xFF00 : 0x0000);
165+
}
155166
/**
156167
@brief Add a discrete input
157168
@param offset input offset (PDU addressing: 0-9999)
158169
@param value default value
159170
*/
160-
void addIsts (word offset, bool value = false);
171+
inline void addIsts (word offset, bool value = false) {
172+
this->addReg (offset + 10001, value ? 0xFF00 : 0x0000);
173+
}
161174
/**
162175
@brief Add a input register
163176
@param offset register offset (PDU addressing: 0-9999)
164177
@param value default value
165178
*/
166-
void addIreg (word offset, word value = 0);
179+
inline void addIreg (word offset, word value = 0) {
180+
this->addReg (offset + 30001, value);
181+
}
167182
/**
168183
@brief Change the value of a coil
169184
This value will be returned when bus read, the master can also modify it.
170185
@param offset register offset (PDU addressing: 0-9999)
171186
@param value new value
172187
@return true, false if coil not found.
173188
*/
174-
bool setCoil (word offset, bool value);
189+
inline bool setCoil (word offset, bool value) {
190+
return setReg (offset + 1, value ? 0xFF00 : 0x0000);
191+
}
175192
/**
176193
@brief Change the value of a discrete input
177194
This value will be returned when bus read,.
178195
@param offset input offset (PDU addressing: 0-9999)
179196
@param value new value
180197
@return true, false if input not found.
181198
*/
182-
bool setIsts (word offset, bool value);
199+
inline bool setIsts (word offset, bool value) {
200+
return setReg (offset + 10001, value ? 0xFF00 : 0x0000);
201+
}
183202
/**
184203
@brief Change the value of an input register
185204
This value will be returned when bus read.
186205
@param offset register offset (PDU addressing: 0-9999)
187206
@param value new value
188207
@return true, false if register not found.
189208
*/
190-
bool setIreg (word offset, word value);
209+
inline bool setIreg (word offset, word value) {
210+
return setReg (offset + 30001, value);
211+
}
191212
/**
192213
@brief Return the value of a coil
193214
@param offset register offset (PDU addressing: 0-9999)
194215
@return coil value
195216
*/
196-
bool coil (word offset);
217+
inline bool coil (word offset) {
218+
return (reg (offset + 1) == 0xFF00);
219+
}
197220
/**
198221
@brief Return the value of a discrete input
199222
@param offset input offset (PDU addressing: 0-9999)
200223
@return input value
201224
*/
202-
bool ists (word offset);
225+
inline bool ists (word offset) {
226+
return (reg (offset + 10001) == 0xFF00);
227+
}
203228
/**
204229
@brief Return the value of an input register
205230
@param offset register offset (PDU addressing: 0-9999)
206231
@return register value
207232
*/
208-
word ireg (word offset);
209-
233+
inline word ireg (word offset) {
234+
return reg (offset + 30001);
235+
}
210236
/**
211237
@brief Change the value of a coil
212238
This value will be returned when bus read, the master can also modify it.

0 commit comments

Comments
 (0)