mirror of https://github.com/Nonannet/pyhoff.git
Modbus: Handling of lost connection during receive fixed
This commit is contained in:
parent
b2e51581bf
commit
f4d4ba93e5
|
@ -425,10 +425,15 @@ class SimpleModbusClient:
|
||||||
buffer = bytes()
|
buffer = bytes()
|
||||||
while len(buffer) < number_of_bytes:
|
while len(buffer) < number_of_bytes:
|
||||||
try:
|
try:
|
||||||
buffer += self._socket.recv(number_of_bytes - len(buffer))
|
tx_data = self._socket.recv(number_of_bytes - len(buffer))
|
||||||
except socket.error:
|
except socket.error:
|
||||||
return bytes()
|
return bytes()
|
||||||
|
|
||||||
|
if tx_data:
|
||||||
|
buffer += tx_data
|
||||||
|
else:
|
||||||
|
return bytes()
|
||||||
|
|
||||||
if self.debug:
|
if self.debug:
|
||||||
print(f'<- Received: {' '.join(hex(b) for b in buffer)}')
|
print(f'<- Received: {' '.join(hex(b) for b in buffer)}')
|
||||||
|
|
||||||
|
@ -512,6 +517,8 @@ class SimpleModbusClient:
|
||||||
|
|
||||||
if data[0] > 0x80:
|
if data[0] > 0x80:
|
||||||
self.last_error = f'return error: {_modbus_exceptions.get(data[1], '')} ({data[1]})'
|
self.last_error = f'return error: {_modbus_exceptions.get(data[1], '')} ({data[1]})'
|
||||||
|
if self.debug:
|
||||||
|
print(self.last_error)
|
||||||
return bytes()
|
return bytes()
|
||||||
|
|
||||||
return data[1:]
|
return data[1:]
|
||||||
|
|
Loading…
Reference in New Issue