
| Current Path : /proc/thread-self/root/home/ift/52_procpy/dataninja/test/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //proc/thread-self/root/home/ift/52_procpy/dataninja/test/qtimer.py |
# coding: utf8
import os,re,sys
from PyQt5.QtCore import QTimer
from opcua import ua, Server
class QTimerExtend (QTimer):
def __init__(self):
super().__init__()
self.objects = {}
def register_object (self,obj,id):
if id == None:
del self.objects
else:
self.objects[id] = obj
def define_loops (self,*pars):
self.opcua_servers = {}
self.opcua_clients = {}
for entry in pars:
if entry[1][0].upper() == "S":
self.opcua_servers[entry[0]] = self.add_opcua_server( entry[2] )
else:
self.opcua_clients[entry[0]] = self.add_opcua_server( entry[2] )
def add_opcua_server (self,url):
server = Server()
server.set_endpoint("opc.tcp://0.0.0.0:4842/freeopcua/server/")
objects = server.get_objects_node()
idx = server.register_namespace("Event_OPCUA")
etype = server.create_custom_event_type(idx,'Event_OPCUA', ua.ObjectIds.BaseEventType,
[('Sleeptime', ua.VariantType.Float), ('JSONDataLoad', ua.VariantType.String)])
myobj = objects.add_object(idx, "JSONObject")
myevgen = server.get_event_generator(etype, myobj)
server.start()
return(myevgen)
def singleShot (self,*pars):
if type(pars[0]) == type([]):
if pars[0][0] in self.opcua_servers:
remote_id = pars[0][0]
pars = list(pars)
pars[0] = pars[0][1]
server_event = self.opcua_servers[remote_id]
server_event.event.Message = ua.LocalizedText("OPCUA Server")
server_event.event.Sleeptime = 100
server_event.event.JSONDataLoad = "Property"
server_event.trigger()
print (889)
else:
## if type(pars[1]) == type(""):
# pars[1] = self.objects[pars[1]]
super().singleShot(*pars)