Skip to content

Commit 1d43c7b

Browse files
committed
#7 Python 3 compatibility, Initial version
1 parent a09d4e5 commit 1d43c7b

File tree

4 files changed

+24
-16
lines changed

4 files changed

+24
-16
lines changed

modbus_simulator/ui/datamodel.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ class ErrorPopup(Popup):
6060
"""
6161
def __init__(self, **kwargs):
6262
# print kwargs
63-
super(ErrorPopup, self).__init__(**kwargs)
63+
super(ErrorPopup, self).__init__()
64+
# super(ErrorPopup, self).__init__(**kwargs)
6465
content = BoxLayout(orientation="vertical")
6566
content.add_widget(Label(text=kwargs['text'], font_size=20))
6667
mybutton = Button(text="Dismiss", size_hint=(1,.20), font_size=20)
@@ -462,7 +463,7 @@ def update_registers(self, new_values, update_info):
462463
to_remove = None
463464
if count > 1:
464465
offset = int(offset)
465-
to_remove = [str(o) for o in list(xrange(offset+1, offset+count))]
466+
to_remove = [str(o) for o in list(range(offset+1, offset+count))]
466467

467468
self.list_view.adapter.update_for_new_data()
468469
self.refresh(new_values, to_remove)

modbus_simulator/ui/gui.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -544,8 +544,8 @@ def _update_data_models(self, active, tab, value):
544544
registers = sum(
545545
map(
546546
lambda val: int(
547-
filter(
548-
str.isdigit, str(val.get('formatter', '16')))
547+
''.join(list(filter(
548+
str.isdigit, str(val.get('formatter', '16')))))
549549
), _data['data'].values()))/16
550550

551551
# Old schema
@@ -604,11 +604,17 @@ def sync_formatter_callback(self, blockname, data, old_formatter):
604604
try:
605605
_data = self.data_map[self.active_slave][current_tab]
606606
_updated = {}
607-
for k, v in data.items():
608-
old_wc = int(filter(str.isdigit, str(old_formatter)))/16
609-
new_wc = int(filter(str.isdigit, v.get('formatter')))/16
607+
current = list(data.keys())
608+
for k in current:
609+
old_wc = int(''.join(list(
610+
filter(str.isdigit, str(old_formatter))
611+
)))/16
612+
new_wc = int(''.join(list(
613+
filter(str.isdigit, data[k].get('formatter'))
614+
)))/16
610615
new_val, count = self.modbus_device.decode(
611-
int(self.active_slave), current_tab, k, v['formatter']
616+
int(self.active_slave),
617+
current_tab, k, data[k]['formatter']
612618
)
613619
data[k]['value'] = new_val
614620
_updated['offset'] = k
@@ -621,6 +627,7 @@ def sync_formatter_callback(self, blockname, data, old_formatter):
621627
)
622628
for i, val in enumerate(missing):
623629
o = int(k) + new_wc + i
630+
o = int(o)
624631
if not isinstance(k, int):
625632
o = str(o)
626633
data[o] = {'value': val, 'formatter': 'uint16'}

modbus_simulator/utils/pymodbus_server.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ def get_values(self, slave_id, block_name, address, size=1):
243243
slave = self.get_slave(slave_id)
244244
address = self._calc_offset(block_name, address)
245245
if slave.validate(_FX_MAPPER[block_name], address, count=size):
246-
return slave.getValues(_FX_MAPPER[block_name], address, size)
246+
return slave.getValues(_FX_MAPPER[block_name], address, int(size))
247247

248248
def get_slave(self, slave_id):
249249
return self.context[slave_id]
@@ -265,6 +265,8 @@ def encode(self, slave_id, block_name, offset, value, formatter):
265265
builder = BinaryPayloadBuilder(byteorder=self.byte_order,
266266
wordorder=self.word_order)
267267
add_method = ENCODERS.get(formatter)
268+
if 'int' in add_method: # Temp fix
269+
value = int(value)
268270
getattr(builder, add_method)(value)
269271
payload = builder.to_registers()
270272
return self.set_values(slave_id, block_name, offset, payload)

requirements

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
click>=6.7
2-
Cython==0.25.2
1+
Click==7.0
2+
Cython==0.29.2
33
docutils==0.13.1
4-
Kivy>=1.9.1
4+
Kivy==1.10.1
55
Kivy-Garden==0.1.4
6-
# modbus-tk==0.5.6
7-
pygame==1.9.2
6+
pygame==1.9.4
87
pyglet==1.2.4
98
Pygments==2.1.3
10-
# pymodbus==1.5.2
119
pyserial==3.2.1
1210
requests==2.12.4
13-
six==1.10.0
11+
six==1.10.0

0 commit comments

Comments
 (0)