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

Type error while generating measurements is fixed

parent 322b72c5
Branches
No related tags found
No related merge requests found
......@@ -74,7 +74,7 @@ async def main():
uri = 'http://examples.freeopcua.github.io'
idx = await server.register_namespace(uri)
#id des rangedatentyps
rangeid = await server.nodes.base_data_type.get_child(["0:Structure" , "0:Range"])
rangeid = await server.nodes.base_data_type.get_child(["0:Structure", "0:Range"])
#measurementobjekte für dynamischer
# tcpobject = Measurement("Tool Center Point", "Tool center point of a six-arm robot.", float, 3 , (-0.5, 0.5), "metre")
......@@ -82,12 +82,9 @@ async def main():
# batteryobject = Measurement("Battery level", "Battery level", int , 0 ,(0, 100), "percent")
# measureobjectlist = [tcpobject , positionobject, batteryobject]
tcpobject = getobj(
"Tool Center Point") # Measurement("Tool Center Point", "Tool center point of a six-arm robot.", float, 3 , (-0.5, 0.5), "metre")
positionobject = getobj(
"Position") # Measurement("Position", "Position in Cartesian coordinates given in metre.", float, 3, (-50, 50) , "metre")
batteryobject = getobj(
"Battery level") # Measurement("Battery level", "Battery level", int , 0 ,(0, 100), "percent")
tcpobject = getobj("Tool Center Point")
positionobject = getobj("Position")
batteryobject = getobj("Battery level")
measureobjectlist = jsonparse.measurementobj
#parameterobjekte
......@@ -107,8 +104,13 @@ async def main():
#measurements evtl varianttype vom variabletype und datatype measurement
for a in measureobjectlist:
varianttype = ua.VariantType.Int64
if a.datatype == "float" or a.datatype == "double":
varianttype = ua.VariantType.Double
elif a.datatype == "boolean":
varianttype = ua.VariantType.Boolean
name = a.name + "var"
name = await myobjtype.add_variable(idx, a.name , a.value , datatype = vartype.nodeid)
name = await myobjtype.add_variable(idx, a.name, a.value, varianttype=varianttype, datatype=vartype.nodeid)
await name.set_modelling_rule(True)
#namelist = namelist + name
if a.range is not None:
......@@ -124,7 +126,7 @@ async def main():
#parameters
for a in paraobjectlist:
para = await myobjtype.add_variable(idx, a.name , a.value , datatype = paratype.nodeid)
para = await myobjtype.add_variable(idx, a.name, a.value, datatype=paratype.nodeid)
await para.set_modelling_rule(True)
if a.range is not None:
rangeprop = await para.add_property(idx, "range", ua.Range(a.range[0], a.range[1]))
......@@ -166,6 +168,9 @@ async def main():
tcpvarname = "2:" + tcpobject.name
tcpvarmeas = await mobilerobot.get_child([tcpvarname])
# tcpvarmeas.set_writable(True)
# tcprobmeas = await robot.get_child([tcpvarname])
#adding function goTo to robot
goTofunc = await mobilerobot.add_method(idx, "goToset", goTo, [ua.VariantType.Float], [ua.VariantType.Float])
......@@ -181,11 +186,12 @@ async def main():
batteryerrorgen.event.Severity = 1000
#streamevents
tcpstream = await server.create_custom_event_type(idx, "Streaming", ua.ObjectIds.BaseEventType, [("tcpstream", ua.VariantType.Float)])
tcpstreamgenrob = await server.get_event_generator(tcpstream, robot)
tcpstreamgenrob.tcpstream = await tcpvarmeas.get_value()
# tcpstream = await server.create_custom_event_type(idx, "Streaming", ua.ObjectIds.BaseEventType, [("tcpstream", ua.VariantType.Float)])
# tcpstreamgenrob = await server.get_event_generator(tcpstream, robot)
#tcpstreamgenrob.tcpstream = await tcpvarmeas.get_value()
tcpstreamgenmobrob = await server.get_event_generator(tcpstream, mobilerobot)
tcpstreammob = await server.create_custom_event_type(idx, "StreamingMob", ua.ObjectIds.BaseEventType)
tcpstreamgenmobrob = await server.get_event_generator(tcpstreammob, mobilerobot)
tcpstreamgenmobrob.tcpstream = await tcpvarmeas.get_value()
#tryout für zugriff
......@@ -198,12 +204,11 @@ async def main():
while True:
tcppos = await tcpvarmeas.get_value()
# tcpposrob = await tcprobmeas.get_value()
if time % 10 == 0:
await tcpstreamgenmobrob.trigger(
message="MobileRobot updatet value [" + str(tcppos[0]) + "," + str(tcppos[1]) + "," + str(tcppos[2]) + "]")
await tcpstreamgenrob.trigger(message = "Robot updatet value [" + str(tcppos[0]) + "," + str(tcppos[1]) + "," + str(tcppos[2]) + "]")
# await positionrobot.set_value([1.0, 0.0, 0.0])
await tcpstreamgenmobrob.trigger(message="MobileRobot updatet value [" + str(tcppos[0]) + "," + str(tcppos[1]) + "," + str(tcppos[2]) + "]")
# await tcpstreamgenrob.trigger(message = "Robot updatet value [" + str(tcppos[0]) + "," + str(tcppos[1]) + "," + str(tcppos[2]) + "]")
# await positionrobot.set_value([1.0, 0.0, 0.0])
batteryload = await batterymeas.get_value()
#await batterymeas.set_value(19)
if 20 > batteryload >= 10:
......@@ -214,7 +219,7 @@ async def main():
time += 1
batterysave = batteryload - 1
await batterymeas.set_value(batterysave)
tcppossave = tcppos[0] + 1
tcppossave = tcppos[0] + 1.0
await tcpvarmeas.set_value([tcppossave, 0.0, 0.0])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment