scanner property

ModuleInterface scanner
latefinal

Implementation

late final ModuleInterface scanner = ModuleCustom(
  ble: ModuleBle(
    uuid: UUID(),
    setDevice: (device) {
      final sorted = priority.indexed.toList()..sort((a, b) => b.$2 - a.$2);
      final list = [
            () {
          if (!enable[0]) return false;
          if (!wearEcg12.scanFilter(device)) return false;
          wearEcg12.device = device;
          return true;
        },
            () {
          if (!enable[1]) return false;
          if (!cardioClick.scanFilter(device)) return false;
          cardioClick.device = device;
          return true;
        },
            () {
          if (!enable[2]) return false;
          if (!wearCardioT.scanFilter(device)) return false;
          wearCardioT.device = device;
          return true;
        },
            () {
          if (!enable[3]) return false;
          if (custom?.scanFilter(device) != true) return false;
          custom?.device = device;
          return true;
        },
      ];
      sorted.firstWhere((e) => list[e.$1].call());
    },
    scanFilter: (device) {
      final wearEcg = Builtin.scanFilterWearEcg(device);
      final cardioClick = Builtin.scanFilterCardioClick(device);
      final wearCardioT = Builtin.scanFilterWearCardioT(device);
      final customScan = custom?.scanFilter(device) ?? false;

      if (wearEcg && enable[0]) return true;
      if (cardioClick && enable[1]) return true;
      if (wearCardioT && enable[2]) return true;
      if (customScan && enable[3]) return true;
      return false;
    },
  ),
);