Example #1
0
  @Override
  public GpioPin provisionPin(GpioProvider provider, Pin pin, String name, PinMode mode) {
    // if an existing pin has been previously created, then throw an error
    for (GpioPin p : pins) {
      if (p.getProvider().equals(provider) && p.getPin().equals(pin)) {
        throw new GpioPinExistsException(pin);
      }
    }

    // create new GPIO pin instance
    GpioPin gpioPin = new GpioPinImpl(this, provider, pin);

    // set the gpio pin name
    if (name != null) {
      gpioPin.setName(name);
    }

    // export this pin
    gpioPin.export(mode);

    // add this new pin instance to the managed collection
    pins.add(gpioPin);

    // return new new pin instance
    return gpioPin;
  }