bluetooth インターフェイスへのコードの遷移
新しい MATLAB® 関数とプロパティのセットにより、Bluetooth® デバイスとの通信がサポートされています。関数 Bluetooth、そのオブジェクト関数、およびそのプロパティは削除されます。代わりに bluetooth (大文字小文字を区別) インターフェイスを使用してください。
Bluetooth インターフェイス | bluetooth インターフェイス | 例 |
|---|---|---|
instrhwinfo | bluetoothlist | Bluetooth デバイスの検出 |
Bluetooth および fopen | bluetooth | Bluetooth デバイスへの接続 |
fwrite | write | 読み取りと書き込み |
fread | read | |
fprintf | writeline | コマンドの送信 |
| データの書き込みと読み戻し | ||
fscanf | readline | 終端文字列の読み取り |
fgetl | データの書き込みと読み戻し | |
fgets | 文字列データの読み取りと解析 | |
flushinput および flushoutput | flush | メモリからのデータのフラッシュ |
Terminator | configureTerminator | 終端の設定 |
BytesAvailableFcnCount、BytesAvailableFcnMode、および BytesAvailableFcn | configureCallback | コールバック関数のセットアップ |
BytesAvailable | NumBytesAvailable | |
RemoteName | Name | |
RemoteID | Address | |
ErrorFcn | ErrorOccurredFcn |
削除される機能
関数 binblockread および binblockwrite は削除される予定です。
ValuesReceived および ValuesSent プロパティは削除される予定です。送信される値の数は、NumBytesAvailable プロパティと使用可能なデータのデータ型を使用して計算できます。たとえば、NumBytesAvailable が 20 バイトの uint32 データの場合、uint32 の値はそれぞれ 4 バイトであるため、送信される値の数は 5 です。
関数 readasync および stopasync と ReadAsyncMode および TransferStatus プロパティは削除される予定です。更新後のインターフェイスではデータが非同期的に読み取られます。
BytesToOutput、InputBufferSize、および OutputBufferSize プロパティは削除される予定です。バッファー サイズは自動で管理され、必要に応じてサイズが変更されます。
OutputEmptyFcn プロパティは更新後のインターフェイスでは使用できません。更新後のインターフェイスでは configureCallback を使用してコールバック関数を設定できますが、このプロパティについては設定できません。
RecordDetail、RecordMode、RecordName、および RecordStatus プロパティは削除される予定です。
TimerFcn および TimerPeriod プロパティは削除される予定です。代わりに timer を使用してください。
Profile、ObjectVisibility、Status、および Tag プロパティは削除される予定です。
Bluetooth デバイスの検出
この例では、推奨される機能を使用して Bluetooth デバイスを検出する方法を示します。
| 機能 | 代替方法 |
|---|---|
instrhwinfo('Bluetooth') | bluetoothlist |
詳細については、bluetoothlist を参照してください。
Bluetooth デバイスへの接続
以下の例では、推奨される機能を使用して Bluetooth デバイスに接続する方法と、切断する方法を説明します。
| 機能 | 代替方法 |
|---|---|
b = Bluetooth('NXT',3)
fopen(b) | b = bluetooth("NXT",3) |
fclose(b)
delete(b)
clear b | clear b |
関数 fopen は更新後のインターフェイスでは使用できません。オブジェクト作成関数 bluetooth により、オブジェクトの作成とオブジェクトのデバイスへの接続の両方が実行されます。
関数 fclose は更新後のインターフェイスでは使用できません。関数 clear により、オブジェクトをワークスペースから削除するときにオブジェクトがデバイスから切断されます。
詳細については、bluetooth を参照してください。
読み取りと書き込み
以下の例では、ループバック デバイスを使用して、推奨される機能を使ったバイナリの書き込みと読み取り、終端処理のない文字列データの書き込み、および固定長の文字列データの読み取りを実行する方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object
fwrite(b,1:5)
data = fread(b,5)data =
1
2
3
4
5 | % b is a bluetooth object
write(b,1:5)
data = read(b,5)data =
1 2 3 4 5
|
% b is a Bluetooth object command = "start"; fwrite(b,command,"char") | % b is a bluetooth object command = "start"; write(b,command,"char") |
% b is a bluetooth object command = "start"; write(b,command,"string") | |
% b is a Bluetooth object length = 5; data = fread(b,length,"char") resp = 104 101 108 108 111 data = char(data)' resp =
'hello' | % b is a bluetooth object length = 5; data = read(b,length,"string") data =
"hello" |
終端文字列の読み取り
以下の例では、推奨される機能を使用して、終端文字列の読み取りを実行する方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object data = fscanf(b,"%e") data =
11.9000書式指定子 | % b is a bluetooth object
data = readline(b)data =
"11.9"data = sscanf(data,"%e")data =
11.9000 |
% b is a Bluetooth object
data = fgetl(b)data =
'hello'
| % b is a bluetooth object
data = readline(b)data =
"hello"
|
% b is a Bluetooth object
data = fgets(b)data =
'hello
'
|
詳細については、readline を参照してください。
コマンドの送信
この例では、推奨される機能を使用して、終端文字列データを書き込む方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object b.Terminator = "CR/LF" channel = 1; fprintf(b,"id is %d",channel); | % b is a bluetooth object configureTerminator(b,"CR/LF") channel = 1; str = sprintf("id is %d",channel); writeline(b,str)
|
詳細については、configureTerminator または writeline を参照してください。
データの書き込みと読み戻し
この例では、推奨される機能を使用して、テキストを書き込み、データを読み戻す方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object data = query(b,'ctrlcmd') data =
'success' | % b is a bluetooth object writeline(b,"ctrlcmd") data = readline(b) data =
"success" |
文字列データの読み取りと解析
この例では、推奨される機能を使用して、文字列データを読み取り、解析する方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object data = scanstr(b,';') data =
3×1 cell array
{'a'}
{'b'}
{'c'} | % b is a bluetooth object
data = readline(b)data =
"a;b;c"data = strsplit(data,";")data =
1×3 string array
"a" "b" "c" |
詳細については、readline を参照してください。
メモリからのデータのフラッシュ
この例では、推奨される機能を使用して、バッファーからデータをフラッシュする方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object
flushinput(b)
| % b is a bluetooth object flush(b,"input") |
% b is a Bluetooth object
flushoutput(b)
| % b is a bluetooth object flush(b,"output") |
% b is a Bluetooth object
flushinput(b)
flushoutput(b)
| % b is a bluetooth object
flush(b) |
詳細については、flush を参照してください。
終端の設定
この例では、推奨される機能を使用して終端を設定する方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object b.Terminator = "CR/LF"; | % b is a bluetooth object configureTerminator(b,"CR/LF") |
% b is a Bluetooth object b.Terminator = {"CR/LF" [10]}; | % b is a bluetooth object configureTerminator(b,"CR/LF",10) |
詳細については、configureTerminator を参照してください。
コールバック関数のセットアップ
この例ではループバック デバイスを使用し、推奨される機能を使ってコールバック関数をセットアップする方法を説明します。
| 機能 | 代替方法 |
|---|---|
% b is a Bluetooth object b.BytesAvailableFcnCount = 5 b.BytesAvailableFcnMode = "byte" b.BytesAvailableFcn = @mycallback function mycallback(src,evt) data = fread(src,src.BytesAvailableFcnCount); disp(evt) disp(evt.Data) end Type: 'BytesAvailable'
Data: [1×1 struct]
AbsTime: [2019 12 21 16 35 9.7032] | % b is a bluetooth object configureCallback(b,"byte",5,@mycallback); function mycallback(src,evt) data = read(src,src.BytesAvailableFcnCount); disp(evt) end ByteAvailableInfo with properties:
BytesAvailableFcnCount: 5
AbsTime: 21-Dec-2019 12:23:01 |
% b is a Bluetooth object b.Terminator = "LF/CR" b.BytesAvailableFcnMode = "terminator" b.BytesAvailableFcn = @mycallback function mycallback(src,evt) data = fscanf(src,'%s'); disp(evt) disp(evt.Data) end Type: 'BytesAvailable'
Data: [1×1 struct]
AbsTime: [2019 12 21 16 35 9.7032] | % b is a bluetooth object configureTerminator(b,"LF/CR") configureCallback(b,"terminator",@mycallback); function mycallback(src,evt) data = readline(src); disp(evt) end TerminatorAvailableInfo with properties:
AbsTime: 21-Dec-2019 12:23:01 |
詳細については、configureCallback を参照してください。