Passed
Pull Request — master (#184)
by Olivier
02:17
created

server-xmlexporter.main()   A

Complexity

Conditions 1

Size

Total Lines 25
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 16
nop 0
dl 0
loc 25
rs 9.6
c 0
b 0
f 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