| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- //
- // RileyLinkDevice.swift
- // RileyLinkBLEKit
- //
- // Copyright © 2017 Pete Schwamb. All rights reserved.
- //
- import CoreBluetooth
- public enum RileyLinkHardwareType {
- case riley
- case orange
- case ema
-
- var monitorsBattery: Bool {
- if self == .riley {
- return false
- }
- return true
- }
- }
- public struct RileyLinkDeviceStatus {
- public let lastIdle: Date?
- public let name: String?
- public let version: String
- public let ledOn: Bool
- public let vibrationOn: Bool
- public let voltage: Float?
- public let battery: Int?
- public let hasPiezo: Bool
- public init(lastIdle: Date?, name: String?, version: String, ledOn: Bool, vibrationOn: Bool, voltage: Float?, battery: Int?, hasPiezo: Bool) {
- self.lastIdle = lastIdle
- self.name = name
- self.version = version
- self.ledOn = ledOn
- self.vibrationOn = vibrationOn
- self.voltage = voltage
- self.battery = battery
- self.hasPiezo = hasPiezo
- }
- }
- public protocol RileyLinkDevice {
- var isConnected: Bool { get }
- var rlFirmwareDescription: String { get }
- var hasOrangeLinkService: Bool { get }
- var hardwareType: RileyLinkHardwareType? { get }
- var rssi: Int? { get }
- var name: String? { get }
- var deviceURI: String { get }
- var peripheralIdentifier: UUID { get }
- var peripheralState: CBPeripheralState { get }
- func readRSSI()
- func setCustomName(_ name: String)
- func updateBatteryLevel()
- func orangeAction(_ command: OrangeLinkCommand)
- func setOrangeConfig(_ config: OrangeLinkConfigurationSetting, isOn: Bool)
- func orangeWritePwd()
- func orangeClose()
- func orangeReadSet()
- func orangeReadVDC()
- func findDevice()
- func setDiagnosticeLEDModeForBLEChip(_ mode: RileyLinkLEDMode)
- func readDiagnosticLEDModeForBLEChip(completion: @escaping (RileyLinkLEDMode?) -> Void)
- func assertOnSessionQueue()
- func sessionQueueAsyncAfter(deadline: DispatchTime, execute: @escaping () -> Void)
- func runSession(withName name: String, _ block: @escaping (_ session: CommandSession) -> Void)
- func getStatus(_ completion: @escaping (_ status: RileyLinkDeviceStatus) -> Void)
- }
- extension Array where Element == RileyLinkDevice {
- public var firstConnected: Element? {
- return self.first { (device) -> Bool in
- return device.isConnected
- }
- }
- }
|