Ejemplo n.º 1
0
        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(),
            });
        }
Ejemplo n.º 2
0
 public override Task <WorkingMode> GetWorkingMode(GetWorkingModeRequest request, ServerCallContext context)
 {
     return(this.Invoke(
                (client, request, deadline) => client.GetWorkingModeAsync(request, deadline),
                request.DeviceId,
                request,
                context));
 }
Ejemplo n.º 3
0
 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(),
                () => { }));
 }