/// <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));
        }
Exemple #2
0
        /// <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));
        }
Exemple #3
0
        /// <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));
        }
Exemple #4
0
        /// <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));
        }