-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEPLPeripheralManager.swift
More file actions
115 lines (97 loc) · 3.49 KB
/
EPLPeripheralManager.swift
File metadata and controls
115 lines (97 loc) · 3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//
// EPLPeripheralManager.swift
// BabyECG
//
// Created by Ting-Chou Chien on 5/5/15.
// Copyright (c) 2015 Ting-Chou Chien. All rights reserved.
//
import Foundation
import CoreBluetooth
import XCGLogger
import UIKit
// MARK: -
// MARK: EPLPeripheralManager Class
public class EPLPeripheralManager: NSObject, CBPeripheralManagerDelegate {
// MARK: -
// MARK: Private variables
private let log = XCGLogger.defaultInstance()
private var cbPeripheralManager: CBPeripheralManager? = nil
private let peripheralQueue = dispatch_queue_create("epl.ble.peripheral.main", DISPATCH_QUEUE_SERIAL)
private var _ANCSEnabled: Bool = false
// MARK: -
// MARK: Internal variables
// MARK: -
// MARK: Public variables
public class var sharedInstance: EPLPeripheralManager {
struct Static {
static let instance = EPLPeripheralManager()
}
return Static.instance
}
// MARK: -
// MARK: Private Interface
// MARK: -
// MARK: Internal Interface
// MARK: -
// MARK: Public Interface
public override init() {
super.init()
self.cbPeripheralManager = CBPeripheralManager(delegate: self, queue: self.peripheralQueue)
}
public convenience init(ANCSEnabled: Bool) {
self.init()
self._ANCSEnabled = ANCSEnabled
}
}
extension EPLPeripheralManager {
// MARK: -
// MARK: Monitoring Changes to the Peripheral Manager's State
public func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) {
if let cbPeripheralManager = self.cbPeripheralManager {
switch cbPeripheralManager.state {
case .Unknown:
break
case .Resetting:
break
case .Unsupported:
break
case .Unauthorized:
break
case .PoweredOff:
break
case .PoweredOn:
if self._ANCSEnabled {
let advertisement = [
CBAdvertisementDataLocalNameKey: UIDevice.currentDevice().name
]
self.cbPeripheralManager?.startAdvertising(advertisement)
}
break
}
}
}
public func peripheralManager(peripheral: CBPeripheralManager, willRestoreState dict: [String : AnyObject]) {
}
// MARK: -
// MARK: Adding Services
public func peripheralManager(peripheral: CBPeripheralManager, didAddService service: CBService, error: NSError?) {
}
// MARK: -
// MARK: Advertising Peripheral Data
public func peripheralManagerDidStartAdvertising(peripheral: CBPeripheralManager, error: NSError?) {
}
// MARK: -
// MARK: Monitoring Subscriptions to Characteristic Values
public func peripheralManager(peripheral: CBPeripheralManager, central: CBCentral, didSubscribeToCharacteristic characteristic: CBCharacteristic) {
}
public func peripheralManager(peripheral: CBPeripheralManager, central: CBCentral, didUnsubscribeFromCharacteristic characteristic: CBCharacteristic) {
}
public func peripheralManagerIsReadyToUpdateSubscribers(peripheral: CBPeripheralManager) {
}
// MARK: -
// MARK: Receving Read and Write Requests
public func peripheralManager(peripheral: CBPeripheralManager, didReceiveReadRequest request: CBATTRequest) {
}
public func peripheralManager(peripheral: CBPeripheralManager, didReceiveWriteRequests requests: [CBATTRequest]) {
}
}