ChangeMaxBasalRateMessageBody.swift 672 B

123456789101112131415161718192021222324252627282930
  1. //
  2. // ChangeMaxBasalRateMessageBody.swift
  3. // MinimedKit
  4. //
  5. // Copyright © 2018 Pete Schwamb. All rights reserved.
  6. //
  7. import Foundation
  8. public class ChangeMaxBasalRateMessageBody: CarelinkLongMessageBody {
  9. static let multiplier: Double = 40
  10. public convenience init?(maxBasalUnitsPerHour: Double) {
  11. guard maxBasalUnitsPerHour >= 0 && maxBasalUnitsPerHour <= 35 else {
  12. return nil
  13. }
  14. let ticks = UInt16(maxBasalUnitsPerHour * type(of: self).multiplier)
  15. let length = UInt8(clamping: ticks.bitWidth / 8)
  16. var data = Data([length])
  17. data.appendBigEndian(ticks)
  18. self.init(rxData: data)
  19. }
  20. }