| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- //
- // FaultConfigCommand.swift
- // OmniKit
- //
- // Created by Pete Schwamb on 12/18/18.
- // Copyright © 2018 Pete Schwamb. All rights reserved.
- //
- import Foundation
- public struct FaultConfigCommand : NonceResyncableMessageBlock {
- // OFF 1 2 3 4 5 6 7
- // 08 06 NNNNNNNN JJ KK
- public let blockType: MessageBlockType = .faultConfig
- public let length: UInt8 = 6
- public var nonce: UInt32
- public let tab5Sub16: UInt8
- public let tab5Sub17: UInt8
- public init(nonce: UInt32, tab5Sub16: UInt8, tab5Sub17: UInt8) {
- self.nonce = nonce
- self.tab5Sub16 = tab5Sub16
- self.tab5Sub17 = tab5Sub17
- }
- public init(encodedData: Data) throws {
- if encodedData.count < 8 {
- throw MessageBlockError.notEnoughData
- }
-
- nonce = encodedData[2...].toBigEndian(UInt32.self)
- self.tab5Sub16 = encodedData[6]
- self.tab5Sub17 = encodedData[7]
- }
- public var data: Data {
- var data = Data([
- blockType.rawValue,
- length])
-
- data.appendBigEndian(nonce)
- data.append(tab5Sub16)
- data.append(tab5Sub17)
- return data
- }
- }
- extension FaultConfigCommand: CustomDebugStringConvertible {
- public var debugDescription: String {
- return "FaultConfigCommand(nonce:\(Data(bigEndian: nonce).hexadecimalString), tab5Sub16:\(tab5Sub16), tab5Sub17:\(tab5Sub17))"
- }
- }
|