connect method

  1. @override
Future<bool> connect()

Connect the socket if not already done or disconnected

Implementation

@override
Future<bool> connect() async {
  if (isConnected) {
    return true;
  }
  ModbusAppLogger.fine("Connecting TCP socket...");
  // New connection
  try {
    _socket = await Socket.connect(serverAddress, serverPort,
        timeout: connectionTimeout);
    // listen to the received data event stream
    _socket!.listen((Uint8List data) {
      _onSocketData(data);
    },
        onError: (error) => _onSocketError(error),
        onDone: () => disconnect(),
        cancelOnError: true);
  } catch (ex) {
    ModbusAppLogger.warning(
        "Connection to $serverAddress:$serverPort failed!", ex);
    _socket = null;
    return false;
  }
  // Is a delay requested?
  if (delayAfterConnect != null) {
    await Future.delayed(delayAfterConnect!);
  }
  ModbusAppLogger.fine("TCP socket connected");
  return true;
}