readWordReg method
int
readWordReg(
- int address,
- int register, [
- BitOrder order = BitOrder.msbLast,
- RegisterWidth width = RegisterWidth.bits8,
Reads a word from register of the I2C device with the address with the
bit order.
The optional register parameters bit width enables 16-bit register.
The bit order depends on the I2C device.
Implementation
int readWordReg(int address, int register,
[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], 2));
var result = transfer(data);
try {
var ptr = result._messages[1].buf;
var value = (ptr[(order == BitOrder.msbLast ? 0 : 1)] & 0xff) |
(ptr[(order == BitOrder.msbLast ? 1 : 0)] & 0xff) << 8;
return value;
} finally {
result.dispose();
}
}