Zamień iPhone'a w kardiomonitor dzięki Aidlab iOS SDK. Wyjaśniamy, jak skanować, łączyć się i strumieniować dane.
Chcesz odbierać na iPhonie dane EKG ze swojego Aidlaba? Aktualne Aidlab Apple SDK udostępnia próbki EKG przez DeviceDelegate.didReceiveECG(_:timestamp:value:) po wyszukaniu urządzenia, nawiązaniu połączenia i rozpoczęciu zbierania sygnału .ecg.
Uwaga: w tym poradniku zakładamy znajomość Xcode i Swift Package Manager.
Instalacja SDK
Dodaj do aplikacji pakiet Swift:
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
Utwórz kontroler lub klasę zarządzającą, która przechowuje instancję AidlabManager. Menedżer przekazuje znalezione urządzenia przez AidlabManagerDelegate.didDiscover(_:). Poniższy fragment pokazuje obsługę EKG. Ponieważ DeviceDelegate obejmuje wszystkie obsługiwane sygnały, pełna klasa musi zawierać również puste implementacje nieużywanych funkcji zwrotnych, tak jak w przykładowej aplikacji SDK.
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)
}
func didDiscover(_ device: Device) {
aidlabManager.stopScan()
connectedDevice = device
device.connect(delegate: self)
}
func didConnect(_ device: Device) {
device.collect(dataTypes: [.ecg], dataTypesToStore: [])
}
func didReceiveECG(_ device: Device, timestamp: UInt64, value: Float) {
print("ECG @ \(timestamp): \(value)")
}
func didDisconnect(_ device: Device, reason: DisconnectReason) {
connectedDevice = nil
print("Disconnected: \(reason)")
}
func didReceiveError(_ device: Device, error: AidlabError) {
print("Aidlab error: \(error)")
}
}
DeviceDelegate zawiera funkcje zwrotne dla wszystkich obsługiwanych sygnałów, dlatego aplikacja musi implementować także pozostałe metody protokołu. Kompletną implementację delegata znajdziesz w przykładowej aplikacji dla platform Apple w repozytorium SDK.
Przed rozpoczęciem pomiaru EKG załóż Aidlaba na klatkę piersiową. Gdy urządzenie jest luźne lub nie przylega do ciała, wykorzystaj wearStateDidChange(_:wearState:), aby zaktualizować interfejs i poprosić użytkownika 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.







