/// <summary> /// Reads the current value of a pin. /// </summary> /// <param name="pinNumber">The pin number in the controller's numbering scheme.</param> /// <returns>The value of the pin.</returns> public PinValue Read(int pinNumber) { int logicalPinNumber = GetLogicalPinNumber(pinNumber); if (!_openPins.Contains(logicalPinNumber)) { throw new InvalidOperationException("Can not read from a pin that is not open."); } return(_driver.Read(logicalPinNumber)); }
/// <summary> /// Reads the current value of a pin. /// </summary> /// <param name="pinNumber">The pin number in the controller's numbering scheme.</param> /// <returns>The value of the pin.</returns> public virtual PinValue Read(int pinNumber) { if (!IsPinOpen(pinNumber)) { throw new InvalidOperationException($"Can not read from pin {pinNumber} because it is not open."); } int logicalPinNumber = GetLogicalPinNumber(pinNumber); return(_driver.Read(logicalPinNumber)); }
/// <summary> /// Reads the current value of a pin. /// </summary> /// <param name="pinNumber">The pin number in the controller's numbering scheme.</param> /// <returns>The value of the pin.</returns> public PinValue Read(int pinNumber) { int logicalPinNumber = GetLogicalPinNumber(pinNumber); if (!_openPins.Contains(logicalPinNumber)) { throw new InvalidOperationException($"Can not write to pin {logicalPinNumber} because it is not open."); } return(_driver.Read(logicalPinNumber)); }
/// <summary> /// Reads the current value of a pin /// </summary> /// <param name="pinNumber">The pin number in the controller's numbering scheme.</param> /// <returns>The Pin value of the pin.</returns> public PinValue Read(int pinNumber) { int logicalPinNumber = ConvertToLogicalPinNumber(pinNumber); if (!_openPins.Contains(logicalPinNumber)) { throw new InvalidOperationException("Can not read from a pin that is not yet opened."); } if (_driver.GetPinMode(pinNumber) == PinMode.Output) { throw new InvalidOperationException("Can not read from a pin that is set to Output mode."); } return(_driver.Read(logicalPinNumber)); }