ChangeTempBasalCarelinkMessageBody.swift 1019 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // ChangeTempBasalCarelinkMessageBody.swift
  3. // Naterade
  4. //
  5. // Created by Nathan Racklyeft on 3/6/16.
  6. // Copyright © 2016 Nathan Racklyeft. All rights reserved.
  7. //
  8. import Foundation
  9. public class ChangeTempBasalCarelinkMessageBody: MessageBody {
  10. public static var length: Int = 65
  11. public var txData: Data
  12. let unitsPerHour: Double
  13. let duration: TimeInterval
  14. public init(unitsPerHour: Double, duration: TimeInterval) {
  15. self.unitsPerHour = unitsPerHour
  16. self.duration = duration
  17. let length = 3
  18. let strokesPerUnit: Double = 40
  19. let strokes = Int(unitsPerHour * strokesPerUnit)
  20. let timeSegments = Int(duration / TimeInterval(30 * 60))
  21. let data = Data(hexadecimalString: String(format: "%02x%04x%02x", length, strokes, timeSegments))!
  22. self.txData = data.paddedTo(length: type(of: self).length)
  23. }
  24. public var description: String {
  25. return "ChangeTempBasal(rate:\(unitsPerHour) U/hr duration:\(duration)"
  26. }
  27. }