/// <summary> /// Initializes a new instance of the <see cref="GpioConnection"/> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="pins">The pins.</param> public GpioConnection(GpioConnectionSettings settings, IEnumerable <PinConfiguration> pins) { this.settings = settings ?? new GpioConnectionSettings(); Pins = new ConnectedPins(this); var pinList = pins.ToList(); pinConfigurations = pinList.ToDictionary(p => p.Pin); namedPins = pinList.Where(p => !string.IsNullOrEmpty(p.Name)).ToDictionary(p => p.Name); timer = Timer.Create(); timer.Interval = this.settings.PollInterval; timer.Action = CheckInputPins; if (this.settings.Opened) { Open(); } }
/// <summary> /// Initializes a new instance of the <see cref="GpioConnection" /> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="pins">The pins.</param> /// <param name="gpioConnectionDriverFactory">The gpio connection driver factory.</param> /// <param name="threadFactory">The thread factory.</param> public GpioConnection(GpioConnectionSettings settings, IEnumerable <PinConfiguration> pins, IGpioConnectionDriverFactory gpioConnectionDriverFactory = null, IThreadFactory threadFactory = null) { this.settings = settings ?? new GpioConnectionSettings(); this.gpioConnectionDriverFactory = GpioConnectionDriverFactory.EnsureGpioConnectionDriverFactory(gpioConnectionDriverFactory); this.gpioConnectionDriver = this.gpioConnectionDriverFactory.Get(); this.thread = ThreadFactory.EnsureThreadFactory(threadFactory).Create(); this.Pins = new ConnectedPins(this); var pinList = pins.ToList(); this.pinConfigurations = pinList.ToDictionary(p => p.Pin); this.namedPins = pinList.Where(p => !string.IsNullOrEmpty(p.Name)).ToDictionary(p => p.Name); this.timer = Core.Timers.Timer.Create(); this.timer.Tick += this.CheckInputPins; if (this.settings.Opened) { this.Open(); } }
/// <summary> /// Initializes a new instance of the <see cref="GpioConnection"/> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="pins">The pins.</param> public GpioConnection(GpioConnectionSettings settings, params PinConfiguration[] pins) : this(settings, (IEnumerable <PinConfiguration>)pins) { }
/// <summary> /// Initializes a new instance of the <see cref="GpioConnection" /> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="gpioConnectionDriverFactory">The gpio connection driver factory.</param> /// <param name="pins">The pins.</param> public GpioConnection(GpioConnectionSettings settings, IGpioConnectionDriverFactory gpioConnectionDriverFactory, params PinConfiguration[] pins) : this(settings, pins, gpioConnectionDriverFactory) { }
/// <summary> /// Initializes a new instance of the <see cref="GpioConnection" /> class. /// </summary> /// <param name="settings">The settings.</param> /// <param name="pins">The pins.</param> public GpioConnection(GpioConnectionSettings settings, params PinConfiguration[] pins) : this(settings, pins, null) { }