ReadTimeCarelinkMessageBody.swift 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //
  2. // ReadTimeCarelinkMessageBody.swift
  3. // Naterade
  4. //
  5. // Created by Nathan Racklyeft on 3/17/16.
  6. // Copyright © 2016 Nathan Racklyeft. All rights reserved.
  7. //
  8. import Foundation
  9. public class ReadTimeCarelinkMessageBody: CarelinkLongMessageBody {
  10. public let dateComponents: DateComponents
  11. public required init?(rxData: Data) {
  12. guard rxData.count == type(of: self).length else {
  13. return nil
  14. }
  15. var dateComponents = DateComponents()
  16. dateComponents.calendar = Calendar(identifier: Calendar.Identifier.gregorian)
  17. dateComponents.hour = Int(rxData[1])
  18. dateComponents.minute = Int(rxData[2])
  19. dateComponents.second = Int(rxData[3])
  20. dateComponents.year = Int(bigEndianBytes: rxData.subdata(in: 4..<6))
  21. dateComponents.month = Int(rxData[6])
  22. dateComponents.day = Int(rxData[7])
  23. self.dateComponents = dateComponents
  24. super.init(rxData: rxData)
  25. }
  26. override public var description: String {
  27. return "ReadTime(\(dateComponents))"
  28. }
  29. }