0
我已成功设法让我的iOS应用(外设)向我的OSX应用(中央)发送消息。更新来自CBCentral的特征值
我现在遇到问题,试图让中央更新特征值并从外设读取它。
如果我将CBCharacteristicProperties更改为Notify以外的任何其他内容,我的中央服务器无法订阅具有以下错误的特征:“不允许写入”。在
func peripheralManager(peripheral: CBPeripheralManager!, didReceiveWriteRequests requests: [AnyObject]!) {}
这:
self.transferCharacteristic = CBMutableCharacteristic(type: CBUUID.UUIDWithString(TRANSFER_CHARACTERISTIC_UUID), properties: CBCharacteristicProperties.Read, value: nil, permissions: CBAttributePermissions.Writeable)
据我了解,才能有中央写入外设,我应该用线的组合在上面的外围,与此事件中央更新特征值:
self.discoveredPeripheral?.writeValue(passwordData, forCharacteristic: self.characteristicSubscribed, type: CBCharacteristicWriteType.WithoutResponse)
请让我知道我做错了什么。任何示范项目展示如何做我想要的东西将不胜感激。
感谢
两个问题请。 1-使用这种特性时,我是否还必须使用: peripheral.setNotifyValue(true,forCharacteristic:特征为CBCharacteristic) 如果是这样,我仍然在“写入不被允许”。 2 - 如何在中央调用self.discoveredPeripheral?.writeValue之后处理外设端数据? 谢谢 – 2014-09-02 22:52:47
如果你想通知,那么你需要添加'CBCharacteristicProperties.Notify'属性。在外设方面,您需要轮询特征值或(更好地)使用通知来通知该值已更改。 – Paulw11 2014-09-02 22:58:35
得到它的工作我不得不使用专用的UUID来处理这个特性,因为它与我以前使用过的另一个冲突,他们似乎需要很长时间才能“走开”。 非常感谢! – 2014-09-02 23:05:24