ChangeRemoteControlIDMessageBody.swift 702 B

12345678910111213141516171819202122232425262728293031
  1. //
  2. // ChangeRemoteControlIDMessageBody.swift
  3. // MinimedKit
  4. //
  5. // Copyright © 2018 Pete Schwamb. All rights reserved.
  6. //
  7. import Foundation
  8. public class ChangeRemoteControlIDMessageBody: CarelinkLongMessageBody {
  9. public convenience init?(id: Data? = nil, index: Int) {
  10. guard index < 3 else {
  11. return nil
  12. }
  13. var rxData = Data(repeating: 0x2d, count: 8) // 2d signifies a deletion
  14. rxData[0] = 0x07 // length
  15. rxData[1] = UInt8(clamping: index)
  16. if let id = id {
  17. for (index, byte) in id.enumerated() {
  18. rxData[2 + index] = 0b00110000 + byte
  19. }
  20. }
  21. self.init(rxData: rxData)
  22. }
  23. }