Skip to content
Snippets Groups Projects
Commit 1055ec21 authored by Oliver Rostig's avatar Oliver Rostig
Browse files

robot als objecttype, typo-fix bei event

parent 3df95ab4
No related branches found
No related tags found
No related merge requests found
......@@ -81,7 +81,7 @@ async def main():
paraobjectlist = [openobject, automoveobject]
#hauptobjekt
myobj = await server.nodes.objects.add_object(idx, "Robot")
myobjtype = await server.nodes.base_object_type.add_object_type(idx, "Robot")
#tcp als variable mit properties
vartype = await server.nodes.base_data_type.add_data_type(idx, "Measurement")
......@@ -93,32 +93,46 @@ async def main():
for a in measureobjectlist:
name = a.name + "var"
name = await myobj.add_variable(idx, a.name , a.value , datatype = vartype.nodeid)
name = await myobjtype.add_variable(idx, a.name , a.value , datatype = vartype.nodeid)
await name.set_modelling_rule(True)
#namelist = namelist + name
if a.range is not None:
rangeprop = await name.add_property(idx, "range", ua.Range(a.range[0], a.range[1]))
await rangeprop.set_modelling_rule(True)
if a.unit is not None:
unitporp = await name.add_property(idx, "unit", a.unit)
unitprop = await name.add_property(idx, "unit", a.unit)
await unitprop.set_modelling_rule(True)
description = await name.add_property(idx, "Description", a.description)
await description.set_modelling_rule(True)
#parameters
for a in paraobjectlist:
para = await myobj.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]))
await rangeprop.set_modelling_rule(True)
if a.unit is not None:
unitporp = await para.add_property(idx, "unit", a.unit)
unitprop = await para.add_property(idx, "unit", a.unit)
await unitprop.set_modelling_rule(True)
description = await para.add_property(idx, "Description", a.description)
await description.set_modelling_rule(True)
#gripper als componente
gripper = await myobj.add_object(idx, "Gripper")
await gripper.add_property(idx, "Description", "Gripper of a robot")
gripper = await myobjtype.add_object(idx, "Gripper")
await gripper.set_modelling_rule(True)
gripprop = await gripper.add_property(idx, "Description", "Gripper of a robot")
await gripprop.set_modelling_rule(True)
openvar = await gripper.add_variable(idx, "Open", True, datatype = paratype.nodeid)
await openvar.add_property(idx, "Description", "Flag to specify if something is open.")
await openvar.set_modelling_rule(True)
grip_desc = await openvar.add_property(idx, "Description", "Flag to specify if something is open.")
await grip_desc.set_modelling_rule(True)
myobj = await server.nodes.objects.add_object(idx, "Robot", myobjtype)
#getting node ids of battery and position
robotposname = "2:" + positionobject.name
......@@ -135,12 +149,10 @@ async def main():
batterywarninggen = await server.get_event_generator(batterywarning, myobj)
#batterylow error event
batteryerror = await server.create_custom_event_type(idx, "BatteryLowWarning", ua.ObjectIds.SystemEventType)
batteryerror = await server.create_custom_event_type(idx, "BatteryLowError", ua.ObjectIds.SystemEventType)
batteryerrorgen = await server.get_event_generator(batteryerror, myobj)
#server
async with server:
print("Server läuft!")
......@@ -152,7 +164,7 @@ async def main():
if 20 > batteryload >= 10:
await batterywarning.trigger("Battery level is below 20%. Load shortly.")
if batteryload < 10:
await batterywarning.trigger("Battery level is below 10%. Please load the battery immediately.")
await batteryerror.trigger("Battery level is below 10%. Please load the battery immediately.")
await asyncio.sleep(1)
if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment