Exemplo n.º 1
0
        /// <inheritdoc />
        public DeviceStatus CurrentStatus()
        {
            if (_controller == null)
            {
                return(DeviceStatus.Disconnected("GPIO controller not connected"));
            }

            if (!_controller.IsPinOpen(_pin))
            {
                return(DeviceStatus.Disconnected($"Pin {_pin} not open"));
            }

            var value = _controller.Read(_pin);

            if (value != PinValue.High && value != PinValue.Low)
            {
                return(DeviceStatus.Error($"Unkown value {value} on pin"));
            }
            else if (value == _readPinValue)
            {
                return(DeviceStatus.Closed($"{value} value on pin"));
            }
            else
            {
                return(DeviceStatus.Open($"{value} value on pin"));
            }
        }