CalBGForPHPumpEvent.swift 1018 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // CalBGForPHPumpEvent.swift
  3. // RileyLink
  4. //
  5. // Created by Pete Schwamb on 3/8/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public struct CalBGForPHPumpEvent: TimestampedPumpEvent {
  10. public let length: Int
  11. public let rawData: Data
  12. public let timestamp: DateComponents
  13. public let amount: Int
  14. public init?(availableData: Data, pumpModel: PumpModel) {
  15. length = 7
  16. guard length <= availableData.count else {
  17. return nil
  18. }
  19. rawData = availableData.subdata(in: 0..<length)
  20. func d(_ idx: Int) -> Int {
  21. return Int(availableData[idx])
  22. }
  23. timestamp = DateComponents(pumpEventData: availableData, offset: 2)
  24. amount = ((d(4) & 0b10000000) << 2) + ((d(6) & 0b10000000) << 1) + d(1)
  25. }
  26. public var dictionaryRepresentation: [String: Any] {
  27. return [
  28. "_type": "CalBGForPH",
  29. "amount": amount,
  30. ]
  31. }
  32. }