public virtual void SetPin(GpioConfiguration.Target target, bool isOn) { if (target != null && _pins != null) { _log.Info(string.Format("Setting pin {0} [{1}] to {2}", target.PinName, target.Pin, target.IsReverse)); _driver.Write(_pins[target.PinName], target.IsReverse ? !isOn : isOn); return; } _log.Warn("Could not find that pin sorry "); }
private void SetupPins(GpioConfiguration gpioConfiguration) { if (!PlatformHelper.IsLinux) return; _log.Info("Default driver"); _driver = GpioConnectionSettings.DefaultDriver; _pins = new Dictionary<PinName, ProcessorPin>(); foreach (var target in gpioConfiguration.Targets) { var processorPin = GetPin(target.Pin); _pins.Add(target.PinName, processorPin); _log.Info(string.Format("Add pin output {0}", target.PinName)); _driver.Allocate(processorPin, PinDirection.Output); SetPin(target, false); } foreach (var target in gpioConfiguration.Buttons) { var processorPin = GetPin(target.Pin); _pins.Add(PinName.MainButton, processorPin); _log.Info(string.Format("Add pin Input {0}", PinName.MainButton)); _driver.Allocate(processorPin, PinDirection.Input); } }
public PinManager(GpioConfiguration configuration) { _configuration = configuration; SetupPins(_configuration); }