Exemple #1
0
        public async Task TestPoll()
        {
            var response = new PowerStatusResponse {
                DeviceResponse = "PS:1111:8"
            };

            _mockSdk.Setup(m => m.SendCommand <PowerStatusResponse>(It.IsAny <PowerStatusCommand>()))
            .Returns(Task.FromResult(response));
            var result = await _sut.Poll();

            Assert.That(result, Is.True);
            Assert.That(_sut.Value, Is.EqualTo(8));
        }
        public void TestValidPowerStatusResponse(string deviceResponse, bool port0, bool port1, bool port2, bool port3, double voltage)
        {
            var sut = new PowerStatusResponse {
                DeviceResponse = deviceResponse
            };

            Assert.That(sut.PowerStatusOnBoot[0], Is.EqualTo(port0));
            Assert.That(sut.PowerStatusOnBoot[1], Is.EqualTo(port1));
            Assert.That(sut.PowerStatusOnBoot[2], Is.EqualTo(port2));
            Assert.That(sut.PowerStatusOnBoot[3], Is.EqualTo(port3));
            Assert.That(sut.VariableVoltage, Is.EqualTo(voltage));
            Assert.That(sut.ToString().Contains(deviceResponse), Is.True);
        }
        /// <summary>
        /// Control the power configuration.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public override Task <PowerStatusResponse> RequestPowerStatus(PowerStatusRequest request,
                                                                      ServerCallContext context)
        {
            var powerStatusResponse = new PowerStatusResponse();

            if (request.Write)
            {
                // change the power configuration (Write mode)
                if (request.PowerCode < 0 || request.PowerCode > 15)
                {
                    powerStatusResponse.Error = ServiceHelper.BuildError("Power code is invalid", Level.Error);
                    return(Task.FromResult <PowerStatusResponse>(powerStatusResponse));
                }

                powerStatusResponse.Error     = InvokeCommand("R", new string[] { request.PowerCode.ToString() });
                powerStatusResponse.PowerCode = request.PowerCode;
                return(Task.FromResult(powerStatusResponse));
            }
            else
            {
                // Read mode
                string outputValue = "";
                powerStatusResponse.Error = InvokeCommandWithResponse("r", null, ref outputValue, 1000);
                if (powerStatusResponse.Error != null)
                {
                    return(Task.FromResult(powerStatusResponse));
                }

                try
                {
                    powerStatusResponse.PowerCode = Int32.Parse(outputValue);
                }
                catch (Exception e)
                {
                    powerStatusResponse.Error = ServiceHelper.BuildError(e, Level.Error);
                    return(Task.FromResult(powerStatusResponse));
                }
            }

            return(Task.FromResult(powerStatusResponse));
        }