/// <summary>
        /// Registering pin by number
        /// </summary>
        /// <param name="number">GPIO number
        /// <para/>For example: GPIO17 (11 pin on PI 3b+ board) in wiringPi is 0.</param>
        /// <returns>Pin object</returns>
        /// <exception cref="GpioPinInitializeException"/>
        public GpioPin RegisterPin(int number)
        {
            var _registeredPin = Pins.FirstOrDefault(x => x.Number == number);

            if (_registeredPin != null)
            {
                return(_registeredPin);
            }

            var pin = new GpioPin(number);

            pin.Initialize(ClassPath);
            Pins.Add(pin);

            return(pin);
        }