readBytesReg method
List<int>
readBytesReg(
- int address,
- int register,
- int len, [
- BitOrder order = BitOrder.msbLast,
- RegisterWidth width = RegisterWidth.bits8,
Reads len bytes from register of the I2C device with the address.
The optional register parameters bit order/width enables
16-bit register.
Some I2C devices can directly be read without explicit register.
The bit order depends on the I2C device.
Implementation
List<int> readBytesReg(int address, int register, int len,
[BitOrder order = BitOrder.msbLast,
RegisterWidth width = RegisterWidth.bits8]) {
var data = <I2Cmsg>[];
data.add(I2Cmsg.buffer(
address, [], [..._adjustRegister(register, order, width)]));
data.add(I2Cmsg(address, [I2CmsgFlags.i2c_m_rd], len));
var result = transfer(data);
var msg2 = result._messages[1];
try {
var read = msg2.len;
var ptr = msg2.buf;
var list = <int>[];
for (var i = 0; i < read; ++i) {
list.add(ptr[i]);
}
return list;
} finally {
result.dispose();
}
}