ReadRemainingInsulinMessageBody.swift 829 B

1234567891011121314151617181920212223242526272829303132333435
  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. }