Esempio n. 1
0
        public async Task <Switch> GetSwitchAsync(GetSwitchRequest request, DateTime?deadline)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            PlcFrame response = await this.InvokeAsync(
                PlcFrame.Create(PlcMessageType.GetSwitchRequest, ByteString.Empty),
                deadline)
                                .ConfigureAwait(false);

            if (response.FrameHeader.MessageType != PlcMessageType.GetSwitchResponse)
            {
                throw new InvalidDataException(
                          "Response message type mismatch: " + response.FrameHeader.MessageType);
            }

            using var reader = new BinaryReader(new MemoryStream(response.FrameBody.ToByteArray()));
            return(new Switch
            {
                DevicePowerOn = reader.ReadByte() != 0,
                ExhausterPowerOn = reader.ReadByte() != 0,
                HeaterAutoOn = reader.ReadByte() != 0,
                HeaterPowerOn = reader.ReadByte() != 0,
                HeaterFanOn = reader.ReadByte() != 0,
                HeaterCompressorOn = reader.ReadByte() != 0,
                HeaterFourWayReversingOn = reader.ReadByte() != 0,
            });
        }
Esempio n. 2
0
 public override Task <Switch> GetSwitch(GetSwitchRequest request, ServerCallContext context)
 {
     return(this.Invoke(
                (client, request, deadline) => client.GetSwitchAsync(request, deadline),
                request.DeviceId,
                request,
                context));
 }
Esempio n. 3
0
        public override AsyncUnaryCall <Switch> GetSwitchAsync(GetSwitchRequest request, Metadata headers = null, DateTime?deadline = null, CancellationToken cancellationToken = default)
        {
            Switch switchInfo = Switches[request.DeviceId];

            return(TestCalls.AsyncUnaryCall(
                       Task.FromResult(switchInfo.Clone()),
                       Task.FromResult(new Metadata()),
                       () => Status.DefaultSuccess,
                       () => new Metadata(),
                       () => { }));
        }