ReadTimeCarelinkMessageBody.swift 973 B

1234567891011121314151617181920212223242526272829303132333435
  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. }