Skip to content

Commit fb7e859

Browse files
committed
BEDGE-3066 fix serial server errors
1 parent 9c107c7 commit fb7e859

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

modbus_simulator/ui/gui.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,8 @@ def _create_modbus_device(self):
283283
create_new = True
284284
else:
285285
if self.modbus_device.server_type == self.active_server:
286-
if int(self.modbus_device.port) != int(self.port.text):
286+
287+
if str(self.modbus_device.port) != str(self.port.text):
287288
create_new = True
288289
if self._serial_settings_changed:
289290
create_new = True
@@ -306,7 +307,8 @@ def _create_modbus_device(self):
306307

307308
self._serial_settings_changed = False
308309
elif self.active_server == "rtu":
309-
self.modbus_device._serial.open()
310+
if not USE_PYMODBUS:
311+
self.modbus_device._serial.open()
310312

311313
def start_server(self, btn):
312314
if btn.state == "down":
@@ -549,8 +551,8 @@ def delete_data_entry(self, *args):
549551

550552
if deleted:
551553
self.update_backend(int(self.active_slave), current_tab, data)
552-
msg = ("modbus-tk do not support deleting "
553-
"individual modbus register/discrete_inputs/coils"
554+
msg = ("Deleting "
555+
"individual modbus register/discrete_inputs/coils is not supported."
554556
"The data is removed from GUI and the corresponding value is"
555557
"updated to '0' in backend . ")
556558
self.show_error(msg)

modbus_simulator/utils/pymodbus_server.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def __init__(self, server="tcp", *args, **kwargs):
133133

134134
self.context = ModbusServerContext(single=False)
135135
self.simulate = kwargs.get('simulate', False)
136+
self.dirty = False
136137
if server == "tcp":
137138
self._port = int(self._port)
138139
self._address = kwargs.get("address", "localhost")
@@ -188,7 +189,7 @@ def add_block(self, slave_id, block_name, block_type, starting_add, size):
188189

189190
def remove_block(self, slave_id, block_name):
190191
slave = self.get_slave(slave_id)
191-
slave.remove_block(block_name)
192+
slave.store[_STORE_MAPPER[block_name]].reset()
192193

193194
def remove_all_blocks(self, slave_id):
194195
slave = self.get_slave(slave_id)
@@ -209,10 +210,13 @@ def get_slave(self, slave_id):
209210
return self.context[slave_id]
210211

211212
def start(self):
213+
if self.dirty:
214+
self.server_thread = ThreadedModbusServer(self.server)
212215
self.server_thread.start()
213216

214217
def stop(self):
215218
self.server_thread.stop()
219+
self.dirty = True
216220
# if self._server_type == 'rtu':
217221
# self._serial.close()
218222
# self._server_add = ()

0 commit comments

Comments
 (0)