ChangeTimeCarelinkMessageBody.swift 888 B

1234567891011121314151617181920212223242526272829303132
  1. //
  2. // ChangeTimeCarelinkMessageBody.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 ChangeTimeCarelinkMessageBody: CarelinkLongMessageBody {
  10. public convenience init?(dateComponents: DateComponents) {
  11. var calendar = Calendar(identifier: .gregorian)
  12. if let timeZone = dateComponents.timeZone {
  13. calendar.timeZone = timeZone
  14. }
  15. guard dateComponents.isValidDate(in: calendar) else {
  16. return nil
  17. }
  18. let length = 7
  19. let data = Data(hexadecimalString: String(format: "%02x%02x%02x%02x%04x%02x%02x", length, dateComponents.hour!, dateComponents.minute!, dateComponents.second!, dateComponents.year!, dateComponents.month!, dateComponents.day!))!
  20. self.init(rxData: data)
  21. }
  22. }