Exemple #1
0
        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();
 }
Exemple #4
0
        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;
        }
Exemple #5
0
        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;
        }
Exemple #6
0
 public Led(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory)
 {
     (_ledPin, _) = Port.ToPinPair();
 }
Exemple #7
0
 public UltrasonicSensor(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory)
 {
     (_echoPin, _triggerPin) = port.ToPinPair();
 }
Exemple #8
0
 public Buzzer(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory)
 {
     (_buzzPin, _) = Port.ToPinPair();
     AddToDisposables(Controller.OpenPin(_buzzPin, PinMode.Output));
 }
Exemple #9
0
 public UltrasonicSensor(DigitalPort port, IGpioControllerFactory controllerFactory) : base(port, controllerFactory)
 {
     (_echoPin, _triggerPin) = port.ToPinPair();
     _echoReceived           = new ManualResetEvent(false);
     AddToDisposables(_echoReceived);
 }
Exemple #10
0
        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);
        }