diff --git a/robot.py b/robot.py index 4c5c9d062d03b933201f4be98aea7f8aca208a52..01b0b54eb710d7340f59dc0ee927e8e2f165a0bf 100644 --- a/robot.py +++ b/robot.py @@ -63,7 +63,7 @@ async def main(): tcpobject = Measurement("Tool Center Point", "Tool center point of a six-arm robot.", float, 3 , (-0.5, 0.5), "metre") positionobject = Measurement("Position" , "Position in Cartesian coordinates given in metre.", float, 3, (-50, 50) , "metre") batteryobject = Measurement("Battery level", "Battery level", int , 0 ,(0, 100), "percent") - measureobjectlist = [tcpobject , positionobject, batteryobject] + measureobjectlist = [tcpobject , batteryobject] #positionobject, #parameterobjekte openobject = Parameter("Open", "Flag to specify if something is open.", bool, 0, default = True) @@ -80,16 +80,26 @@ async def main(): #variable mit entsprechenden properties #measurements evtl varianttype vom variabletype und datatype measurement + for a in measureobjectlist: - var = await myobj.add_variable(idx, a.name , a.value , datatype = vartype.nodeid) + name = a.name + "var" + name = await myobj.add_variable(idx, a.name , a.value , datatype = vartype.nodeid) + #namelist = namelist + name if a.range is not None: - rangeprop = await var.add_property(idx, "range", ua.Range(a.range[0], a.range[1])) + rangeprop = await name.add_property(idx, "range", ua.Range(a.range[0], a.range[1])) if a.unit is not None: - unitporp = await var.add_property(idx, "unit", a.unit) - description = await var.add_property(idx, "Description", a.description) + unitporp = await name.add_property(idx, "unit", a.unit) + description = await name.add_property(idx, "Description", a.description) + + positionvar = await myobj.add_variable(idx,positionobject.name, positionobject.value, datatype = vartype.nodeid) + if a.range is not None: + posrangeprop = await positionvar.add_property(idx, "range", ua.Range(positionobject.range[0], positionobject.range[1])) + if a.unit is not None: + unitprop = await positionvar.add_property(idx, "unit", positionobject.unit) + posdescription = await positionvar.add_property(idx, "Description", positionobject.description) #parameters - + for a in paraobjectlist: para = await myobj.add_variable(idx, a.name , a.value , datatype = paratype.nodeid) if a.range is not None: @@ -106,9 +116,28 @@ async def main(): openvar = await gripper.add_variable(idx, "Open", True, datatype = paratype.nodeid) await openvar.add_property(idx, "Description", "Flag to specify if something is open.") + #functions + #Warten auf umsetzen + @uamethod + def goTo(parent, position): + while positionvar.get_value() != position : + print("Waiting for position") + goTofunc = await myobj.add_method(idx, "goTo", goTo, [vartype]) + + #einfach umsetzen + @uamethod + def goTosetvalue (parent, position): + positionvar.set_value(position) + + goTosetvaluefunc = await myobj.add_method(idx, "goToset", goTosetvalue, [vartype]) + + + + #server async with server: print("Server läuft!") + #print(bla) while True: await asyncio.sleep(1)