BluetoothServices.swift 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // BluetoothServices.swift
  3. // xDripG5
  4. //
  5. // Created by Nathan Racklyeft on 10/16/15.
  6. // Copyright © 2015 Nathan Racklyeft. All rights reserved.
  7. //
  8. import CoreBluetooth
  9. protocol CBUUIDRawValue: RawRepresentable {}
  10. extension CBUUIDRawValue where RawValue == String {
  11. var cbUUID: CBUUID {
  12. return CBUUID(string: rawValue)
  13. }
  14. }
  15. enum SensorServiceUUID: String, CBUUIDRawValue {
  16. case deviceInfo = "180A"
  17. case advertisement = "FEBC"
  18. case cgmService = "F8083532-849E-531C-C594-30F1F86A4EA5"
  19. case serviceB = "F8084532-849E-531C-C594-30F1F86A4EA5"
  20. }
  21. enum DeviceInfoCharacteristicUUID: String, CBUUIDRawValue {
  22. // Read
  23. // "DexcomUN"
  24. case manufacturerNameString = "2A29"
  25. }
  26. enum CGMServiceCharacteristicUUID: String, CBUUIDRawValue {
  27. // Read/Notify
  28. case communication = "F8083533-849E-531C-C594-30F1F86A4EA5"
  29. // Write/Indicate
  30. case control = "F8083534-849E-531C-C594-30F1F86A4EA5"
  31. // Write/Indicate
  32. case authentication = "F8083535-849E-531C-C594-30F1F86A4EA5"
  33. // Read/Write/Notify
  34. case backfill = "F8083536-849E-531C-C594-30F1F86A4EA5"
  35. }
  36. enum ServiceBCharacteristicUUID: String, CBUUIDRawValue {
  37. // Write/Indicate
  38. case characteristicE = "F8084533-849E-531C-C594-30F1F86A4EA5"
  39. // Read/Write/Notify
  40. case characteristicF = "F8084534-849E-531C-C594-30F1F86A4EA5"
  41. }
  42. extension G7PeripheralManager.Configuration {
  43. static var dexcomG7: G7PeripheralManager.Configuration {
  44. return G7PeripheralManager.Configuration(
  45. serviceCharacteristics: [
  46. SensorServiceUUID.cgmService.cbUUID: [
  47. //CGMServiceCharacteristicUUID.communication.cbUUID, // Unused for now
  48. CGMServiceCharacteristicUUID.authentication.cbUUID,
  49. CGMServiceCharacteristicUUID.control.cbUUID,
  50. CGMServiceCharacteristicUUID.backfill.cbUUID,
  51. ]
  52. ],
  53. notifyingCharacteristics: [:],
  54. valueUpdateMacros: [:]
  55. )
  56. }
  57. }