sendPdu method

  1. @override
Future<Uint8List> sendPdu(
  1. int slaveId,
  2. Uint8List pduRequest
)
override

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\'');
  }

  final request = ProtocolDataUnit(pduRequest[0], pduRequest.sublist(1));
  final aduRequest = _encodeRTUFrame(slaveId, request);
  final aduResponse = await sendRawFrame(aduRequest);
  final (rspSlaveId, pdu) = _decodeRTUFrame(aduResponse);
  final response = ProtocolDataUnit(pdu[0], pdu.sublist(1));

  _verify(slaveId, rspSlaveId, request, response);
  return pdu;
}