Bleu 1.1.0

Bleu 1.1.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布时间上次发布2018年10月
SPM支持 SPM

1amageek 维护。



Bleu 1.1.0

Bleu

Bleu 是一个蓝牙库。Bleu 是操作 CoreBluetooth 的最简单方法。

通过用 ServerClient 替换蓝牙的 PeripheralCentral,Bleu 可以操作。Bleu 可以为事件驱动开发。

Version Platform Awesome Downloads

安装

CocoaPods

  • pod 'Bleu' 添加到您的 Podfile 中。
  • 运行 pod install

注意:安装 Bleu 需要 CocoaPods 1.1.0。

用法

请自定义 Communicable+.swift

uuidgen // create uuid
extension Communicable {
    
    public var serviceUUID: CBUUID {
        return CBUUID(string: "YOUR UUID")
    }
    
}

struct GetUserIDItem: Communicable {
    
    public var method: RequestMethod {
        return .get(isNotified: false)
    }
    
    public var characteristicUUID: CBUUID {
        return CBUUID(string: "YOUR UUID")
    }
    
}

struct PostUserIDItem: Communicable {
    
    public var method: RequestMethod {
        return .post
    }
    
    public var characteristicUUID: CBUUID {
        return CBUUID(string: "YOUR UUID")
    }
    
}

😃获取

外设(服务器)

Bleu.addReceiver(Receiver(GetUserID(), get: { [weak self] (manager, request) in
    guard let text: String = self?.textField.text else {
        manager.respond(to: request, withResult: .attributeNotFound)
        return
    }
    request.value = text.data(using: .utf8)
    manager.respond(to: request, withResult: .success)
}))

Bleu.startAdvertising()

中心(客户端)

let request: Request = Request(communication: GetUserID()) { [weak self] (peripheral, characteristic, error) in
    if let error = error {
        debugPrint(error)
        return
    }
    
    let data: Data = characteristic.value!
    let text: String = String(data: data, encoding: .utf8)!
    
    self?.centralTextField.text = text
}
Bleu.send([request]) { completedRequests, error in
    if let error = error {
        print("timeout")
    }
}

😃帖子

外设(服务器)

Bleu.addReceiver(Receiver(PostUserID(), post: { (manager, request) in
    let data: Data = request.value!
    let text: String = String(data: data, encoding: .utf8)!
    print(text)
    manager.respond(to: request, withResult: .success)
}))

Bleu.startAdvertising()

中心(客户端)

let data: Data = "Sample".data(using: .utf8)!
let request: Request = Request(communication: PostUserID()) { (peripheral, characteristic, error) in
    if let error = error {
        debugPrint(error)
        return
    }
    
    print("success")
}
request.value = data
Bleu.send([request]) { completedRequests, error in
    if let error = error {
        print("timeout")
    }
}