Skip to content
Snippets Groups Projects
Commit 45cce98c authored by Susanna Weber's avatar Susanna Weber
Browse files

Rekursion über basecomponents eingebaut, aber feinschliff fehlt

parent 6b0b1a34
No related branches found
No related tags found
No related merge requests found
......@@ -140,6 +140,7 @@ def getMeasurements(measurementsDict):
return measurementobj
def searchlists(list1, list2):
print("I am searching")
objmeasurementlist = []
# print(obj["measurements"])
if len(list1) <= 0:
......@@ -168,6 +169,28 @@ def iskeythere(list, key):
return True
return False
def iteratingInterface(obj, dict, componentslist):
if iskeythere(list(obj.keys()), "baseComponent"):
for searchobj in componentslist:
if searchobj["uuid"] == obj["baseComponent"]:
wf.writeinterface(componentslist[searchobj["name"]], searchobj["name"])
def getInterfaceparam(list1, interface, searched, jsoncomponents, searchinglist):
#list1.append(searchlists(interface[searched], searchinglist))
for inputsearch in interface[searched]:
for searchobj in searchinglist:
if inputsearch["value"] == searchobj["uuid"]:
list1.append(searchobj)
if iskeythere(list(interface.keys()), "baseComponent"):
for component in jsoncomponents:
if component["uuid"] == interface["baseComponent"]:
return getInterfaceparam(list1, component, searched, jsoncomponents, searchinglist)
else:
return list1
def main():
try:
......@@ -187,10 +210,11 @@ def main():
exit()
jsonmeasurements = []
jsonparameters = []
jsonfunctions= []
jsoncomponents= []
jsonfunctions = []
jsoncomponents = []
jsoninterfaces = []
for obj in elements:
#print(obj)
if obj["elementType"] == "measurement":
jsonmeasurements.append(obj)
elif obj["elementType"] == "parameter":
......@@ -201,58 +225,48 @@ def main():
jsoncomponents.append(obj)
elif obj["elementType"] == "interface":
jsoninterfaces.append(obj)
componenttypesdict = {}
for obj in jsoncomponents:
interfacestypesdict = {}
for obj in jsoninterfaces:
#print(obj["name"])
del obj["cardOpen"]
#del obj["cardOpen"]
#del obj["uuid"]
objname = wf.openobject(obj["name"], obj["description"])
componenttypesdict[str(obj["name"])] = objname
if iskeythere(list(obj.keys()), "baseComponent"):
basecomponent = obj["baseComponent"]
for search in jsoncomponents:
#print(search["uuid"])
if basecomponent == search["uuid"]:
wf.writebasecomponent(componenttypesdict[str(obj["name"])], componenttypesdict[str(search["name"])], search["name"])
objcomponentslist = searchlists(obj["components"], jsoncomponents)
wf.writecomponents(componenttypesdict[obj["name"]], objcomponentslist, componenttypesdict)
objmeasurementlist = searchlists(obj["measurements"], jsonmeasurements)
rootobj = {}
for search in jsoncomponents:
if obj["rootComponent"] == search["uuid"]:
rootobj = search
objname = wf.openobject(obj["name"], rootobj["description"])
interfacestypesdict[str(obj["name"])] = objname
#rootObjname = obj["rootComponent"]
# if iskeythere(list(obj.keys()), "baseComponent"):
# basecomponent = obj["baseComponent"]
# for search in jsoncomponents:
# #print(search["uuid"])
# if basecomponent == search["uuid"]:
# wf.writebasecomponent(componenttypesdict[str(obj["name"])], componenttypesdict[str(search["name"])], search["name"])
objcomponentslist = getInterfaceparam([], rootobj, "components", jsoncomponents, jsoncomponents)
wf.writecomponents(interfacestypesdict[str(obj["name"])], objcomponentslist, interfacestypesdict)
objmeasurementlist = getInterfaceparam([], rootobj, "measurements", jsoncomponents, jsonmeasurements)
measurementsobjs = getMeasurements(objmeasurementlist)
#print(objmeasurementlist)
wf.writemeasurement(measurementsobjs, componenttypesdict[str(obj["name"])])
objparameterlist = searchlists(obj["parameters"], jsonparameters)
wf.writemeasurement(measurementsobjs, interfacestypesdict[str(obj["name"])])
objparameterlist = getInterfaceparam([], rootobj, "parameters", jsoncomponents, jsonparameters)
parameterobjs = getParameters(objparameterlist)
wf.writemeasurement(parameterobjs, componenttypesdict[str(obj["name"])])
for obj in jsoninterfaces:
for searchobj in jsoncomponents:
if searchobj["uuid"] == obj["rootComponent"]:
wf.writeinterface(componenttypesdict[searchobj["name"]], obj["name"])
wf.writemeasurement(parameterobjs, interfacestypesdict[str(obj["name"])])
wf.writend()
# print("Measurements: ")
# print(jsonmeasurements)
# print("\n")
# print("Components: ")
# print(jsoncomponents)
# print("\n")
# print("Parameters: ")
# print(jsonparameters)
# print("\n")
# print("Functions: ")
# print(jsonfunctions)
print("Measurements: ")
print(objmeasurementlist)
print("\n")
print("Components: ")
print(objcomponentslist)
print("\n")
print("Parameters: ")
print(objparameterlist)
print("\n")
print("Functions: ")
print(jsonfunctions)
......
......@@ -83,8 +83,8 @@ def writecomponents(headnode, componentslist, typesdict):
server = open("opcua-server.py", "a")
writeindent = " "
for component in componentslist:
objname = typesdict[component["name"]] + "component"
server.write(writeindent + objname + " = await " + headnode + ".add_object(idx, \""+ component["name"] + "\", " + typesdict[component["name"]] + ".nodeid)\n")
objname = component["name"].lower() + "component"
server.write(writeindent + objname + " = await " + headnode + ".add_object(idx, \"" + component["name"] + "\")\n")
server.write(writeindent + "await " + objname + "." + "set_modelling_rule(True)\n")
def writemeasurement(measurementobj, headnode):
server = open("opcua-server.py", "a")
......@@ -163,11 +163,17 @@ def writefunction(functionobj, headnode):
inargslist.append(getVariantType(j))
server.write(writeindent + "await mobilerobot.add_method(idx, \"" + i.name +"\", " + functionname + ", " + str(inargslist) + ", "+ str(outargslist) + ")\n\n")
def writeobjects(objtype, objname, headnode):
server = open("opcua-server.py", "a")
writeindent = " "
#objtypename = (objname.lower()).replace(" ", "") + "var"
server.write(
writeindent + objtypename + "= await " + headnode + ".add_object(idx, \"" + objname + "\", " + objtype + ".nodeid)\n")
def writeinterface(objtype, objname):
server = open("opcua-server.py", "a")
writeindent = " "
objtypename = (objname.lower()).replace(" ","") + "var"
#objtypename = (objname.lower()).replace(" ","") + "var"
server.write(writeindent + objtypename + "= await server.nodes.objects.add_object(idx, \"" + objname + "\", " + objtype + ".nodeid)\n")
def writend():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment