Bluetooth 通信でのコールバックの使用
イベントとコールバックを使用すると、Bluetooth® デバイスの能力と柔軟性を強化できます。条件が満たされた後にイベントが発生し、1 つ以上のコールバックが生じる場合があります。
MATLAB® が Bluetooth デバイスに接続されている間、イベントを使用してメッセージの表示、データの表示、データの解析などを実行できます。コールバックは、コールバック プロパティとコールバック関数によって制御できます。すべてのイベント タイプには関連するコールバック プロパティがあります。コールバック関数は、特定のアプリケーションのニーズに合わせて作成する MATLAB 関数です。関連付けられたコールバック プロパティの値としてコールバック関数名を指定することで、特定のイベントが発生するときにコールバックを実行します。
コールバック プロパティ
コールバックに関連付けられた Bluetooth のプロパティと関数は以下のとおりです。
プロパティまたは関数 | 目的 |
---|---|
NumBytesAvailable | 読み込みに使用できるバイト数 |
BytesAvailableFcn | コールバック関数で使用できるバイト数 |
BytesAvailableFcnCount | コールバックをトリガーするデータのバイト数 |
BytesAvailableFcnMode | コールバックのトリガー モードで使用できるバイト数 |
configureCallback | Bluetooth デバイスと通信するためのコールバック関数とトリガー条件の設定 |
ErrorOccurredFcn | エラー イベントによりトリガーされるコールバック関数 |
UserData | ユーザー データの汎用プロパティ |
コールバックの使用
この例では、ループバック デバイスとして構成された HC-06 Bluetooth トランシーバー モジュールを使用します。
コールバック関数を作成します。受信したデータを読み取り、
bluetooth
オブジェクトのUserData
プロパティに格納するコールバック関数collectData
を定義します。function collectData(src,evt) src.UserData = [src.UserData; read(src,src.BytesAvailableFcnCount)]; end
HC-06 モジュールの
bluetooth
オブジェクトhc06
を作成します。hc06 = bluetooth("HC-06",1)
hc06 = bluetooth with properties: Name: "HC-06" Address: "98D331FB3B77" Channel: 1 NumBytesAvailable: 0 NumBytesWritten: 0 Show all properties
デバイスから 5 バイトのデータが送信され、MATLAB で受信されるたびに、そのデータを読み取って収集するようにコールバック プロパティを設定します。
configureCallback(hc06,"byte",5,@collectData);
作業が完了したら
bluetooth
デバイス オブジェクトをクリアします。clear hc06
参考
bluetooth
| configureCallback
| read