async def read(self, parameters):
     self.logger.debug("read")
     request = ua.ReadRequest()
     request.Parameters = parameters
     data = await self.protocol.send_request(request)
     response = struct_from_binary(ua.ReadResponse, data)
     self.logger.debug(response)
     response.ResponseHeader.ServiceResult.check()
     return response.Results
Example #2
0
 async def read_attributes(self, nodeids, attr):
     self.logger.info("read_attributes of several nodes")
     request = ua.ReadRequest()
     for nodeid in nodeids:
         rv = ua.ReadValueId()
         rv.NodeId = nodeid
         rv.AttributeId = attr
         request.Parameters.NodesToRead.append(rv)
     data = await self.protocol.send_request(request)
     response = struct_from_binary(ua.ReadResponse, data)
     response.ResponseHeader.ServiceResult.check()
     return response.Results
Example #3
0
 async def read(self, parameters):
     self.logger.debug("read")
     request = ua.ReadRequest()
     request.Parameters = parameters
     data = await self.protocol.send_request(request)
     response = struct_from_binary(ua.ReadResponse, data)
     self.logger.debug(response)
     response.ResponseHeader.ServiceResult.check()
     # cast to Enum attributes that need to
     for idx, rv in enumerate(parameters.NodesToRead):
         if rv.AttributeId == ua.AttributeIds.NodeClass:
             dv = response.Results[idx]
             if dv.StatusCode.is_good():
                 dv.Value.Value = ua.NodeClass(dv.Value.Value)
         elif rv.AttributeId == ua.AttributeIds.ValueRank:
             dv = response.Results[idx]
             if dv.StatusCode.is_good() and dv.Value.Value in (-3, -2, -1, 0, 1, 2, 3, 4):
                 dv.Value.Value = ua.ValueRank(dv.Value.Value)
     return response.Results
Example #4
0
async def test_service_fault(server, admin_client):
    request = ua.ReadRequest()
    request.TypeId = ua.FourByteNodeId(999)  # bad type!
    with pytest.raises(ua.UaStatusCodeError):
        await admin_client.uaclient.protocol.send_request(request)