@Override
  public void shutdown() {

    // prevent reentrant invocation
    if (isShutdown()) return;

    // perform shutdown login in base
    super.shutdown();

    // if a monitor is running, then shut it down now
    if (monitor != null) {
      // shutdown monitoring thread
      monitor.shutdown();
      monitor = null;
    }
  }
 @Override
 public void unexport(Pin pin) {
   super.unexport(pin);
   setMode(pin, PinMode.DIGITAL_OUTPUT);
 }
 @Override
 public void export(Pin pin, PinMode mode) {
   // make sure to set the pin mode
   super.export(pin, mode);
   setMode(pin, mode);
 }