Skip to content

Commit f6f9127

Browse files
committed
Directly set standard-conforming RTU delays inside Modbus library.
1 parent 760b1e3 commit f6f9127

File tree

4 files changed

+9
-3
lines changed

4 files changed

+9
-3
lines changed

Diff for: examples/RTU/ModbusRTUClientParameters/ModbusRTUClientParameters.ino

-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ void setup() {
2222

2323
Serial.println("Modbus RTU Client Toggle w/ Parameters");
2424

25-
RS485.setDelays(ModbusRTUDelay::preDelay(baudrate), ModbusRTUDelay::postDelay(baudrate));
26-
2725
// start the Modbus RTU client in 8E1 mode
2826
if (!ModbusRTUClient.begin(baudrate, SERIAL_8E1)) {
2927
Serial.println("Failed to start Modbus RTU Client!");

Diff for: src/ArduinoModbus.h

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#ifndef _ARDUINO_MODBUS_H_INCLUDED
2121
#define _ARDUINO_MODBUS_H_INCLUDED
2222

23-
#include "ModbusRTUDelay.h"
2423
#include "ModbusRTUClient.h"
2524
#include "ModbusRTUServer.h"
2625

Diff for: src/ModbusRTUClient.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ extern "C" {
2626

2727
#include "ModbusRTUClient.h"
2828

29+
#include "ModbusRTUDelay.h"
30+
2931
ModbusRTUClientClass::ModbusRTUClientClass() :
3032
ModbusClient(1000)
3133
{
@@ -42,6 +44,8 @@ ModbusRTUClientClass::~ModbusRTUClientClass()
4244

4345
int ModbusRTUClientClass::begin(unsigned long baudrate, uint16_t config)
4446
{
47+
_rs485->setDelays(ModbusRTUDelay::preDelay(baudrate), ModbusRTUDelay::postDelay(baudrate));
48+
4549
modbus_t* mb = modbus_new_rtu(_rs485, baudrate, config);
4650

4751
if (!ModbusClient::begin(mb, 0x00)) {

Diff for: src/ModbusRTUServer.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ extern "C" {
2626

2727
#include "ModbusRTUServer.h"
2828

29+
#include "ModbusRTUDelay.h"
30+
31+
2932
ModbusRTUServerClass::ModbusRTUServerClass()
3033
{
3134
}
@@ -40,6 +43,8 @@ ModbusRTUServerClass::~ModbusRTUServerClass()
4043

4144
int ModbusRTUServerClass::begin(int id, unsigned long baudrate, uint16_t config)
4245
{
46+
_rs485->setDelays(ModbusRTUDelay::preDelay(baudrate), ModbusRTUDelay::postDelay(baudrate));
47+
4348
modbus_t* mb = modbus_new_rtu(_rs485, baudrate, config);
4449

4550
if (!ModbusServer::begin(mb, id)) {

0 commit comments

Comments
 (0)