2016-12-08 4 views
0

私はBluetoothデバイスを扱うのがとても新しいです。これまでのところすべてが完璧に機能します。しかし、私は対処する方法がわからないという問題があります。 私は色からスピード、点滅、退色などすべてを変えることができるLEDランプ装置を持っています。 今現在のデバイスの状態を読みたいとします(たとえば、デバイスの電源を入れたり切ったりします)。私が言うのデバイスのための文書を持っている:BLEデバイスからの回答を取得する

問合せ: a)の順送信:【0xEFという】+【0X01】+【0X77】 b)はコントローラの応答: 【は0x66】+【8ビットのデバイス名【8bitモード】+【8bitモード】+【8bitモード】+【8bitモード】+【8bitモード】+【8bitモード】+【8bitモード】+【8bitモード】+【8bitモード】+ +【8bit版】+【8bit版】+【0X99】

コントローラレスポンスはどのように取得できますか? didWriteValueFor関数は、書き込み呼び出しが成功したかどうかを返します。

+1

あなたはFUNC peripheralManager(:CBPeripheralManager、didReceiveWriteRequests要求:_末梢[CBATTRequest]) ''使うべきデータを受信する –

+2

チャンスはその周辺supporその特性についてts 'notify 'を実行します。通知をオンにするには 'setNotify'を使い、' didUpdateValueForCharacteristic'デリゲートメソッドを呼び出します – Paulw11

答えて

0

を知らせる特性の支持体は、その行でnotyfyingを回すことができる場合は、次の

peripheral.setNotifyValue(true, for: characteristic) 

私の場合にはそれがあったことは、適切なファイルにその特性を持つ周辺機器のためのデリゲートを設定することが非常に重要です。

peripheral.delegate = self 
その後

何かが、周辺には、あなたのコード内でこのメソッドを起動します、変更されます:

func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) { 
    //data is in characteristic.value 
} 

あなたの特徴は、あなたがそのよう.withReponseに設定応答タイプと周辺機器にデータを書き込むしようとすることができますnotyfyingサポートしていない場合:

peripheral.writeValue(data, for: characteristic, type: .withResponse) 

すると、その周辺には、これを起動します後、あまりにも周辺デリゲートを設定することを忘れないでください成功するたびに、書き込み後の方法:

//write response 
    func peripheral(_ peripheral: CBPeripheral, didWriteValueFor characteristic: CBCharacteristic, error: Error?) { 
     //data is in characteristic.value 
    } 
関連する問題