maochun-blekit
Example
To run the example project, clone the repo, and run pod install
from the Example directory first.
Requirements
Installation
maochun-blekit is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'maochun-blekit'
Usage
- Implement BLEDevControllerDelegate
func enableBLESetting() {
//Called when BLE is off
//Ask user to turn on BLE
}
func newBLEDevice(newDev:BLEDev){
//Return new device detected
//Check if the device is the right one to connect with
print("new dev \(newDev.name()) \(newDev.RSSI)")
print("Advertisment dict \(newDev.advDict)")
}
func updateConnDevStatus(status: Int){
guard let status = ConnDevStatus(rawValue: status) else{
return
}
print("device update conn status \(status)")
switch status {
case ConnDevStatus.BLEOff:
self.enableBLESetting()
break
case ConnDevStatus.ConnFailed:
//Connect with device failed
break
case ConnDevStatus.FindServiceFailed:
//Connect with device failed
break
case ConnDevStatus.FindCharacteristicsFailed:
//Connect with device failed
break
case ConnDevStatus.UnsupportedDev:
//Connect with device failed
break
case ConnDevStatus.ConnDone:
//Conect successful. Can send data to device
//self.bleManager.sendDataRecvReply(data: testData, sendTimeoutInSecond: 0.5, recvTimeoutInSecond: 0.5)
break
case ConnDevStatus.Disconnected:
//Device disconnected
break
}
}
- Init BLEManager
BLEManager.shared.delegate = self
- Start / Stop scan for BLE device
BLEManager.shared.scanForPeripherals(true, serviceUUIDs: [self.ServiceUUID])
BLEManager.shared.scanForPeripherals(false)
- Connect / disconnect with BLE device
BLEManager.shared.connectDevice(dev: newDev, serviceUUID: self.ServiceUUID,
rxCharUUID: self.RXCharacteristicUUID,
txCharUUID: self.TXCharacteristicUUID)
BLEManager.shared.disconnectDevice()
- Send data to connected BLE device
Send data synchronized
func sendDataSync(data theData: Data, timeoutInSecond:Double = 0.5) -> Bool
let ret = sendDataSync(data: testData, timeoutInSecond:0.5)
if ret{
print("send data successful")
}else{
print("send data failed!")
}
Send data and receive reply synchronized
func sendDataRecvReply(data theData: Data, sendTimeoutInSecond:Double = 0.5, recvTimeoutInSecond:Double = 0.5) -> (ret:Bool, reply:Data?)
let (ret, reply) = BLEManager.shared.sendDataRecvReply(data: testData,
sendTimeoutInSecond: 0.5, recvTimeoutInSecond: 0.5)
if ret, let reply=reply{
print("send data recv reply successfully! reply = \(reply)")
}else{
print("send data recv reply failed!")
}
Author
maochuns, [email protected]
License
maochun-blekit is available under the MIT license. See the LICENSE file for more info.