code: @Override
  	public double getValue(Pin pin) {
          // if we are not actively monitoring the ADC input values,
          // then interrogate the ADC chip and return the acquired input conversion value
          if(monitor == null) {
              // do not return, only let parent handle whether this pin is OK
              super.getValue(pin);
              try {
                  return getImmediateValue(pin);
              } catch (IOException e) {
                  return INVALID_VALUE;
              }
          }
          else{
              // if we are actively monitoring the ADC input values,
              // the simply return the last cached input value
              return super.getValue(pin);
          }
      }
docs: Get the requested analog input pin's conversion value.
  
  If you have the background monitoring thread enabled, then
  this function will return the last cached value.  If you have the
  background monitoring thread disabled, then this function will
  will perform an immediate data acquisition directly to the ADC chip
  to get the requested pin's input conversion value. (via getImmediateValue())
  
  @param pin to get conversion values for
  @return analog input pin conversion value (10-bit: 0 to 1023)