public async Task <WorkingMode> GetWorkingModeAsync(GetWorkingModeRequest request, DateTime?deadline) { if (request is null) { throw new ArgumentNullException(nameof(request)); } PlcFrame response = await this.InvokeAsync( PlcFrame.Create(PlcMessageType.GetWorkingModeRequest, ByteString.Empty), deadline) .ConfigureAwait(false); if (response.FrameHeader.MessageType != PlcMessageType.GetWorkingModeResponse) { throw new InvalidDataException( "Response message type mismatch: " + response.FrameHeader.MessageType); } using var reader = new BinaryReader(new MemoryStream(response.FrameBody.ToByteArray())); return(new WorkingMode { DeviceWorkingMode = (DeviceWorkingMode)reader.ReadByte(), DeviceFlowRateControlMode = (DeviceFlowRateControlMode)reader.ReadByte(), WaterPumpWorkingMode = (WaterPumpWorkingMode)reader.ReadByte(), }); }
public override Task <WorkingMode> GetWorkingMode(GetWorkingModeRequest request, ServerCallContext context) { return(this.Invoke( (client, request, deadline) => client.GetWorkingModeAsync(request, deadline), request.DeviceId, request, context)); }
public override AsyncUnaryCall <WorkingMode> GetWorkingModeAsync(GetWorkingModeRequest request, Metadata headers = null, DateTime?deadline = null, CancellationToken cancellationToken = default) { return(TestCalls.AsyncUnaryCall( Task.FromResult(WorkingModes[request.DeviceId]), Task.FromResult(new Metadata()), () => Status.DefaultSuccess, () => new Metadata(), () => { })); }