|
6 | 6 |
|
7 | 7 | from pymodbus.exceptions import ModbusIOException |
8 | 8 | from pymodbus.pdu import ModbusExceptions as merror |
| 9 | +from pymodbus.pdu import ExceptionResponse |
9 | 10 | from pymodbus.pdu import ModbusRequest, ModbusResponse |
10 | 11 |
|
11 | 12 |
|
@@ -146,6 +147,8 @@ async def execute(self, context): |
146 | 147 | values = await context.async_getValues( |
147 | 148 | self.function_code, self.address, self.count |
148 | 149 | ) |
| 150 | + if isinstance(values, ExceptionResponse): |
| 151 | + return values |
149 | 152 | return ReadHoldingRegistersResponse(values) |
150 | 153 |
|
151 | 154 |
|
@@ -206,6 +209,8 @@ async def execute(self, context): |
206 | 209 | values = await context.async_getValues( |
207 | 210 | self.function_code, self.address, self.count |
208 | 211 | ) |
| 212 | + if isinstance(values, ExceptionResponse): |
| 213 | + return values |
209 | 214 | return ReadInputRegistersResponse(values) |
210 | 215 |
|
211 | 216 |
|
@@ -327,6 +332,8 @@ async def execute(self, context): |
327 | 332 | registers = await context.async_getValues( |
328 | 333 | self.function_code, self.read_address, self.read_count |
329 | 334 | ) |
| 335 | + if isinstance(registers, ExceptionResponse): |
| 336 | + return registers |
330 | 337 | return ReadWriteMultipleRegistersResponse(registers) |
331 | 338 |
|
332 | 339 | def get_response_pdu_size(self): |
|
0 commit comments