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

server-xmlexporter   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 25
dl 0
loc 38
rs 10
c 0
b 0
f 0
wmc 1

1 Function

Rating   Name   Duplication   Size   Complexity  
A main() 0 25 1
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