Skip to content

Commit

Permalink
removed QThreads, exception handling, removed splash, added main-func…
Browse files Browse the repository at this point in the history
…tion, fixed TrayIcon-menu, removed Qt-Warnings
  • Loading branch information
Sebastian Keller committed Nov 7, 2018
1 parent 45eb803 commit 5a17205
Show file tree
Hide file tree
Showing 11 changed files with 154 additions and 258 deletions.
3 changes: 3 additions & 0 deletions LoggerPlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,9 @@ def sendTCP(self, *args, **kwargs):
response = self.sock.recv()
self.sock.close()
return response
except ConnectionRefusedError:
print('TCP Connection refused')
return False
except:
tb = traceback.format_exc()
print(tb)
Expand Down
174 changes: 58 additions & 116 deletions RTLogger.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
from threading import Thread
from collections import deque
import numpy as np
#from multiprocessing.connection import Listener
import socket

import plugins
import data.lib.general_lib as lib
Expand All @@ -22,11 +20,9 @@

class RTLogger(ScriptFunctions):
def __init__(self):
#sys.setrecursionlimit(1500)
self.run = True
self.config = {}
self.load_config()
# self.plugins={}
self.pluginObjects = {} # dict with all plugins
self.pluginFunctions = {}
self.pluginParameters = {}
Expand All @@ -37,9 +33,6 @@ def __init__(self):
for finder, name, ispkg in iter_namespace(plugins):
if name not in ["plugins.Template", "plugins.LoggerPlugin"]:
self.devicenames += [name]
#print("Available devices")
#[print("- "+name.replace("plugins.", "")) for name in self.devicenames]
#print("")

self.signals = []
self.signalNames = []
Expand All @@ -50,10 +43,6 @@ def __init__(self):
self.triggerExpressions = []
self.triggerValues = []

# self.__server = Thread(target=self.multiprocessingListener) # Actualize data
# self.__server.start()

#self.tcp = jsonsocket.Server("localhost",self.config["tcpPort"])
self.tcp = None
self.toggleTcpServer(self.config['tcpserver'])

Expand All @@ -64,7 +53,7 @@ def __init__(self):
self.scriptExecutedCallback = None
self.handleScriptCallback = None
self.clearCallback = None

self.newEventCallback = None
self.tcpclient = LoggerPlugin(None,None,None)

def toggleTcpServer(self, value = None):
Expand All @@ -87,45 +76,7 @@ def sendTCP(self, hostname="localhost", *args, **kwargs):
self.tcpclient.createTCPClient(hostname)
self.tcpclient.sendTCP(*args, **kwargs)

# client
# def multiprocessingChild(self, conn):
# while self.run:
# try:
# msg = conn.recv()
# # this just echos the value back, replace with your custom logic
# if type(msg) == list:
# datasY = []
# datanames = [""]
# devicename = "noDevice"
# callback = [""]
# datasX = [None]
# for idx, value in enumerate(msg):
# if idx == 0:
# datasY = value
# elif idx == 1:
# datanames = value
# elif idx == 2:
# devicename = value
# elif idx == 3:
# callback = value
# elif idx == 4:
# datasX = value
# self.addDataCallback(datasY, datanames, devicename, callback, datasX, True)
# msg = True
# else:
# msg = False
# conn.send(msg)
# except EOFError:
# print("Error in reading")
# try:
# conn.send(False)
# except:
# print("... and in sending")
# break

def tcpListener(self):
#while self.run:
#self.tcp.listen()
while self.tcpRunning:
ans = {'error':False}
try:
Expand Down Expand Up @@ -168,26 +119,15 @@ def tcpListener(self):
if key not in ans.keys():
ans[key]=msg[key]
self.tcp.send(ans)
except OSError:
print("TCP Server idle")
except:
tb = traceback.format_exc()
print(tb)
print("Error in TCP-Connection")
ans['error']=True
#self.tcp.send(ans)

# server
# def multiprocessingListener(self):
# address = ('127.0.0.1', self.config['multithreadingPort'])
# self.serv = Listener(address)
# while self.run:
# try:
# #serv = Listener(address)
# client = self.serv.accept()
# self.multiprocessingChild(client)
# # self.serv.close()
# except:
# print("multiprocessingListener died almost")


# Plugin functions ############################################################

Expand Down Expand Up @@ -523,28 +463,28 @@ def addData(self, data=0, *args, **kwargs):
if idx == 3:
createCallback = arg

try:
if type(data) == list:
if len(data) == 2:
if [devicename, dataname] in self.signalNames:
self.__addNewData(float(data[1]),
dataunit, devicename, dataname, float(data[0]), createCallback)
else:
self.__addNewSignal(float(data[1]),
dataunit, devicename, dataname, float(data[0]), createCallback)
else:
print("Wrong data size")
else:
#try:
if type(data) == list:
if len(data) == 2:
if [devicename, dataname] in self.signalNames:
self.__addNewData(data,
dataunit, devicename, dataname, None, createCallback)
self.__addNewData(float(data[1]),
dataunit, devicename, dataname, float(data[0]), createCallback)
else:
self.__addNewSignal(data,
dataunit, devicename, dataname, None, createCallback)
except:
tb = traceback.format_exc()
print(tb)
print("SCRIPT FAILURE\nSignal not available")
self.__addNewSignal(float(data[1]),
dataunit, devicename, dataname, float(data[0]), createCallback)
else:
print("Wrong data size")
elif type(data) == int or type(data) == float:
if [devicename, dataname] in self.signalNames:
self.__addNewData(data,
dataunit, devicename, dataname, None, createCallback)
else:
self.__addNewSignal(data,
dataunit, devicename, dataname, None, createCallback)
# except:
# tb = traceback.format_exc()
# print(tb)
# print("SCRIPT FAILURE\nSignal not available")

def plot(self, x=[], y=[], *args, **kwargs):
dataname = kwargs.get('sname', "noName")
Expand All @@ -564,21 +504,21 @@ def plot(self, x=[], y=[], *args, **kwargs):
if y == []:
y = x
x = list(range(len(x)))
try:
if len(x) == len(y):
if [devicename, dataname] in self.signalNames:
self.__plotNewData(x, y,
dataunit, devicename, dataname, createCallback)
#try:
if len(x) == len(y):
if [devicename, dataname] in self.signalNames:
self.__plotNewData(x, y,
dataunit, devicename, dataname, createCallback)

else:
self.__plotNewSignal(x, y,
dataunit, devicename, dataname, createCallback)
else:
print("Plotting aborted. len(x)!=len(y)")
except:
tb = traceback.format_exc()
print(tb)
print("SCRIPT FAILURE\nPlotting failed!")
self.__plotNewSignal(x, y,
dataunit, devicename, dataname, createCallback)
else:
print("Plotting aborted. len(x)!=len(y)")
# except:
# tb = traceback.format_exc()
# print(tb)
# print("SCRIPT FAILURE\nPlotting failed!")

# Other functions #########################################################

Expand Down Expand Up @@ -696,29 +636,31 @@ def exportJSON(self, filename):
json.dump(jsonfile, fp, sort_keys=False, indent=4, separators=(',', ': '))

def restoreJSON(self, filename="restore.json"):
try:
if os.path.exists(filename):
with open(filename) as f:
data = json.load(f)
self.clear()
self.maxLength = data["maxLength"]
#self.events[0]=deque(data["events"][0], self.maxLength)
#self.events[1]=deque(data["events"][1], self.maxLength)
for signal in data["data"].keys():
# try:
if os.path.exists(filename):
with open(filename) as f:
data = json.load(f)
self.clear()
self.maxLength = data["maxLength"]
#self.events[0]=deque(data["events"][0], self.maxLength)
#self.events[1]=deque(data["events"][1], self.maxLength)
for signal in data["data"].keys():
name = signal.split(".")
if len(data["data"][signal][0]) != 0:
self.plot(data["data"][signal][0], data["data"][signal][1],
name[1], name[0], data["data"][signal][2], False)
for signal in data["events"].keys():
if signal != ".":
name = signal.split(".")
if len(data["data"][signal][0]) != 0:
self.plot(data["data"][signal][0], data["data"][signal][1],
name[1], name[0], data["data"][signal][2], False)
for signal in data["events"].keys():
if signal != ".":
name = signal.split(".")
for idx, event in enumerate(data["events"][signal][0]):
self.addNewEvent(data["events"][signal][1][idx], name[1], name[0], event, data["events"][signal][2])
for idx, event in enumerate(data["events"][signal][0]):
self.addNewEvent(data["events"][signal][1][idx], name[1], name[0], event, data["events"][signal][2])
return True
except:
tb = traceback.format_exc()
print(tb)
else:
return False
# except:
# tb = traceback.format_exc()
# print(tb)
# return False

def exportCSV(self, filename):
textfile = ''
Expand Down

0 comments on commit 5a17205

Please sign in to comment.