| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- //
- // MessageBlock.swift
- // OmniKit
- //
- // Created by Pete Schwamb on 10/14/17.
- // Copyright © 2017 Pete Schwamb. All rights reserved.
- //
- import Foundation
- public enum MessageBlockError: Error {
- case notEnoughData
- case unknownBlockType(rawVal: UInt8)
- case parseError
- }
- // See https://github.com/openaps/openomni/wiki/Message-Types
- public enum MessageBlockType: UInt8 {
- case versionResponse = 0x01
- case podInfoResponse = 0x02
- case setupPod = 0x03
- case errorResponse = 0x06
- case assignAddress = 0x07
- case faultConfig = 0x08
- case getStatus = 0x0e
- case acknowledgeAlert = 0x11
- case basalScheduleExtra = 0x13
- case tempBasalExtra = 0x16
- case bolusExtra = 0x17
- case configureAlerts = 0x19
- case setInsulinSchedule = 0x1a
- case deactivatePod = 0x1c
- case statusResponse = 0x1d
- case beepConfig = 0x1e
- case cancelDelivery = 0x1f
-
- public var blockType: MessageBlock.Type {
- switch self {
- case .versionResponse:
- return VersionResponse.self
- case .acknowledgeAlert:
- return AcknowledgeAlertCommand.self
- case .podInfoResponse:
- return PodInfoResponse.self
- case .setupPod:
- return SetupPodCommand.self
- case .errorResponse:
- return ErrorResponse.self
- case .assignAddress:
- return AssignAddressCommand.self
- case .getStatus:
- return GetStatusCommand.self
- case .basalScheduleExtra:
- return BasalScheduleExtraCommand.self
- case .bolusExtra:
- return BolusExtraCommand.self
- case .configureAlerts:
- return ConfigureAlertsCommand.self
- case .setInsulinSchedule:
- return SetInsulinScheduleCommand.self
- case .deactivatePod:
- return DeactivatePodCommand.self
- case .statusResponse:
- return StatusResponse.self
- case .tempBasalExtra:
- return TempBasalExtraCommand.self
- case .beepConfig:
- return BeepConfigCommand.self
- case .cancelDelivery:
- return CancelDeliveryCommand.self
- case .faultConfig:
- return FaultConfigCommand.self
- }
- }
- }
-
- public protocol MessageBlock {
- init(encodedData: Data) throws
- var blockType: MessageBlockType { get }
- var data: Data { get }
- }
- public protocol NonceResyncableMessageBlock : MessageBlock {
- var nonce: UInt32 { get set }
- }
|