/* * 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); } }
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; } }