public async Task <RunningParameter> GetRunningParameterAsync( GetRunningParameterRequest request, DateTime?deadline) { if (request is null) { throw new ArgumentNullException(nameof(request)); } PlcFrame response = await this.InvokeAsync( PlcFrame.Create(PlcMessageType.GetRunningParameterRequest, ByteString.Empty), deadline) .ConfigureAwait(false); if (response.FrameHeader.MessageType != PlcMessageType.GetRunningParameterResponse) { throw new InvalidDataException( "Response message type mismatch: " + response.FrameHeader.MessageType); } using var reader = new BinaryReader(new MemoryStream(response.FrameBody.ToByteArray())); return(new RunningParameter { SummerHeaterCelsiusDegree = reader.ReadSingle(), WinterHeaterCelsiusDegree = reader.ReadSingle(), ColdPowerKilowatt = reader.ReadSingle(), WarmPowerKilowatt = reader.ReadSingle(), WaterPumpFlowRateCubicMeterPerHour = reader.ReadSingle(), WaterPumpFrequencyHertz = reader.ReadSingle(), }); }
public override AsyncUnaryCall <RunningParameter> GetRunningParameterAsync(GetRunningParameterRequest request, Metadata headers = null, DateTime?deadline = null, CancellationToken cancellationToken = default) { return(TestCalls.AsyncUnaryCall( Task.FromResult(RunningParameters[request.DeviceId]), Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { })); }
public override Task <RunningParameter> GetRunningParameter( GetRunningParameterRequest request, ServerCallContext context) { return(this.Invoke( (client, request, deadline) => client.GetRunningParameterAsync(request, deadline), request.DeviceId, request, context)); }