code: void setI2CDelay(int delay) throws IOException {
          byte[] message = FirmataMessageFactory.i2cConfigRequest(delay);
          int longestDelaySoFar = longestI2CDelay.get();
          while (longestDelaySoFar < delay) {
              if (longestI2CDelay.compareAndSet(longestDelaySoFar, delay)) {
                  sendMessage(message);
              }
              longestDelaySoFar = longestI2CDelay.get();
          }
      }
docs: Sets delay between the moment an I2C device's register is written to and
  the moment when the data can be read from that register. The delay is set
  per firmata-device (not per I2C device). So firmata-device uses the
  longest delay.
  
  @param delay longest delay between writing to I2C and reading from it
  @throws IOException when sending of configuration to firmata-device
  failed