/// <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")); } }