GetHistoryPageCarelinkMessageBody.swift 956 B

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // GetHistoryPageCarelinkMessageBody.swift
  3. // RileyLink
  4. //
  5. // Created by Pete Schwamb on 3/14/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public class GetHistoryPageCarelinkMessageBody: 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: Int) {
  23. let numArgs = 1
  24. lastFrame = false
  25. frame = Data()
  26. frameNumber = 0
  27. let data = Data(hexadecimalString: String(format: "%02x%02x", numArgs, UInt8(pageNum)))!
  28. super.init(rxData: data)!
  29. }
  30. }