connect method Null safety

  1. @override
Future<bool> connect()
override

Initiates the connection to the hub.

Implementation

@override
Future<bool> connect() async {
  print("Connecting....");
  await this.device.connect();
  List<BluetoothService> services = await device.discoverServices();
  services.forEach((service) {
    if (service.uuid == Guid("00001623-1212-efde-1623-785feabcd123")) {
      _service = service;
    }
  });
  if (_service == null) {
    await disconnect();
    return false;
  }

  _service!.characteristics.forEach((characteristic) {
    if (characteristic.uuid == Guid("00001624 -1212-EFDE-1623-785FEABCD123")) {
      print("Found characteristic");
      _characteristic = characteristic;
    }
  });

  if (_characteristic == null) {
    await disconnect();
    return false;
  }

  await _characteristic!.setNotifyValue(true);
  _subscription = _characteristic!.value.listen((List<int> data) {
    _process(data);
  });

  return true;
}