From 217afaaf52ad78aa7261358bc3a0fc3901ab5fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hans=20M=C3=A4rki?= Date: Sun, 24 Dec 2023 12:33:25 +0000 Subject: [PATCH] Bugfix: 'on_get_cb': return value was swallowed --- umodbus/modbus.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/umodbus/modbus.py b/umodbus/modbus.py index 56bd8e7..cc99f0c 100644 --- a/umodbus/modbus.py +++ b/umodbus/modbus.py @@ -183,14 +183,12 @@ def _process_read_access(self, request: Request, reg_type: str) -> None: if address in self._register_dict[reg_type]: - if self._register_dict[reg_type][address].get('on_get_cb', 0): - vals = self._create_response(request=request, - reg_type=reg_type) - _cb = self._register_dict[reg_type][address]['on_get_cb'] + vals = self._create_response(request=request, reg_type=reg_type) + _cb = self._register_dict[reg_type][address].get('on_get_cb', None) + if _cb: _cb(reg_type=reg_type, address=address, val=vals) - vals = self._create_response(request=request, reg_type=reg_type) - request.send_response(vals) + return request.send_response(vals) else: request.send_exception(Const.ILLEGAL_DATA_ADDRESS)