PumpConfigDataFlow.swift 1008 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import Combine
  2. import LoopKit
  3. import LoopKitUI
  4. enum PumpConfig {
  5. enum Config {}
  6. enum PumpType: Equatable {
  7. case minimed
  8. case omnipod
  9. case omnipodBLE
  10. case omni
  11. case dana
  12. case medtrum
  13. case simulator
  14. }
  15. struct PumpInitialSettings {
  16. var maxBolusUnits: Double
  17. var maxBasalRateUnitsPerHour: Double
  18. var basalSchedule: BasalRateSchedule
  19. static let `default` = PumpInitialSettings(
  20. maxBolusUnits: 10,
  21. maxBasalRateUnitsPerHour: 2,
  22. basalSchedule: BasalRateSchedule(dailyItems: [RepeatingScheduleValue(startTime: 0, value: 1.0)])!
  23. )
  24. }
  25. }
  26. struct PumpDisplayState {
  27. let name: String
  28. let image: UIImage?
  29. }
  30. protocol PumpConfigProvider: Provider {
  31. func setPumpManager(_: PumpManagerUI)
  32. var pumpDisplayState: AnyPublisher<PumpDisplayState?, Never> { get }
  33. func pumpSettings() -> PumpSettings
  34. func getBasalProfile() async -> [BasalProfileEntry]
  35. }