Skip to content

Commit fd87d4e

Browse files
authored
Forward error responses instead of timing out. (#2329)
1 parent 3cc510c commit fd87d4e

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

pymodbus/pdu/register_read_message.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from pymodbus.exceptions import ModbusIOException
88
from pymodbus.pdu import ModbusExceptions as merror
9+
from pymodbus.pdu import ExceptionResponse
910
from pymodbus.pdu import ModbusRequest, ModbusResponse
1011

1112

@@ -146,6 +147,8 @@ async def execute(self, context):
146147
values = await context.async_getValues(
147148
self.function_code, self.address, self.count
148149
)
150+
if isinstance(values, ExceptionResponse):
151+
return values
149152
return ReadHoldingRegistersResponse(values)
150153

151154

@@ -206,6 +209,8 @@ async def execute(self, context):
206209
values = await context.async_getValues(
207210
self.function_code, self.address, self.count
208211
)
212+
if isinstance(values, ExceptionResponse):
213+
return values
209214
return ReadInputRegistersResponse(values)
210215

211216

@@ -327,6 +332,8 @@ async def execute(self, context):
327332
registers = await context.async_getValues(
328333
self.function_code, self.read_address, self.read_count
329334
)
335+
if isinstance(registers, ExceptionResponse):
336+
return registers
330337
return ReadWriteMultipleRegistersResponse(registers)
331338

332339
def get_response_pdu_size(self):

0 commit comments

Comments
 (0)