analogRead method

int analogRead(
  1. int pin
)
inherited

Reads an analog value from a given pin.

Implementation

int analogRead(int pin) {
  autoWait();
  var error = I2Cexception.empty();
  for (var i = 0; i < retry; ++i) {
    try {
      writeI2Cblock(HatCmd(analogReadCmd).getCmdSeqExt(pin));
      sleep(Duration(milliseconds: delay));
      var data = i2c.readBytesReg(hatArduinoI2Caddress, hatRegister, 4);
      var value = (data[1] & 0xff) * 256 + (data[2]);
      if (value == 65535) {
        value = -1;
      }
      _updateLastAction();
      return value;
    } on I2Cexception catch (e) {
      error = e;
      sleep(Duration(milliseconds: delay));
    }
  }
  throw error;
}