PumpEvent.swift 878 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // PumpEvent.swift
  3. // RileyLink
  4. //
  5. // Created by Pete Schwamb on 3/7/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public protocol PumpEvent : DictionaryRepresentable {
  10. init?(availableData: Data, pumpModel: PumpModel)
  11. var rawData: Data {
  12. get
  13. }
  14. var length: Int {
  15. get
  16. }
  17. }
  18. public extension PumpEvent {
  19. func isDelayedAppend(with pumpModel: PumpModel) -> Bool {
  20. // Delays only occur for bolus events
  21. guard let bolus = self as? BolusNormalPumpEvent else {
  22. return false
  23. }
  24. // All normal bolus events are delayed
  25. guard bolus.type == .square else {
  26. return true
  27. }
  28. // Square-wave bolus events are delayed for certain pump models
  29. return !pumpModel.appendsSquareWaveToHistoryOnStartOfDelivery
  30. }
  31. }