docs: @Override
  	public void setCurrentValue(final int value) throws IOException {
  
  		// check boundaries
  		final int newValue = getValueAccordingBoundaries(value);
  
  		// set wipers according nonVolatileMode
  		doWiperAction(new WiperAction() {
  
  			@Override
  			public void run(final boolean nonVolatile) throws IOException {
  
  				controller.setValue(DeviceControllerChannel.valueOf(channel), newValue,
  						nonVolatile);
  
  			}
  
  		});
  
  		// set currentValue only if volatile-wiper is affected
  		if (nonVolatileMode == MicrochipPotentiometerNonVolatileMode.NONVOLATILE_ONLY) {
  			return;
  		}
  
  		// save current value
  		currentValue = newValue;
  
  	}