Dodaj Aidlab Apple SDK, połącz się z urządzeniem i odbieraj próbki EKG w aplikacji na iPhone. Poradnik zawiera przykład w Swift.
W tym poradniku odbierzesz na iPhonie próbki EKG z Aidlaba. W Aidlab Apple SDK służy do tego metoda DeviceDelegate.didReceiveECG(_:timestamp:value:). Wywołania zaczną docierać, gdy połączysz się z urządzeniem i rozpoczniesz zbieranie sygnału .ecg.
Poradnik zakłada znajomość Xcode i Swift Package Manager.
Instalacja SDK
Dodaj do aplikacji pakiet Swift i wybierz wersję 2.7.0:
https://github.com/Aidlab/aidlab-apple-sdk
Następnie dodaj do pliku Info.plist opis celu korzystania z Bluetooth:
<key>NSBluetoothAlwaysUsageDescription</key>
<string>This app connects to Aidlab over Bluetooth.</string>
Wyszukiwanie i łączenie z urządzeniem
Przechowuj instancję AidlabManager w kontrolerze lub osobnej klasie. Metoda AidlabManagerDelegate.didDiscover(_:) przekaże znalezione urządzenia. Poniższy fragment pokazuje połączenie i obsługę EKG:
import Aidlab
import UIKit
final class ECGViewController: UIViewController, AidlabManagerDelegate, DeviceDelegate {
private lazy var aidlabManager = AidlabManager(delegate: self)
private var connectedDevice: Device?
override func viewDidLoad() {
super.viewDidLoad()
aidlabManager.scan(scanMode: .aggressive)
}
nonisolated func didDiscover(_ device: Device) {
Task { @MainActor in
guard connectedDevice == nil else { return }
aidlabManager.stopScan()
connectedDevice = device
do {
try await device.connect(delegate: self)
} catch {
connectedDevice = nil
print("Connection failed: \(error)")
}
}
}
nonisolated func didConnect(_ device: Device) {
Task { @MainActor in
do {
_ = try await device.collect(dataTypes: [.ecg], dataTypesToStore: [])
} catch {
print("Collection failed: \(error)")
}
}
}
nonisolated func didReceiveECG(_ device: Device, timestamp: UInt64, value: Float) {
print("ECG @ \(timestamp): \(value)")
}
nonisolated func didDisconnect(_ device: Device, reason: DisconnectReason) {
Task { @MainActor in
connectedDevice = nil
}
print("Disconnected: \(reason)")
}
nonisolated func didReceiveError(_ device: Device, error: AidlabError) {
print("Aidlab error: \(error)")
}
}
SDK udostępnia domyślne implementacje opcjonalnych callbacków. Wystarczy zaimplementować połączenie, rozłączenie, obsługę błędów i sygnały, których potrzebujesz.
Przed pomiarem załóż Aidlaba na klatkę piersiową. Callback didReceiveEvent(_:event:) ze zdarzeniem WearStateEvent pozwala zareagować, gdy urządzenie jest luźne lub odłączone od ciała — na przykład wyświetlić prośbę o poprawienie pasa.
Odbierane wartości to próbki EKG wyrażone w woltach. Informacje o częstotliwości próbkowania i szczegółach pomiaru znajdziesz w artykule Zakres i dokładność pomiarów.








