@@ 91-106 (lines=16) @@ | ||
88 | ) |
|
89 | ||
90 | ||
91 | async def create_variable(parent, nodeid, bname, val, varianttype=None, datatype=None): |
|
92 | """ |
|
93 | create a child node variable |
|
94 | args are nodeid, browsename, value, [variant type], [data type] |
|
95 | or idx, name, value, [variant type], [data type] |
|
96 | """ |
|
97 | nodeid, qname = _parse_nodeid_qname(nodeid, bname) |
|
98 | var = ua.Variant(val, varianttype) |
|
99 | if datatype and isinstance(datatype, int): |
|
100 | datatype = ua.NodeId(datatype, 0) |
|
101 | if datatype and not isinstance(datatype, ua.NodeId): |
|
102 | raise RuntimeError("datatype argument must be a nodeid or an int refering to a nodeid") |
|
103 | ||
104 | return make_node( |
|
105 | parent.server, |
|
106 | await _create_variable(parent.server, parent.nodeid, nodeid, qname, var, datatype=datatype, isproperty=False) |
|
107 | ) |
|
108 | ||
109 | ||
@@ 73-87 (lines=15) @@ | ||
70 | ) |
|
71 | ||
72 | ||
73 | async def create_property(parent, nodeid, bname, val, varianttype=None, datatype=None): |
|
74 | """ |
|
75 | create a child node property |
|
76 | args are nodeid, browsename, value, [variant type] |
|
77 | or idx, name, value, [variant type] |
|
78 | """ |
|
79 | nodeid, qname = _parse_nodeid_qname(nodeid, bname) |
|
80 | var = ua.Variant(val, varianttype) |
|
81 | if datatype and isinstance(datatype, int): |
|
82 | datatype = ua.NodeId(datatype, 0) |
|
83 | if datatype and not isinstance(datatype, ua.NodeId): |
|
84 | raise RuntimeError("datatype argument must be a nodeid or an int refering to a nodeid") |
|
85 | return make_node( |
|
86 | parent.server, |
|
87 | await _create_variable(parent.server, parent.nodeid, nodeid, qname, var, datatype=datatype, isproperty=True) |
|
88 | ) |
|
89 | ||
90 |