Skip to content

Commit 9175203

Browse files
author
Sebastian
committed
Integrated NetWoRTOC into RTOC
Cleaned Interface. Added settings Added access from terminal Cleaned package-dependencies Added different pypi-Versions A lot of small fixes
1 parent 4b6b0f1 commit 9175203

File tree

276 files changed

+5581
-21061
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

276 files changed

+5581
-21061
lines changed

MANIFEST.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
include RTOC/*
22
include RTOC/data/*
3-
include RTOC/data/ui/*
3+
include RTOC/RTOC_GUI/ui/*
44
include RTOC/data/lib/*
5-
include RTOC/data/ui/icons/*
6-
include RTOC/data/ui/icons/dark/*
5+
include RTOC/RTOC_GUI/ui/icons/*
6+
include RTOC/RTOC_GUI/ui/icons/dark/*
77
include RTOC/lang/*
88
recursive-include RTOC *

README.md

Lines changed: 87 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,72 @@
11
# RealTime OpenControl (RTOC)
22

3-
### Version 1.9.7.3
3+
### Version 1.9.9
44

55
[**This README is available in GERMAN here.**](misc/README_german.md)
66

77
[Documentation](https://github.com/Haschtl/RealTimeOpenControl/wiki)
88

9-
RealTime OpenControl enables simple real-time data recording, visualization and editing. The recording can be done with a local Python scripts or via TCP locally/from the network. Visualization and editing is available locally, in the network (TCP and HTML) and via Telegram on the smartphone. You have full control over your python-plugins via TCP and Telegram.
9+
RealTime OpenControl is a simple way for real-time data recording, visualization and editing.
1010

11-
In addition to data recording, events can also be recorded. These can, for example, trigger a telegram message.
11+
RTOC is made for communication between different devices (IoT) in a network. You can also access it with a Telegram-Bot.
1212

13-
Possible applications:
13+
There are different ways to access data on an RTOC-Server:
14+
15+
- From another RTOC-Server with TCP
16+
- From any device with a Telegram-Bot (limited access)
17+
- From any device with an HTML-website (only viewable)
18+
19+
### Possible applications
1420

1521
- Central measurement data recording of laboratory instruments with PC connection (e.g. power supply unit, multimeter, sensors, microcontroller)
1622
- Central recording of measurement data from Internet devices (e.g. mobile weather stations, drones, smartphones)
1723
- Remote monitoring and control of processes and devices with PC and Smartphone (Telegram) (e.g. 3D printing, heating, Custom-SmartHome)
1824
- Controlling between several devices (e.g.: power regulation of a power supply unit on the temperature sensor of a multimeter)
1925
- Decentralized data recording (e.g. on Raspberry) and access via network connection (smart projects)
26+
- Fun projects like controlling a LED with Telegram
27+
28+
### Recording data and events
29+
30+
Basis for a RTOC-Server are "devices", which collect data in any way and provide their functions and parameters. "Devices" are simple python-scripts.
31+
32+
These "devices" can send measurements and events to the RTOC-Server.
33+
34+
A measurement represents the collected data. Events occur in certain conditions (for example if a measured value is higher than a limit value) and can trigger actions, which will be performed after the event. Also these events can be used to trigger PushNotifications in Telegram.
35+
36+
37+
38+
### GUI
2039

2140
![Übersicht](screenshots/overview.png)
2241

42+
You can run the GUI with "python3 -m RTOC"
43+
44+
The GUI offers a lot of tools:
45+
46+
- Enable/disable devices
47+
- Access to optional device-GUIs
48+
- View and edit measurements in a lot of different ways
49+
- View, filter and delete events
50+
- Edit global events and actions
51+
- Download devices from RTOC-repository
52+
- Write and execute python-scripts, which can interact with the devices.
53+
- Connect to a remote RTOC-Server and view/delete measurements and events and access devices of remote RTOC-Server
54+
55+
56+
57+
### No GUI
58+
59+
In some cases you don't want to run the GUI (e.g. raspberry). Then you can still configure RTOC in a terminal: `python3 -m RTOC.Console`
60+
61+
If you just want to run the TCP-Server after configuration, you can do this with `python3 -m RTOC -s start/stop`
62+
63+
64+
2365
## Getting Started
2466

2567
RTOC is written in Python 3. Tested on Windows and Linux.
2668

27-
Python 3 (and pip3) need to be installed on the System. But you can also download the Stand-Alone-Builts for Windows and Linux below.
69+
Python3 (and pip3) need to be installed on the System. But you can also download the Stand-Alone-Builts for Windows and Linux below.
2870

2971
### Installing with Python3 (recommended)
3072

@@ -34,27 +76,48 @@ RTOC is available in the Python package manager PIP:
3476
pip3 install RTOC
3577
```
3678

79+
This will download the basic RTOC without the dependencies needed for the GUI, Telegram and the Webserver. The basic RTOC is enough for running RTOC on embedded devices.
80+
81+
There are also different variations available to install:
82+
83+
```
84+
pip3 install RTOC[Webserver]
85+
pip3 install RTOC[GUI]
86+
pip3 install RTOC[Telegram]
87+
pip3 install RTOC[ALL]
88+
```
89+
90+
91+
3792
After installing you can run RTOC with
3893

3994
```
4095
// local RTOC-instance including GUI
4196
python3 -m RTOC
97+
4298
// local RTOC-instance without GUI (only TCP-Server, [HTTP-Server, Telegram-Bot])
43-
python3 -m RTOC -s
99+
python3 -m RTOC -s start/stop
100+
101+
// local RTOC-Configuration from Console
102+
python3 -m RTOC.Console
103+
44104
// remote RTOC-instance with GUI
45105
python3 -m RTOC -r <ADRESS>
46106
```
47107

48-
After the first start RTOC creates a directory for user plugins, temporary user data and settings.
108+
After the first start RTOC creates a directory for user-devices, temporary user data and settings.
49109

50110
```
51111
user@rtoc-server:~$ ls .RTOC
52112
config.json // Settings for RTOC
53113
devices/ // Directory for user-plugins
54114
plotStyles.json // Custom plotstyles for signals are stored in this file
115+
autorun_devices // Contains devices, which will start with RTOC
116+
globalActions.json // Contains global definitions of actions
117+
globalEvents.json // Contains global definitions of events
55118
```
56119

57-
### Installing with Builds (not tested well)
120+
### Installing with Builds (not newest version!)
58121

59122
Download the latest release builds for Windows (soon also Linux) here.
60123

@@ -64,32 +127,29 @@ Extract the .zip file into a directory. RTOC is started by double-clicking on "R
64127
// local RTOC-instance including GUI
65128
./RTOC
66129
// local RTOC-instance without GUI (only TCP-Server, [HTTP-Server, Telegram-Bot])
67-
./RTOC -s
130+
./RTOC -s start
68131
// remote RTOC-instance with GUI
69132
./RTOC -r <ADRESS>
70133
```
71134

72-
After the first start RTOC creates a directory for user plugins, temporary user data and settings.
135+
### Install manually
73136

74-
```
75-
user@rtoc-server:~$ ls .RTOC
76-
config.json // Settings for RTOC
77-
devices/ // Directory for user-plugins
78-
plotStyles.json // Custom plotstyles for signals are stored in this file
79-
```
137+
To use the basic RTOC, the following dependencies must be installed
80138

81-
### Install manually
139+
```python
140+
pip3 install numpy pycryptdomex requests python-nmap whaaaaat
141+
```
82142

83-
To use RTOC, the following dependencies must be installed
143+
If you want to use the GUI you must also install the following packages
84144

85145
```python
86-
pip3 install numpy pyqt5 pyqtgraph markdown2 xslxwriter scipy pandas ezodf
146+
pip3 install pyqt5 pyqtgraph markdown2 xslxwriter scipy pandas ezodf pyGithub
87147
```
88148

89-
The following packages should also be installed
149+
If you want full functionality, then you still need the following packages
90150

91151
```
92-
pip3 install python-telegram-bot matplotlib requests python-nmap bokeh pycryptdomex pyGithub
152+
pip3 install python-telegram-bot matplotlib bokeh
93153
```
94154

95155
You can use different stylesheets if you want. Just install one of these with pip:
@@ -102,29 +162,18 @@ The RTOC repository can then be cloned with
102162
git clone [email protected]:Haschtl/RealTimeOpenControl.git
103163
```
104164

105-
Now RTOC can be started:
165+
Now you can run RTOC. Important: To run RTOC, you need to call it as a module. So, do not enter the folder containing RTOC.py
106166

107167
```shell
108-
cd kellerlogger
168+
cd RealTimeOpenControl
109169
// local RTOC-instance including GUI
110-
python3 RTOC
170+
python3 -m RTOC
111171
// local RTOC-instance without GUI (only TCP-Server, [HTTP-Server, Telegram-Bot])
112-
python3 RTOC -s
172+
python3 -m RTOC -s
113173
// remote RTOC-instance with GUI
114-
python3 RTOC -r <ADRESS>
115-
```
116-
117-
After the first start RTOC creates a directory for user plugins, temporary user data and settings.
118-
119-
```
120-
user@rtoc-server:~$ ls .RTOC
121-
config.json // Settings for RTOC
122-
devices/ // Directory for user-plugins
123-
plotStyles.json // Custom plotstyles for signals are stored in this file
174+
python3 -m RTOC -r <ADRESS>
124175
```
125176

126-
127-
128177
## First steps
129178

130179
![Beispielschematik](screenshots/RTOC-schematik.png)
@@ -135,7 +184,6 @@ plotStyles.json // Custom plotstyles for signals are stored in this file
135184
### Default/Example Plugins:
136185

137186
- function generator: generates sine, square, sawtooth, random, AC, DC
138-
- NetWoRTOC: Control and data exchange between several RTOC-servers
139187

140188
You can get more plugins from the [RTOC-plugin-repository](https://github.com/Haschtl/rtoc-plugins). Simply follow the steps described in the [documentation](https://github.com/Haschtl/RealTimeOpenControl/wiki/RTOC-Repo):
141189
- System: For recording many system variables (CPU, Memory, Network,...)
@@ -245,8 +293,8 @@ The connection between RTOC server and client can be encrypted end-to-end (DES)
245293
- [Jsonsocket from mdebbar](https://github.com/mdebbar/jsonsocket)
246294
- [Taurus PyQtGraph](https://github.com/taurus-org/taurus_pyqtgraph.git)
247295
- [ImportCode script from avtivestate.com](http://code.activestate.com/recipes/82234-importing-a-dynamically-generated-module/)
296+
- [VC820Py from adnidor (for HoldPeak_VC820 plugin)](https://github.com/adnidor/vc820py)
248297
- [PyQt5 CSV-Editor](https://python-forum.io/Thread-Read-Write-CSV-Qt5)
249-
- [Python Daemon](https://web.archive.org/web/20160320091458/http://www.jejik.com/files/examples/daemon3x.py)
250298

251299
All icons used in this software (including plugins) are kindly provided by [Icons8](www.icons8.com)
252300

RTOC.egg-info/PKG-INFO

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
Metadata-Version: 1.2
1+
Metadata-Version: 2.1
22
Name: RTOC
3-
Version: 1.9.7.3
3+
Version: 1.9.9
44
Summary: RealTime OpenControl
55
Home-page: https://github.com/Haschtl/RealTimeOpenControl
66
Author: Sebastian Keller
@@ -28,3 +28,7 @@ Classifier: Operating System :: OS Independent
2828
Classifier: Topic :: Scientific/Engineering :: Visualization
2929
Classifier: Topic :: Software Development :: User Interfaces
3030
Requires-Python: >=3
31+
Provides-Extra: ALL
32+
Provides-Extra: Webserver
33+
Provides-Extra: Telegram
34+
Provides-Extra: GUI

0 commit comments

Comments
 (0)