前提・実現したいこと
SwiftのCore Bluetoothを用いてデータのやりたりを行いたいのですが、ペリフェラルとセントラルのデータのやり取りの仕組みが理解できません。ペリフェラルからUIImageを送信し、セントラルがそれを受け取り表示させたいです。
何か小さいことでも教えていただけないでしょうか。
発生している問題・エラーメッセージ
ペリフェラル側のSendImage()関数でUIImageをdataに変え、updatevalueでセントラルに送るように書いたつもりです
セントラル側がこのデータをどのように受け取ればいいのかがわかりません。
peripheral
1extension UIImage { 2 public func toPNGData() -> Data { 3 guard let data = self.pngData() else { 4 return Data() 5 } 6 return data 7 } 8} 9 private func sendImage() { 10 guard let transferCharacteristic = transferCharacteristic else { 11 return 12 } 13 let chunk = pngData 14 os_log("%d bytes from image", chunk.count) 15 peripheralManager.updateValue(pngData, for: transferCharacteristic, onSubscribedCentrals: nil) 16 os_log("Sent data of image") 17 } 18//省略 19 func peripheralManager(_ peripheral: CBPeripheralManager, central: CBCentral, didSubscribeTo characteristic: CBCharacteristic) { 20 os_log("Central subscribed to characteristic") 21 22 imageToSend = UIImage(named: "turtlerock")! 23 pngData = imageToSend.toPNGData() 24 25 sendDataIndex = 0 26 27 connectedCentral = central 28 29 sendImage() 30 } 31
補足情報
peripheralのos_logには
139102 bytes from image
Sent data of image
と表示されるのですが、うまくセントラルに送信できてないみたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。