DexcomHeartbeatBluetoothDevice.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // LoopFollow
  2. // DexcomHeartbeatBluetoothDevice.swift
  3. // Created by Jonas Björkert on 2025-01-13.
  4. import AVFoundation
  5. import CoreBluetooth
  6. import Foundation
  7. import os
  8. class DexcomHeartbeatBluetoothDevice: BluetoothDevice {
  9. private let CBUUID_Service_G7 = "F8083532-849E-531C-C594-30F1F86A4EA5"
  10. private let CBUUID_Advertisement_G7 = "FEBC"
  11. private let CBUUID_ReceiveCharacteristic_G7 = "F8083535-849E-531C-C594-30F1F86A4EA5"
  12. init(address: String, name: String?, bluetoothDeviceDelegate: BluetoothDeviceDelegate) {
  13. super.init(
  14. address: address,
  15. name: name,
  16. CBUUID_Advertisement: CBUUID_Advertisement_G7,
  17. servicesCBUUIDs: [CBUUID(string: CBUUID_Service_G7)],
  18. CBUUID_ReceiveCharacteristic: CBUUID_ReceiveCharacteristic_G7,
  19. bluetoothDeviceDelegate: bluetoothDeviceDelegate
  20. )
  21. }
  22. override func centralManager(_ central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: Error?) {
  23. super.centralManager(central, didDisconnectPeripheral: peripheral, error: error)
  24. bluetoothDeviceDelegate?.heartBeat()
  25. }
  26. override func expectedHeartbeatInterval() -> TimeInterval? {
  27. return 5 * 60 // 5 minutes in seconds
  28. }
  29. }