2012-09-07 7 views
5

付属のBluetooth LE周辺機器を搭載したiOSアプリを開発しています。私が解決することができないように見える1つのステップは、実際にアプリケーションから周辺機器にデータを送信する方法、またはその逆の方法です。CoreBluetoothでデータを送信する

これまでビルドしてきたのは、私のサンプルのBluetooth周辺機器に接続し、そのサービス/特性/記述子をすべて読み取ることのできるテストアプリケーションです。特定の特性の通知を切り替えたり、指定された特性に書き込んだりすることができます。これは、 "ペリフェラルにnバイトを送信し、ペリフェラルからmバイトを受信する"という最後のステップです。私は理解できないようです。

AppleがこのプロジェクトのMFi承認を実際に提供している場合に使用する外部アクセサリフレームワークを見ると、アクセサリと通信するために入力セッションと出力セッションが与えられますが、そのようなオブジェクトは存在しませんCoreBluetooth用。

これは単にCoreBluetoothの機能に関するアップルの見解ですか?または、周辺機器との間のデータの流入/流出を処理するために、私自身のBluetoothサービスプロファイルを開発するだけでよいのですか?

+0

BLEアプリケーションを開発するためにMFiの承認を受ける必要はありません – chwi

答えて

2

LEは、これらのGATTベースのプロファイルで動作するように基本的に設計されています。これらのプロファイルは、データストリームではなくセンサーの監視に適しています。 LEはカスタムプロトコル用に追加のL2CAPストリームを開くことを許可していますが、AppleのCoreBluetoothにはアクセスできません。

+0

私は巨大なデータストリームを送信するつもりはなく、一度に1k、おそらく最大でも100バイトのオーダーではありません。私が必要とするデータを送信するのに十分な属性を備えたサービスプロファイルを考案できると考えていますか? –

+0

はい、属性の値を更新することによって、 "データストリーム"が達成される場合は属性または属性セットを使用できます。 – TJD

+0

情報をいただきありがとうございます。データストリームが流れている限り、私はBLEについて多くを見つけることができませんでした。 –

2

プロパティ= write_no_responseの特性uuid = 2A06を持つbluetooth.orgの「即時警告サービス」uuid = 1802を使用して、iPhoneから周辺機器に1バイトの値を送信できます。周辺装置は、送信されるデータに作用するようにプログラムされなければならない。たとえば、iPhoneアプリのボタンを使用して、周辺機器の1つ以上のポートピンをオンまたはオフにする16進アドレスを送信することができます。アラートサービスは意図したとおりに使用されていませんが、周辺デバイスへのデータ転送を簡単にテストする方法を提供します。同じプロセスを使用して、シリアルデータストリームと同様のシーケンシャルデータバイトを送信することができます。私はまだより複雑なデータストリームを送信しようとはしていません。 write_no_responseは、データが周辺機器によって受信されたかどうかについてのアプリへのフィードバックを提供しません。

IOS TemperatureSensor.xprojは、周辺機器から温度データを読み取るコードの例です。 OSX HealthThermometerClient.xprojには、やや複雑な体温計のデータ構造を解読するために必要なコードがあります。 IOS TI-BLE-Demo.xproj TIBLECBKeyfob.mには、温度やバッテリレベルを周辺機器から読み取るなどの特性値を読み書きするためのコードがあります。

2

プライベートサービスと特性を備えたカスタムプロファイルを作成して、SSPのように動作させることができます。それは私のアプリケーションにいくつかのセンサーからデータを取得するために私のBLEモジュールを使用している方法です。私が購入したモジュール(MicrochipのRN-4020)には、MLDP(Microchip Low-Energy Data Profile)として知られているカスタムプロファイルがすでに用意されています。

iOSアプリケーションでデータを取得する方法は、プライベート特性に登録することで、値が更新されたときに通知されます。これまでのところ、これまで大きな成果をあげており、データレートはマイクロチップ社によれば20kbpsまで上がる可能性があります(速度はあまり必要ないので限界はありません)。マイクロチップの製品ページへのリンクは次のとおりです。http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020

幸い!