public Display(DisplaySpiConnectionSettings settings, IGpioControllerFactory controllerFactory, ISPiDeviceFactory spiDeviceFactory) { _device = new Sh1106(settings.SpiConnectionSettings, settings.DcPin, settings.RstPin, spiDeviceFactory, controllerFactory); _image = new Bitmap(_width, _height, PixelFormat.Format16bppGrayScale); _disposables.Add(_image); _disposables.Add(_device); }
public Sh1106Display(DisplaySpiConnectionSettings settings, IGpioControllerFactory controllerFactory, ISPiDeviceFactory spiDeviceFactory) : base(Sh1106.Width, Sh1106.Height) { _device = new Sh1106(settings.SpiConnectionSettings, settings.DcPin, settings.RstPin, spiDeviceFactory, controllerFactory); _device.Init(); Clear(); _device.SetContrast(255); RegisterForDisposal(_device); }
protected DigitalPortDeviceBase(DigitalPort port, IGpioControllerFactory controllerFactory) { if (controllerFactory == null) { throw new ArgumentNullException(nameof(controllerFactory)); } DisplayProperties = new List <DisplayPropertyBase>(); Port = port; Controller = controllerFactory.GetOrCreateController(); }
public Button(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory) { var(buttonPin, _) = Port.ToPinPair(); var openPinAsDisposable = Controller.OpenPinAsDisposable(buttonPin, PinMode.Input); var registerCallbackForPinValueChangedEventAsDisposable = Controller.RegisterCallbackForPinValueChangedEventAsDisposable(buttonPin, PinEventTypes.Falling | PinEventTypes.Rising, Callback); AddToDisposables(registerCallbackForPinValueChangedEventAsDisposable); AddToDisposables(openPinAsDisposable); IsPressed = Controller.Read(buttonPin) == PinValue.Low; }
public Button(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory) { var(buttonPin, _) = Port.ToPinPair(); AddToDisposables(Disposable.Create(() => { Controller.UnregisterCallbackForPinValueChangedEvent(buttonPin, Callback); })); AddToDisposables(Controller.OpenPin(buttonPin, PinMode.Input)); Controller.RegisterCallbackForPinValueChangedEvent(buttonPin, PinEventTypes.Falling | PinEventTypes.Rising, Callback); IsPressed = Controller.Read(buttonPin) == PinValue.Low; }
public Led(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory) { (_ledPin, _) = Port.ToPinPair(); }
public UltrasonicSensor(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory) { (_echoPin, _triggerPin) = port.ToPinPair(); }
public Buzzer(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory) { (_buzzPin, _) = Port.ToPinPair(); AddToDisposables(Controller.OpenPin(_buzzPin, PinMode.Output)); }
public UltrasonicSensor(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory) { (_echoPin, _triggerPin) = port.ToPinPair(); _echoReceived = new ManualResetEvent(false); AddToDisposables(_echoReceived); }
public Sh1106(SpiConnectionSettings connectionSettings, int dcPin, int rstPin, ISPiDeviceFactory sPiDeviceFactory, IGpioControllerFactory controllerFactory) { if (connectionSettings == null) { throw new ArgumentNullException(nameof(connectionSettings)); } if (sPiDeviceFactory == null) { throw new ArgumentNullException(nameof(sPiDeviceFactory)); } if (controllerFactory == null) { throw new ArgumentNullException(nameof(controllerFactory)); } var spiDevice = sPiDeviceFactory.GetOrCreateSpiDevice(connectionSettings); var controller = controllerFactory.GetOrCreateController(); _serialInterface = new SpiInterface(spiDevice, controller, dcPin, rstPin); }