BolusReminderPumpEvent.swift 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. //
  2. // Mystery69PumpEvent.swift
  3. // RileyLink
  4. //
  5. // Created by Pete Schwamb on 9/23/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public struct BolusReminderPumpEvent: TimestampedPumpEvent {
  10. public let length: Int
  11. public let rawData: Data
  12. public let timestamp: DateComponents
  13. public init?(availableData: Data, pumpModel: PumpModel) {
  14. let length: Int
  15. if pumpModel.larger {
  16. length = 9
  17. } else {
  18. length = 7 // This may not actually occur, as I don't think x22 and earlier pumps have missed bolus reminders.
  19. }
  20. guard length <= availableData.count else {
  21. return nil
  22. }
  23. let rawData = availableData.subdata(in: 0..<length)
  24. let timestamp = DateComponents(pumpEventData: availableData, offset: 2)
  25. self.init(length: length, rawData: rawData, timestamp: timestamp)
  26. }
  27. public init(length: Int, rawData: Data, timestamp: DateComponents) {
  28. self.length = length
  29. self.rawData = rawData
  30. self.timestamp = timestamp
  31. }
  32. public var dictionaryRepresentation: [String: Any] {
  33. return [
  34. "_type": "BolusReminder",
  35. ]
  36. }
  37. }