maochun-blekit 1.0.0

maochun-blekit 1.0.0

Maintained by SecuX.



  • By
  • maochuns

maochun-blekit

CI Status Version License Platform

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.