sendPdu method
Send PDU request to the remote server
Implementation
@override
Future<Uint8List> sendPdu(int slaveId, Uint8List pduRequest) async {
if (pduRequest.length < pduMinSize || pduRequest.length > pduMaxSize) {
throw ArgumentError(
'modbus: pdu size \'${pduRequest.length}\' must be between \'$pduMinSize\' and \'$pduMaxSize\'');
}
_transactionId = (_transactionId + 1) & 0xFFFF;
final request = ProtocolDataUnit(pduRequest[0], pduRequest.sublist(1));
final (head, adu) = _encodeTCPFrame(_transactionId, slaveId, request);
final aduResponse = await sendRawFrame(adu);
final (rspHead, pdu) = _decodeTCPFrame(aduResponse);
final response = ProtocolDataUnit(pdu[0], pdu.sublist(1));
_verifyTCPFrame(head, rspHead, request, response);
return pdu;
}