ReadRemainingInsulinMessageBody.swift 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. //
  2. // ReadRemainingInsulinMessageBody.swift
  3. // RileyLink
  4. //
  5. // Created by Nathan Racklyeft on 5/25/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public class ReadRemainingInsulinMessageBody: CarelinkLongMessageBody {
  10. public func getUnitsRemaining(insulinBitPackingScale: Int) -> Double {
  11. let strokes: Data
  12. switch insulinBitPackingScale {
  13. case let x where x > 10:
  14. strokes = rxData.subdata(in: 3..<5)
  15. default:
  16. strokes = rxData.subdata(in: 1..<3)
  17. }
  18. return Double(Int(bigEndianBytes: strokes)) / Double(insulinBitPackingScale)
  19. }
  20. public required init?(rxData: Data) {
  21. guard rxData.count == type(of: self).length else {
  22. return nil
  23. }
  24. super.init(rxData: rxData)
  25. }
  26. override public var description: String {
  27. return "ReadRemainingInsulin(x23:\(getUnitsRemaining(insulinBitPackingScale: PumpModel.model523.insulinBitPackingScale)), x22:\(getUnitsRemaining(insulinBitPackingScale: PumpModel.model522.insulinBitPackingScale)))"
  28. }
  29. }