Total Complexity | 1 |
Total Lines | 38 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import sys |
||
2 | sys.path.insert(0, "..") |
||
3 | import asyncio |
||
4 | |||
5 | from asyncua import ua, Server |
||
6 | from asyncua.common.instantiate_util import instantiate |
||
7 | from asyncua.common.xmlexporter import XmlExporter |
||
8 | |||
9 | |||
10 | async def main(): |
||
11 | # setup our server |
||
12 | server = Server() |
||
13 | await server.init() |
||
14 | |||
15 | server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/") |
||
16 | |||
17 | # setup our own namespace, not really necessary but should as spec |
||
18 | uri = "http://examples.freeopcua.github.io" |
||
19 | idx = await server.register_namespace(uri) |
||
20 | |||
21 | myobj = await server.nodes.objects.add_object(idx, "MyObject") |
||
22 | myvar = await myobj.add_variable(idx, "MyVariable", 6.7) |
||
23 | await myvar.set_writable() # Set MyVariable to be writable by clients |
||
24 | |||
25 | dev = await server.nodes.base_object_type.add_object_type(0, "MyDevice") |
||
26 | await dev.add_variable(0, "sensor1", 1.0) |
||
27 | |||
28 | mydevice = await instantiate(server.nodes.objects, dev, bname="2:Device0001") |
||
29 | |||
30 | node_list = [dev, mydevice[0], myobj, myvar] |
||
31 | |||
32 | exporter = XmlExporter(server) |
||
33 | await exporter.build_etree(node_list, ['http://myua.org/test/']) |
||
34 | await exporter.write_xml('ua-export.xml') |
||
35 | |||
36 | if __name__ == "__main__": |
||
37 | asyncio.run(main()) |
||
38 |