Exemplo n.º 1
0
 /*
  * Register a GPIO button that, when clicked, will generate the {@link KeyEvent#KEYCODE_ENTER}
  * key, to be handled by {@link #onKeyUp(int, KeyEvent)} just like any regular keyboard
  * event.
  *
  * If there's no button connected to the board, the doRecognize can still be triggered by
  * sending key events using a USB keyboard or `adb shell input keyevent 66`.
  */
 private void InitButton()
 {
     try
     {
         mButtonDriver = RainbowHat.CreateButtonCInputDriver((int)Keycode.Enter);
         mButtonDriver.Register();
     }
     catch (IOException e)
     {
         Log.Warn(TAG, "Cannot find button. Ignoring push button. Use a keyboard instead.", e);
     }
 }
        private void SetupDemo3()
        {
            _ledBrightnessView = FindViewById <SeekBar>(Resource.Id.ledBrightness);

            try
            {
                _display = RainbowHat.OpenDisplay();
                _display.SetEnabled(true);
                _display.Display("HEY");
            }
            catch (IOException ex)
            {
                Log.Error(TAG, "Error during onCreate!", ex);
            }

            _ledBrightnessView.SetOnSeekBarChangeListener(this);
        }
        private void SetupDemo2()
        {
            try
            {
                var pinName = "GPIO6_IO14"; //A button for i.MX7D, BCM21 for Rpi3
                _buttonA = _manager.OpenGpio(pinName);
                // Configure as an input, trigger events on every change.
                _buttonA.SetDirection(Gpio.DirectionIn);
                // Value is true when the pin is HIGH
                _buttonA.SetActiveType(Gpio.ActiveHigh);
                _buttonA.SetEdgeTriggerType(Gpio.EdgeFalling);
                _buttonA.RegisterGpioCallback(new Handler(), this);


                var buttonB        = RainbowHat.OpenButtonB();
                var ledToggleViewB = FindViewById <ToggleButton>(Resource.Id.ledToggleB);
                buttonB.ButtonEvent += (sender, e) => {
                    ledToggleViewB.Checked = !ledToggleViewB.Checked;
                };
            } catch (IOException ex) {
                Log.Error(TAG, "Error during onCreate!", ex);
            }
        }
Exemplo n.º 4
0
        public void Initialize()
        {
            if (_useHubs)
            {
                InitializeHubs();
            }


            SensorManager          = (SensorManager)GetSystemService(SensorService);
            _dynamicSensorCallback = new WeatherDynamicSensorCallback(this);


            PubSubHandler.GetInstance().Subscribe <TemperatureMessage>(OnTemperatureMessage);
            PubSubHandler.GetInstance().Subscribe <PressureMessage>(OnPressureMessage);
            PubSubHandler.GetInstance().Subscribe <HumidityMessage>(OnHumidityMessage);

            try
            {
                _ledRainbowStrip            = new Apa102(BoardDefaults.GetSpiBus(), Apa102.Mode.Bgr);
                _ledRainbowStrip.Brightness = LedstripBrightness;
                for (var i = 0; i < _rainbow.Length; i++)
                {
                    float[] hsv = { i * 360f / _rainbow.Length, 1.0f, 1.0f };

                    _rainbow[i] = Color.HSVToColor(255, hsv);
                }
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e);
                _ledRainbowStrip = null;
            }

            try
            {
                var pioService = PeripheralManager.Instance;
                _led = pioService.OpenGpio(BoardDefaults.GetLedGpioPin());
                _led.SetEdgeTriggerType(Gpio.EdgeNone);
                _led.SetDirection(Gpio.DirectionOutInitiallyLow);
                _led.SetActiveType(Gpio.ActiveHigh);
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e);
            }

            try
            {
                _buttonInputDriver = new ButtonInputDriver(BoardDefaults.GetButtonGpioPin(),
                                                           Button.LogicState.PressedWhenLow,
                                                           (int)KeyEvent.KeyCodeFromString("KEYCODE_A"));
                _buttonInputDriver.Register();
                Log.Debug(Tag, "Initialized GPIO Button that generates a keypress with KEYCODE_A");
            }
            catch (Exception e)
            {
                throw new Exception("Error initializing GPIO button", e);
            }
            try
            {
                _bmx280SensorDriver = RainbowHat.CreateSensorDriver();
                // Register the drivers with the framework

                SensorManager.RegisterDynamicSensorCallback(_dynamicSensorCallback);

                _bmx280SensorDriver.RegisterTemperatureSensor();
                _bmx280SensorDriver.RegisterPressureSensor();
                _bmx280SensorDriver.RegisterHumiditySensor();
                Log.Debug(Tag, "Initialized I2C BMP280");
            }
            catch (IOException e)
            {
                throw new RuntimeException("Error initializing BMP280", e);
            }

            try
            {
                _display = new AlphanumericDisplay(BoardDefaults.GetI2cBus());
                _display.SetEnabled(true);
                _display.Clear();
                Log.Debug(Tag, "Initialized I2C Display");
            }
            catch (Exception e)
            {
                Log.Error(Tag, "Error initializing display", e);
                Log.Debug(Tag, "Display disabled");
                _display = null;
            }
        }