2222#include < modbus.h>
2323#include " global.h"
2424
25+ /* *
26+ *
27+ */
2528namespace Modbus {
2629
2730 const int Broadcast = MODBUS_BROADCAST_ADDRESS;
@@ -61,7 +64,7 @@ namespace Modbus {
6164 Float,
6265 Double
6366 };
64-
67+
6568 enum Endian {
6669 EndianBigBig = 0x00 , // bytes in big endian order, word in big endian order
6770 EndianBig = EndianBigBig,
@@ -86,7 +89,7 @@ namespace Modbus {
8689
8790 /* *
8891 * @class Timeout
89- * @brief
92+ * @brief Représente une durée de timeout
9093 */
9194 class Timeout {
9295 public:
@@ -96,74 +99,13 @@ namespace Modbus {
9699 uint32_t usec;
97100 };
98101
99- /* *
100- * @class NetLayer
101- * @brief
102- */
103- class NetLayer {
104-
105- protected:
106- class Private ;
107- NetLayer (Private &dd);
108- std::unique_ptr<Private> d_ptr;
109102
110- private:
111- PIMP_DECLARE_PRIVATE (NetLayer)
112- };
113-
114- /* *
115- * @class TcpLayer
116- * @brief
117- */
118- class TcpLayer : public NetLayer {
119- public:
120- const std::string & node () const ;
121- const std::string & service () const ;
122-
123- friend class Device ;
124-
125- protected:
126- class Private ;
127- TcpLayer (Private &dd);
128-
129- private:
130- PIMP_DECLARE_PRIVATE (TcpLayer)
131- };
132-
133- /* *
134- * @class RtuLayer
135- * @brief
136- */
137- class RtuLayer : public NetLayer {
138- public:
139- const std::string & port () const ;
140- int baud () const ;
141- char parity () const ;
142- int stop () const ;
143-
144- SerialMode serialMode ();
145- bool setSerialMode (SerialMode mode);
146- SerialRts rts ();
147- bool setRts (SerialRts rts);
148- int rtsDelay ();
149- bool setRtsDelay (int delay);
150-
151- static int baud (const std::string & settings);
152- static char parity (const std::string & settings);
153- static int stop (const std::string & settings);
154-
155- friend class Device ;
156- protected:
157- class Private ;
158- RtuLayer (Private &dd);
159-
160- private:
161- PIMP_DECLARE_PRIVATE (RtuLayer)
162- };
103+ class RtuLayer ;
104+ class TcpLayer ;
163105
164106 /* *
165107 * @class Device
166- * @brief
108+ * @brief Représente un équipement connecté à MODBUS
167109 */
168110 class Device {
169111 public:
@@ -215,23 +157,100 @@ namespace Modbus {
215157
216158 /* *
217159 * @class Master
218- * @brief
160+ * @brief MODBUS Master (Client)
219161 */
220162 class Master : public Device {
163+
221164 public:
222-
165+ /* *
166+ * @brief Constructor
167+ * @param net
168+ * @param connection
169+ * @param settings
170+ */
223171 Master (Net net = Tcp, const std::string & connection = " *" ,
224172 const std::string & settings = " 502" );
173+ /* *
174+ * @brief Destructor
175+ */
225176 virtual ~Master ();
226177
178+ /* *
179+ * @brief
180+ * @param addr
181+ * @param dest
182+ * @param nb
183+ * @return
184+ */
227185 int readDiscreteInputs (int addr, bool * dest, int nb = 1 );
186+ /* *
187+ * @brief
188+ * @param addr
189+ * @param dest
190+ * @param nb
191+ * @return
192+ */
228193 int readCoils (int addr, bool * dest, int nb = 1 );
229- int readInputRegistrers (int addr, uint16_t * dest, int nb = 1 );
194+ /* *
195+ * @brief
196+ * @param addr
197+ * @param dest
198+ * @param nb
199+ * @return
200+ */
201+ int readInputRegisters (int addr, uint16_t * dest, int nb = 1 );
202+ /* *
203+ * @brief
204+ * @param addr
205+ * @param dest
206+ * @param nb
207+ * @return
208+ */
230209 int readRegistrers (int addr, uint16_t * dest, int nb = 1 );
210+ /* *
211+ * @brief write a single bit
212+ *
213+ * This function shall write the status of value at the address addr of
214+ * the remote device. \n
215+ * The function uses the Modbus function code 0x05 (force single coil).
216+ * @param addr
217+ * @param value
218+ * @return
219+ */
231220 int writeCoil (int addr, bool value);
221+ /* *
222+ * @brief
223+ * @param addr
224+ * @param src
225+ * @param nb
226+ * @return
227+ */
232228 int writeCoils (int addr, const bool * src, int nb);
229+ /* *
230+ * @brief
231+ * @param addr
232+ * @param value
233+ * @return
234+ */
233235 int writeRegistrer (int addr, uint16_t value);
236+ /* *
237+ * @brief
238+ * @param addr
239+ * @param src
240+ * @param nb
241+ * @return
242+ */
234243 int writeRegistrers (int addr, const uint16_t * src, int nb);
244+ /* *
245+ * @brief
246+ * @param waddr
247+ * @param src
248+ * @param wnb
249+ * @param raddr
250+ * @param dest
251+ * @param rnb
252+ * @return
253+ */
235254 int writeReadRegistrers (int waddr, const uint16_t * src, int wnb,
236255 int raddr, uint16_t * dest, int rnb);
237256
@@ -243,6 +262,72 @@ namespace Modbus {
243262 PIMP_DECLARE_PRIVATE (Master)
244263 };
245264
265+
266+ /* *
267+ * @class NetLayer
268+ * @brief
269+ */
270+ class NetLayer {
271+
272+ protected:
273+ class Private ;
274+ NetLayer (Private &dd);
275+ std::unique_ptr<Private> d_ptr;
276+
277+ private:
278+ PIMP_DECLARE_PRIVATE (NetLayer)
279+ };
280+
281+ /* *
282+ * @class TcpLayer
283+ * @brief
284+ */
285+ class TcpLayer : public NetLayer {
286+ public:
287+ const std::string & node () const ;
288+ const std::string & service () const ;
289+
290+ friend class Device ;
291+
292+ protected:
293+ class Private ;
294+ TcpLayer (Private &dd);
295+
296+ private:
297+ PIMP_DECLARE_PRIVATE (TcpLayer)
298+ };
299+
300+ /* *
301+ * @class RtuLayer
302+ * @brief
303+ */
304+ class RtuLayer : public NetLayer {
305+ public:
306+ const std::string & port () const ;
307+ int baud () const ;
308+ char parity () const ;
309+ int stop () const ;
310+
311+ SerialMode serialMode ();
312+ bool setSerialMode (SerialMode mode);
313+ SerialRts rts ();
314+ bool setRts (SerialRts rts);
315+ int rtsDelay ();
316+ bool setRtsDelay (int delay);
317+
318+ static int baud (const std::string & settings);
319+ static char parity (const std::string & settings);
320+ static int stop (const std::string & settings);
321+
322+ friend class Device ;
323+ protected:
324+ class Private ;
325+ RtuLayer (Private &dd);
326+
327+ private:
328+ PIMP_DECLARE_PRIVATE (RtuLayer)
329+ };
330+
246331}
247332/* *
248333 * @}
0 commit comments