MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / write

Method write

opcua/server/address_space.py:53–67  ·  view source on GitHub ↗
(self, params, user=UserManager.User.Admin)

Source from the content-addressed store, hash-verified

51 return res
52
53 def write(self, params, user=UserManager.User.Admin):
54 self.logger.debug("write %s as user %s", params, user)
55 res = []
56 for writevalue in params.NodesToWrite:
57 if user != UserManager.User.Admin:
58 if writevalue.AttributeId != ua.AttributeIds.Value:
59 res.append(ua.StatusCode(ua.StatusCodes.BadUserAccessDenied))
60 continue
61 al = self._aspace.get_attribute_value(writevalue.NodeId, ua.AttributeIds.AccessLevel)
62 ual = self._aspace.get_attribute_value(writevalue.NodeId, ua.AttributeIds.UserAccessLevel)
63 if not ua.ua_binary.test_bit(al.Value.Value, ua.AccessLevel.CurrentWrite) or not ua.ua_binary.test_bit(ual.Value.Value, ua.AccessLevel.CurrentWrite):
64 res.append(ua.StatusCode(ua.StatusCodes.BadUserAccessDenied))
65 continue
66 res.append(self._aspace.set_attribute_value(writevalue.NodeId, writevalue.AttributeId, writevalue.Value))
67 return res
68
69
70class ViewService(object):

Callers 3

send_responseMethod · 0.45
processMethod · 0.45
_process_messageMethod · 0.45

Calls 2

get_attribute_valueMethod · 0.80
set_attribute_valueMethod · 0.45

Tested by

no test coverage detected