GetGlucosePageMessageBody.swift 940 B

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // GetGlucosePageMessageBody.swift
  3. // RileyLink
  4. //
  5. // Created by Timothy Mecklem on 10/19/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public class GetGlucosePageMessageBody: CarelinkLongMessageBody {
  10. public let lastFrame: Bool
  11. public let frameNumber: Int
  12. public let frame: Data
  13. public required init?(rxData: Data) {
  14. guard rxData.count == type(of: self).length else {
  15. return nil
  16. }
  17. frameNumber = Int(rxData[0]) & 0b1111111
  18. lastFrame = (rxData[0]) & 0b10000000 > 0
  19. frame = rxData.subdata(in: 1..<65)
  20. super.init(rxData: rxData)
  21. }
  22. public required init(pageNum: UInt32) {
  23. let numArgs = 4
  24. lastFrame = false
  25. frame = Data()
  26. frameNumber = 0
  27. let data = Data(hexadecimalString: String(format: "%02x%08x", numArgs, pageNum))!
  28. super.init(rxData: data)!
  29. }
  30. }