Skip to content

Commit 37c6dc9

Browse files
author
krish_trip
committed
BEDGE-2726 pip installable version of modbus simulator
1 parent e090ad3 commit 37c6dc9

20 files changed

+86
-28
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,4 @@ target/
6262
.idea
6363

6464
#IniFiles
65-
*.ini
65+
*.ini

MANIFEST.in

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
include requirements
22
include README.md
3-
include assets/*
4-
include templates/*
3+
include modbus_simulator/assets/*.png
4+
include modbus_simulator/assets/*.ico
5+
include modbus_simulator/templates/*.kv

modbus_simulator/__init__.py

Whitespace-only changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

main.py renamed to modbus_simulator/main.py

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,28 @@
1212
from kivy.uix.settings import SettingsWithSidebar
1313
from kivy.uix.listview import ListView, ListItemButton
1414
from kivy.adapters.listadapter import ListAdapter
15-
from utils.modbus import ModbusSimu, BLOCK_TYPES, configure_modbus_logger
16-
from ui.settings import SettingIntegerWithRange
17-
from utils.backgroundJob import BackgroundJob
15+
from modbus_simulator.utils.modbus import ModbusSimu, BLOCK_TYPES, \
16+
configure_modbus_logger
17+
from modbus_simulator.ui.settings import SettingIntegerWithRange
18+
from modbus_simulator.utils.backgroundJob import BackgroundJob
1819
import re
1920
import os
2021
from kivy.config import Config
2122
from kivy.lang import Builder
22-
import ui.datamodel
23+
import modbus_simulator.ui.datamodel
24+
from pkg_resources import resource_filename
25+
2326

2427
MAP = {
2528
"coils": "coils",
2629
'discrete inputs': 'discrete_inputs',
2730
'input registers': 'input_registers',
2831
'holding registers': 'holding_registers'
2932
}
30-
31-
Builder.load_file("templates/modbussimu.kv")
33+
settings_icon = resource_filename(__name__, "assets/Control-Panel.png")
34+
app_icon = resource_filename(__name__, "assets/riptideLogo.png")
35+
modbus_template = resource_filename(__name__, "templates/modbussimu.kv")
36+
Builder.load_file(modbus_template)
3237

3338

3439
class FloatInput(TextInput):
@@ -85,6 +90,9 @@ class Gui(BoxLayout):
8590
data_model_input_registers = ObjectProperty()
8691
data_model_holding_registers = ObjectProperty()
8792

93+
settings = ObjectProperty()
94+
riptide_logo = ObjectProperty()
95+
8896
# Helpers
8997
# slaves = ["%s" %i for i in xrange(1, 248)]
9098
_data_map = {"tcp": {}, "rtu": {}}
@@ -106,6 +114,8 @@ class Gui(BoxLayout):
106114
def __init__(self, **kwargs):
107115
super(Gui, self).__init__(**kwargs)
108116
time_interval = kwargs.get("time_interval", 1)
117+
self.settings.icon = settings_icon
118+
self.riptide_logo.app_icon = app_icon
109119
self.config = Config.get_configparser('app')
110120
self.slave_list.adapter.bind(on_selection_change=self.select_slave)
111121
self.data_model_loc.disabled = True
@@ -831,7 +841,6 @@ class ModbusSimuApp(App):
831841
settings_cls = SettingsWithSidebar
832842

833843
def build(self):
834-
835844
self.gui = Gui(
836845
modbus_log=os.path.join(self.user_data_dir, 'modbus.log')
837846
)
@@ -910,5 +919,9 @@ def close_settings(self, *args):
910919
super(ModbusSimuApp, self).close_settings()
911920

912921

913-
if __name__ == "__main__":
922+
def run():
914923
ModbusSimuApp().run()
924+
925+
926+
if __name__ == "__main__":
927+
run()

modbus_simulator/modbussimu.ini

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
[Modbus Tcp]
2+
ip = 127.0.0.3
3+
4+
[Modbus Protocol]
5+
block start = 0
6+
block size = 100
7+
bin min = 0
8+
bin max = 1
9+
reg min = 0
10+
reg max = 65535
11+
12+
[Modbus Serial]
13+
baudrate = 9600
14+
bytesize = 8
15+
parity = N
16+
stopbits = 1
17+
xonxoff = 0
18+
rtscts = 0
19+
dsrdtr = 0
20+
writetimeout = 2
21+
timeout = 2
22+
23+
[Logging]
24+
log file = /home/mahakal/.config/modbussimu/modbus.log
25+
logging = 1
26+
console logging = 1
27+
console log level = DEBUG
28+
file log level = DEBUG
29+
file logging = 1
30+
31+
[Simulation]
32+
time interval = 1
33+
File renamed without changes.

templates/modbussimu.kv renamed to modbus_simulator/templates/modbussimu.kv

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#:import KivyLexer kivy.extras.highlight.KivyLexer
33
#:import ListItemButton kivy.uix.listview.ListItemButton
44
#:import sla kivy.adapters.listadapter
5+
56
<Separator@Widget>
67
size_hint_y: None
78
thickness: 2
@@ -38,7 +39,8 @@
3839
slave_pane: slave_pane
3940
slave_start_add: slave_start_add
4041
slave_end_add: slave_end_add
41-
action_bar: action_bar
42+
settings: settings
43+
riptide_logo: riptide_logo
4244
BoxLayout:
4345
padding: '2sp'
4446
canvas:
@@ -288,16 +290,16 @@
288290
ActionView:
289291
use_separator: True
290292
ActionPrevious:
293+
id: riptide_logo
291294
with_previous: False
292-
app_icon: 'assets/riptideLogo.png'
293295
disabled: True
294296
ActionOverflow:
295297
ActionToggleButton:
296298
text: 'Simulate'
297299
on_release: root.start_stop_simulation(*args)
298300
ActionButton:
301+
id: settings
299302
text: 'settings'
300-
icon: 'assets/Control-Panel.png'
301303
on_release: app.show_settings(*args)
302304

303305

modbus_simulator/tools/modbus_simu.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# #!/bin/bash
2+
#
3+
# root_dir="$(cd $(dirname $0)/..; pwd)"
4+
# launch_cmd="$root_dir/main.py"
5+
# python $launch_cmd
6+
7+
# import modbus_simulator
8+
# from os.path import dirname, join
9+
# from os import execlp
10+
11+
# execlp("python", join(dirname(modbus_simulator.__file__), 'main.py'))
File renamed without changes.

ui/datamodel.py renamed to modbus_simulator/ui/datamodel.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
from kivy.uix.popup import Popup
1414
from kivy.uix.textinput import TextInput
1515

16-
from utils.backgroundJob import BackgroundJob
16+
from modbus_simulator.utils.backgroundJob import BackgroundJob
17+
from pkg_resources import resource_filename
1718

18-
Builder.load_file("templates/datamodel.kv")
19+
datamodel_template = resource_filename(__name__, "../templates/datamodel.kv")
20+
Builder.load_file(datamodel_template)
1921

2022
integers_dict = {}
2123

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

utils/modbus.py renamed to modbus_simulator/utils/modbus.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from modbus_tk.modbus_rtu import RtuServer, RtuMaster
1010
from modbus_tk.modbus_tcp import TcpServer, TcpMaster
1111

12-
from utils.common import path, make_dir, remove_file
12+
from modbus_simulator.utils.common import path, make_dir, remove_file
1313

1414
ADDRESS_RANGE = {
1515
COILS: 0,

setup.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ def readme():
2020
version="0.1",
2121
description="Modbus Simulator using modbus_tk and kivy",
2222
long_description=readme(),
23-
classifiers=[
24-
"Programming Language : Python : 2.7",
25-
"Simulator : Modbus Simulator",
26-
],
2723
keywords="Modbus Simulator",
2824
author="riptideio",
2925
packages=find_packages(),
30-
install_requires=install_requires,
31-
scripts=['tools/launcher'],
26+
install_requires=install_requires(),
27+
scripts=['modbus_simulator/tools/modbus_simu.py'],
28+
entry_points={
29+
'console_scripts': [
30+
'modbus_simu = modbus_simulator.main:run',
31+
],
32+
},
3233
include_package_data=True
3334
)

tools/launcher

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)