SessionStartRxMessage.swift 848 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // SessionStartRxMessage.swift
  3. // xDripG5
  4. //
  5. // Created by Nathan Racklyeft on 6/4/16.
  6. // Copyright © 2016 Nathan Racklyeft. All rights reserved.
  7. //
  8. import Foundation
  9. struct SessionStartRxMessage: TransmitterRxMessage {
  10. let status: UInt8
  11. let received: UInt8
  12. // I've only seen examples of these 2 values matching
  13. let requestedStartTime: UInt32
  14. let sessionStartTime: UInt32
  15. let transmitterTime: UInt32
  16. init?(data: Data) {
  17. guard data.count == 17 && data.isCRCValid else {
  18. return nil
  19. }
  20. guard data.starts(with: .sessionStartRx) else {
  21. return nil
  22. }
  23. status = data[1]
  24. received = data[2]
  25. requestedStartTime = data[3..<7].toInt()
  26. sessionStartTime = data[7..<11].toInt()
  27. transmitterTime = data[11..<15].toInt()
  28. }
  29. }