PodInfo.swift 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // PodInfoResponseSubType.swift
  3. // OmniKit
  4. //
  5. // Created by Eelke Jager on 15/09/2018.
  6. // Copyright © 2018 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. public protocol PodInfo {
  10. init(encodedData: Data) throws
  11. var podInfoType: PodInfoResponseSubType { get }
  12. var data: Data { get }
  13. }
  14. public enum PodInfoResponseSubType: UInt8, Equatable {
  15. case normal = 0x00
  16. case configuredAlerts = 0x01 // Returns information on configured alerts
  17. case detailedStatus = 0x02 // Returned on any pod fault
  18. case pulseLogPlus = 0x03 // Returns up to the last 60 pulse log entries plus additional info
  19. case activationTime = 0x05 // Returns activation date, elapsed time, and fault code
  20. case pulseLogRecent = 0x50 // Returns the last 50 pulse log entries
  21. case pulseLogPrevious = 0x51 // Like 0x50, but returns up to the previous 50 entries before the last 50
  22. public var podInfoType: PodInfo.Type {
  23. switch self {
  24. case .normal:
  25. return StatusResponse.self as! PodInfo.Type
  26. case .configuredAlerts:
  27. return PodInfoConfiguredAlerts.self
  28. case .detailedStatus:
  29. return DetailedStatus.self
  30. case .pulseLogPlus:
  31. return PodInfoPulseLogPlus.self
  32. case .activationTime:
  33. return PodInfoActivationTime.self
  34. case .pulseLogRecent:
  35. return PodInfoPulseLogRecent.self
  36. case .pulseLogPrevious:
  37. return PodInfoPulseLogPrevious.self
  38. }
  39. }
  40. }