Skip to content

Commit

Permalink
release 1.7
Browse files Browse the repository at this point in the history
  • Loading branch information
Sebastian Keller committed Nov 25, 2018
1 parent 5a17205 commit 24fe75b
Show file tree
Hide file tree
Showing 234 changed files with 4,891 additions and 2,364 deletions.
8 changes: 0 additions & 8 deletions .gitignore

This file was deleted.

8 changes: 8 additions & 0 deletions MANIFEST.in
@@ -0,0 +1,8 @@
include RTOC/*
include RTOC/data/*
include RTOC/data/ui/*
include RTOC/data/lib/*
include RTOC/data/ui/icons/*
include RTOC/data/ui/icons/dark/*
include RTOC/lang/*
recursive-include RTOC *
71 changes: 41 additions & 30 deletions README.md
@@ -1,53 +1,62 @@
# RealTime OpenControl (RTOC)
### Version: 1.6
### Version: 1.7

Compatible with Windows and Linux
![Beispielschematik](screenshots/RTOC-schematik.png)
![Übersicht](screenshots/overview.png)

### Currently this README and the WIKI-documentation is only available in german. The software is available in english AND german, selectable in the menu. English translations for the documentation is following soon!
# Installation
## With pip3 (Recommended)
> pip3 install RTOC
> python3 -m RTOC [-s] [-r 'REMOTEADRESSE']
Short description: RealTime OpenControl is a universal measurement, plot and control-software. It's purpose is to put measurements from different devices (for example 3d-printers, multimeters, power supplies, microcontroller,...) into one tool. Its fully expandable for every device with Python-Plugins and a running TCP-server. You can also control the devices (if your plugin has this functionality) with python-scripts, which you can write and run at runtime! This makes it also possible to plot everything else. There are some example-plugins and example-scripts included. It also offers an extended plotting-GUI with multiple plots, measure-tools, style-adjustments.
Just have a look at the screenshots and the wiki, download it, try it, and send me suggestions and bug-reports, if you find some!
Note: the english-translation is not perfect, some text isn't translated. This will be fixed sooner or later, depending on the feedback.
## From source
Klone RTOC in ein beliebiges Verzeichnis und wechsle in das Verzeichnis:

### Usecases:
- Home-automation
- temperature-sensor calibration
- system-monitor
- long-time-measurements
- just playing around with plots
RTOC mit GUI starten:
> python3 RTOC.py
You can download the python3-sourcecode and run it with `python3 RTOC.py` or you can download the build from here and run it without python (currently Windows only!)
RTOC nur Logger-Server starten:
> python3 RTOC.py -s
![Übersicht](screenshots/overview.png)

RTOC starten:
> python3 RTOC.py
> Alternativ wird hier ein BUILD (inklusive Installer) bereitgestellt (bisher nur Windows!)
RTOC im Remote-Modus starten (NetWoRTOC-Plugin im Vordergrund):
> python3 RTOC-py -r 'REMOTEADRESSE'
RealTime OpenControl ermöglicht eine geräteübergreifende Messaufzeichnung.
Außerdem kann man mit dem integrierten Python-Skript-Editor auf die Messdaten und Geräte zugreifen und mit diesen interagieren. Somit lassen sich langsame Regelungen zwischen mehreren Geräten realisieren.
Z.B.: Temperaturmessung mit Multimeter (mit USB-Anschluss) und Regelung eines Heizelements auf eine Solltemperatur. Ideal zum Aufzeichnen, Testen und Optimieren von Regelungen. Eignet sich auch für Custom-HomeAutomation (z.B.: auf Raspberry Pi oder HomeServer) mit maximaler Flexibilität und Anpassbarkeit
Z.B.: Temperaturmessung mit Multimeter (mit USB-Anschluss) und Regelung eines Heizelements auf eine Solltemperatur. Ideal zum Aufzeichnen, Testen und Optimieren von Regelungen.

Eignet sich auch für Custom-HomeAutomation (z.B.: auf Raspberry Pi oder HomeServer) mit maximaler Flexibilität und Anpassbarkeit. Dabei kann über TCP auf den RTOC-Server zugegriffen werden. Dadurch können auch Plugin-Funktionen ausgeführt und Parameter angepasst werden.
Somit lässt sich der Logger auch einfach als Python-Remote-Steuerung verwenden. Fast ebenso viele Funktionen bietet der integrierte Telegram-Bot.

Die Einbindung neuer Geräte ist einfach möglich:
- Als Python-Plugin für RTOC (v.a. für lokale Geräte)
- Als TCP-Client (v.a. für Netzwerkgeräte)
- Die TCP-Schnittstelle stellt hierbei alle Funktionen bereit, die das RTOC-Backend bereitstellt
(für weitere Infos siehe Wiki)

Steuerung der Geräte ist noch einfacher:
- Direkt in der GUI
- Remote über das Netzwerk bzw. Internet mit TCP
- Mit Telegram-Bot

### Standart/Beispiel Plugins:
- Funktionsgenerator: Erzeugt Sinus, Square, Sawtooth, Random, AC, DC
- System: Zur Aufzeichnung vieler Systemvariablen (CPU, Memory, Network,...)
- Octoprint: Aufzeichnung für 3D-Drucker
- DPS5020: Netzgerät-Aufzeichnung und Steuerung (evtl. auch DPS5005, ...)
- HoldPeak VC820: Multimeter Messaufzeichnung (wahrsch. auch andere VC820)
- NetWoRTOC: Datenaustausch zwischen mehreren RTOC's im Netzwerk
- NetWoRTOC: Steuerung und Datenaustausch zwischen mehreren RTOC's im Netzwerk


Die Oberfläche hat erweiterte Darstellungsoptionen und verschiedene Messtools für den Plot bereit.
Die Oberfläche hat erweiterte Darstellungsoptionen und stellt verschiedene Messtools für den Plot bereit.

## Funktionsübersicht
- Plugins und TCP-Clients:
- können Daten als Stream(=append) oder Plot(=replace) senden
- können Events senden
- Remotesteuerung per TCP oder Telegram-Bot:
- Ermöglicht reine Serveranwendungen z.B. auf Raspberry Pi
- Kompletter Zugriff per Telegram-Bot
- Skripte:
- Multi-Tab Skript-Editor
- Der Nutzer kann während der Laufzeit mit den Signalen und Plugins interagieren:
Expand All @@ -66,15 +75,17 @@ Die Oberfläche hat erweiterte Darstellungsoptionen und verschiedene Messtools f
### Screenshots - siehe unten

## Python3 Paket-Abhängigkeiten
- sudo apt install python3-pyqt5
- sudo apt install python3-pyqt5.qtsvg
- sudo apt install python3-pip
- pip3 install numpy
- pip3 install pyqtgraph
- pip3 install markdown2
- pip3 install xlsxwriter
- pip3 install scipy
- pip3 install qtmodern
- numpy
- pyqt5
- pyqtgraph
- markdown2
- xlsxwriter
- scipy
- qtmodern
- python-telegram-bot
- matplotlib
- requests
- python-nmap

Optional für Plugins:
- pip3 install minimalmodbus (DPS5020)
Expand Down
25 changes: 25 additions & 0 deletions RTOC.egg-info/PKG-INFO
@@ -0,0 +1,25 @@
Metadata-Version: 1.2
Name: RTOC
Version: 1.7
Summary: RealTime OpenControl
Home-page: https://github.com/Haschtl/RealTimeOpenControl
Author: Sebastian Keller
Author-email: sebastiankeller@online.de
License: GNU
Description: RealTime OpenControl is a universal measurement, plot and control-software.
It's purpose is to put measurements from different devices (for example 3d-printers, multimeters, power supplies, microcontroller,...) into one tool.
Its fully expandable for every device with Python-Plugins and a running TCP-server.
You can also control the devices (if your plugin has this functionality) with python-scripts, which you can write and run at runtime! This makes it also possible to plot everything else.
There are some example-plugins and example-scripts included.
It also offers an extended plotting-GUI with multiple plots, measure-tools, style-adjustments.

Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=3
194 changes: 194 additions & 0 deletions RTOC.egg-info/SOURCES.txt
@@ -0,0 +1,194 @@
MANIFEST.in
README.md
setup.cfg
setup.py
RTOC/LoggerPlugin.py
RTOC/RTLogger.py
RTOC/RTOC.py
RTOC/__init__.py
RTOC/__main__.py
RTOC/jsonsocket.py
RTOC/telegramBot.py
RTOC.egg-info/PKG-INFO
RTOC.egg-info/SOURCES.txt
RTOC.egg-info/dependency_links.txt
RTOC.egg-info/requires.txt
RTOC.egg-info/top_level.txt
RTOC/data/Actions.py
RTOC/data/RTPlotActions.py
RTOC/data/RTPlotWidget.py
RTOC/data/ScriptFunctions.py
RTOC/data/__init__.py
RTOC/data/define.py
RTOC/data/eventWidget.py
RTOC/data/icon.png
RTOC/data/importCode.py
RTOC/data/loggerlib.py
RTOC/data/scriptHelpWidget.py
RTOC/data/scriptLibrary.py
RTOC/data/scriptSubWidget.py
RTOC/data/scriptWidget.py
RTOC/data/signalEditWidget.py
RTOC/data/signalWidget.py
RTOC/data/styleMultiPlotGUI.py
RTOC/data/stylePlotGUI.py
RTOC/data/lib/__init__.py
RTOC/data/lib/general_lib.py
RTOC/data/lib/pyqt_customlib.py
RTOC/data/ui/darkmode.html
RTOC/data/ui/eventWidget.ui
RTOC/data/ui/gridViewWidget.ui
RTOC/data/ui/lightmode.html
RTOC/data/ui/messtoolDialog.ui
RTOC/data/ui/plotToolsWidget.ui
RTOC/data/ui/plotViewWidget.ui
RTOC/data/ui/plotWidget.ui
RTOC/data/ui/rtoc.ui
RTOC/data/ui/scriptHelpWidget.ui
RTOC/data/ui/scriptSubWidget.ui
RTOC/data/ui/scriptWidget.ui
RTOC/data/ui/signalWidget.ui
RTOC/data/ui/signalWidget2.ui
RTOC/data/ui/stylePlotDialog.ui
RTOC/data/ui/stylePlotDialog2.ui
RTOC/data/ui/triggerWidget.ui
RTOC/data/ui/icons/blinking.png
RTOC/data/ui/icons/clear.png
RTOC/data/ui/icons/crosshair.png
RTOC/data/ui/icons/cut.png
RTOC/data/ui/icons/duplicate.png
RTOC/data/ui/icons/events.png
RTOC/data/ui/icons/exportCSV.png
RTOC/data/ui/icons/graph.png
RTOC/data/ui/icons/grid.png
RTOC/data/ui/icons/help.png
RTOC/data/ui/icons/hohe_prioritaet.png
RTOC/data/ui/icons/hohe_prioritaet_grey.png
RTOC/data/ui/icons/icons8-stornieren-480.png
RTOC/data/ui/icons/invert.png
RTOC/data/ui/icons/labels.png
RTOC/data/ui/icons/legend.png
RTOC/data/ui/icons/measure.png
RTOC/data/ui/icons/mittlere_prioritaet.png
RTOC/data/ui/icons/mittlere_prioritaet_grey.png
RTOC/data/ui/icons/niedrige_prioritaet.png
RTOC/data/ui/icons/niedrige_prioritaet_grey.png
RTOC/data/ui/icons/open.png
RTOC/data/ui/icons/pause.png
RTOC/data/ui/icons/rename.png
RTOC/data/ui/icons/repeat.png
RTOC/data/ui/icons/repeat1.png
RTOC/data/ui/icons/style.png
RTOC/data/ui/icons/swap.png
RTOC/data/ui/icons/x.png
RTOC/data/ui/icons/xaxislabel.png
RTOC/data/ui/icons/xtimebase.png
RTOC/data/ui/icons/y.png
RTOC/data/ui/icons/dark/Hmovetoolbar.png
RTOC/data/ui/icons/dark/Hsepartoolbar.png
RTOC/data/ui/icons/dark/Vmovetoolbar.png
RTOC/data/ui/icons/dark/Vsepartoolbar.png
RTOC/data/ui/icons/dark/add.png
RTOC/data/ui/icons/dark/add_element.png
RTOC/data/ui/icons/dark/add_element_hovered.png
RTOC/data/ui/icons/dark/add_hovered.png
RTOC/data/ui/icons/dark/add_new.png
RTOC/data/ui/icons/dark/add_new_hovered.png
RTOC/data/ui/icons/dark/checkbox_checked.png
RTOC/data/ui/icons/dark/checkbox_checked_hovered.png
RTOC/data/ui/icons/dark/checkbox_indeterminate.png
RTOC/data/ui/icons/dark/checkbox_indeterminate_hovered.png
RTOC/data/ui/icons/dark/checkbox_unchecked.png
RTOC/data/ui/icons/dark/checkbox_unchecked_hovered.png
RTOC/data/ui/icons/dark/close_window.png
RTOC/data/ui/icons/dark/close_window_hovered.png
RTOC/data/ui/icons/dark/delete_profile.png
RTOC/data/ui/icons/dark/delete_profile_hovered.png
RTOC/data/ui/icons/dark/down_arrow.png
RTOC/data/ui/icons/dark/down_arrow_disabled.png
RTOC/data/ui/icons/dark/download.png
RTOC/data/ui/icons/dark/edit.png
RTOC/data/ui/icons/dark/edit_hovered.png
RTOC/data/ui/icons/dark/file.png
RTOC/data/ui/icons/dark/file_hovered.png
RTOC/data/ui/icons/dark/filter.png
RTOC/data/ui/icons/dark/filter_hovered.png
RTOC/data/ui/icons/dark/image.png
RTOC/data/ui/icons/dark/image_hovered.png
RTOC/data/ui/icons/dark/left_arrow.png
RTOC/data/ui/icons/dark/left_arrow_disabled.png
RTOC/data/ui/icons/dark/maximize_window.png
RTOC/data/ui/icons/dark/maximize_window_hovered.png
RTOC/data/ui/icons/dark/menu.png
RTOC/data/ui/icons/dark/menu_hovered.png
RTOC/data/ui/icons/dark/merge.png
RTOC/data/ui/icons/dark/merge_hovered.png
RTOC/data/ui/icons/dark/minimize_window.png
RTOC/data/ui/icons/dark/minimize_window_hovered.png
RTOC/data/ui/icons/dark/radio_checked.png
RTOC/data/ui/icons/dark/radio_checked_hovered.png
RTOC/data/ui/icons/dark/radio_disabled.png
RTOC/data/ui/icons/dark/radio_unchecked.png
RTOC/data/ui/icons/dark/radio_unchecked_hovered.png
RTOC/data/ui/icons/dark/remove_element.png
RTOC/data/ui/icons/dark/remove_element_hovered.png
RTOC/data/ui/icons/dark/restore_window.png
RTOC/data/ui/icons/dark/restore_window_hovered.png
RTOC/data/ui/icons/dark/right_arrow.png
RTOC/data/ui/icons/dark/right_arrow_disabled.png
RTOC/data/ui/icons/dark/save.png
RTOC/data/ui/icons/dark/save_hovered.png
RTOC/data/ui/icons/dark/sizegrip.png
RTOC/data/ui/icons/dark/source.png
RTOC/data/ui/icons/dark/source_hovered.png
RTOC/data/ui/icons/dark/submitElement.png
RTOC/data/ui/icons/dark/submitElement_hovered.png
RTOC/data/ui/icons/dark/undo.png
RTOC/data/ui/icons/dark/undo_hovered.png
RTOC/data/ui/icons/dark/undock.png
RTOC/data/ui/icons/dark/up_arrow.png
RTOC/data/ui/icons/dark/up_arrow_disabled.png
RTOC/lang/en_en.qm
RTOC/lang/en_en.ts
RTOC/plugins/DPS5020.py
RTOC/plugins/Generator.py
RTOC/plugins/HoldPeak VC820.py
RTOC/plugins/NetWoRTOC.py
RTOC/plugins/OctoTouch.py
RTOC/plugins/System.py
RTOC/plugins/Template.py
RTOC/plugins/DPS5020/dps5020.ui
RTOC/plugins/Funktionsgenerator/gen_function.ui
RTOC/plugins/Octotouch/OctoprintApi.py
RTOC/plugins/Octotouch/octotouch.ui
RTOC/plugins/Octotouch/__pycache__/OctoprintApi.cpython-36.pyc
RTOC/plugins/System/system.ui
RTOC/plugins/Template/template.ui
RTOC/plugins/holdPeak_VC820/portSelectWidget.ui
RTOC/plugins/holdPeak_VC820/vc820py/.gitignore
RTOC/plugins/holdPeak_VC820/vc820py/README.md
RTOC/plugins/holdPeak_VC820/vc820py/generate_test.py
RTOC/plugins/holdPeak_VC820/vc820py/raw2json.py
RTOC/plugins/holdPeak_VC820/vc820py/rawtime2csv.py
RTOC/plugins/holdPeak_VC820/vc820py/rawtime2json.py
RTOC/plugins/holdPeak_VC820/vc820py/rawtime2raw.py
RTOC/plugins/holdPeak_VC820/vc820py/read_from_serial.py
RTOC/plugins/holdPeak_VC820/vc820py/read_multiple.py
RTOC/plugins/holdPeak_VC820/vc820py/read_multiple_reader.py
RTOC/plugins/holdPeak_VC820/vc820py/read_reader.py
RTOC/plugins/holdPeak_VC820/vc820py/reader.py
RTOC/plugins/holdPeak_VC820/vc820py/record_serial.py
RTOC/plugins/holdPeak_VC820/vc820py/replay_rawtime.py
RTOC/plugins/holdPeak_VC820/vc820py/ut61b.py
RTOC/plugins/holdPeak_VC820/vc820py/vc820.py
RTOC/plugins/holdPeak_VC820/vc820py/__pycache__/vc820.cpython-36.pyc
RTOC/plugins/netWoRTOC/gui.py
RTOC/plugins/netWoRTOC/networkscan.py
RTOC/plugins/netWoRTOC/networtoc.ui
RTOC/plugins/netWoRTOC/repeat.png
RTOC/plugins/netWoRTOC/repeat1.png
RTOC/plugins/netWoRTOC/search.png
RTOC/plugins/netWoRTOC/__pycache__/gui.cpython-36.pyc
RTOC/plugins/netWoRTOC/__pycache__/networkscan.cpython-36.pyc
RTOC/plugins/vc820py/-h
RTOC/plugins/vc820py/__pycache__/vc820.cpython-36.pyc
1 change: 1 addition & 0 deletions RTOC.egg-info/dependency_links.txt
@@ -0,0 +1 @@

11 changes: 11 additions & 0 deletions RTOC.egg-info/requires.txt
@@ -0,0 +1,11 @@
numpy
pyqt5
pyqtgraph
markdown2
xlsxwriter
scipy
qtmodern
python-telegram-bot
matplotlib
requests
python-nmap
1 change: 1 addition & 0 deletions RTOC.egg-info/top_level.txt
@@ -0,0 +1 @@
RTOC

0 comments on commit 24fe75b

Please sign in to comment.