getMultipleWriteRequest method
ModbusWriteRequest
getMultipleWriteRequest(
- Uint8List bytes, {
- int? unitId,
- Duration? responseTimeout,
- ModbusEndianness? endianness,
Gets a write request from multiple register elements.
Implementation
ModbusWriteRequest getMultipleWriteRequest(Uint8List bytes,
{int? unitId, Duration? responseTimeout, ModbusEndianness? endianness}) {
if (type.writeMultipleFunction == null) {
throw ModbusException(
context: "ModbusBitElement",
msg: "$type element does not support multiple write request!");
}
// Build the request object
var pdu = Uint8List(6 + bytes.length);
pdu.setAll(
6, endianness == null ? bytes : endianness.getEndianBytes(bytes));
ByteData.view(pdu.buffer)
..setUint8(0, type.writeMultipleFunction!.code)
..setUint16(1, address)
..setUint16(3, bytes.length ~/ 2) // value register count
..setUint8(5, bytes.length); // value byte count
return ModbusWriteRequest(this, pdu, type.writeMultipleFunction!,
unitId: unitId,
responseTimeout: responseTimeout,
endianness: endianness ?? this.endianness);
}