2 sys.path.insert(0,
"..")
6 from IPython
import embed
13 shell = code.InteractiveConsole(vars)
17 from opcua
import ua, uamethod, Server
23 if variant.Value % 2 == 0:
25 return [ua.Variant(ret, ua.VariantType.Boolean)]
33 print(
"multiply method call with parameters: ", x, y)
37 if __name__ ==
"__main__":
39 logging.basicConfig(level=logging.WARN)
54 server.set_endpoint(
"opc.tcp://0.0.0.0:4840/freeopcua/server/")
55 server.set_server_name(
"FreeOpcUa Example Server")
58 uri =
"http://examples.freeopcua.github.io" 59 idx = server.register_namespace(uri)
62 objects = server.get_objects_node()
65 myfolder = objects.add_folder(idx,
"myEmptyFolder")
66 myobj = objects.add_object(idx,
"MyObject")
67 myvar = myobj.add_variable(idx,
"MyVariable", 6.7)
69 myarrayvar = myobj.add_variable(idx,
"myarrayvar", [6.7, 7.9])
70 myarrayvar = myobj.add_variable(idx,
"myStronglytTypedVariable", ua.Variant([], ua.VariantType.UInt32))
71 myprop = myobj.add_property(idx,
"myproperty",
"I am a property")
72 mymethod = myobj.add_method(idx,
"mymethod", func, [ua.VariantType.Int64], [ua.VariantType.Boolean])
74 inargx = ua.Argument()
76 inargx.DataType = ua.NodeId(ua.ObjectIds.Int64)
78 inargx.ArrayDimensions = []
79 inargx.Description = ua.LocalizedText(
"First number x")
80 inargy = ua.Argument()
82 inargy.DataType = ua.NodeId(ua.ObjectIds.Int64)
84 inargy.ArrayDimensions = []
85 inargy.Description = ua.LocalizedText(
"Second number y")
86 outarg = ua.Argument()
87 outarg.Name =
"Result" 88 outarg.DataType = ua.NodeId(ua.ObjectIds.Int64)
90 outarg.ArrayDimensions = []
91 outarg.Description = ua.LocalizedText(
"Multiplication result")
93 multiply_node = myobj.add_method(idx,
"multiply", multiply, [inargx, inargy], [outarg])
97 print(
"Available loggers are: ", logging.Logger.manager.loggerDict.keys())
def multiply(parent, x, y)
def func(parent, variant)