Main Content

bluetooth インターフェイスへのコードの遷移

新しい MATLAB® 関数とプロパティのセットにより、Bluetooth® デバイスとの通信がサポートされています。関数 Bluetooth、そのオブジェクト関数、およびそのプロパティは削除されます。代わりに bluetooth (大文字小文字を区別) インターフェイスを使用してください。

削除される機能

関数 binblockread および binblockwrite は削除される予定です。

ValuesReceived および ValuesSent プロパティは削除される予定です。送信される値の数は、NumBytesAvailable プロパティと使用可能なデータのデータ型を使用して計算できます。たとえば、NumBytesAvailable が 20 バイトの uint32 データの場合、uint32 の値はそれぞれ 4 バイトであるため、送信される値の数は 5 です。

関数 readasync および stopasyncReadAsyncMode および TransferStatus プロパティは削除される予定です。更新後のインターフェイスではデータが非同期的に読み取られます。

BytesToOutputInputBufferSize、および OutputBufferSize プロパティは削除される予定です。バッファー サイズは自動で管理され、必要に応じてサイズが変更されます。

OutputEmptyFcn プロパティは更新後のインターフェイスでは使用できません。更新後のインターフェイスでは configureCallback を使用してコールバック関数を設定できますが、このプロパティについては設定できません。

RecordDetailRecordModeRecordName、および RecordStatus プロパティは削除される予定です。

TimerFcn および TimerPeriod プロパティは削除される予定です。代わりに timer を使用してください。

ProfileObjectVisibilityStatus、および 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"

詳細については、write または read を参照してください。

終端文字列の読み取り

以下の例では、推奨される機能を使用して、終端文字列の読み取りを実行する方法を説明します。

機能代替方法
% b is a Bluetooth object
data = fscanf(b,"%e")
data =

    11.9000

書式指定子 "%e" に対し fscanf は終端を返し、ユーザーはそれを文字列から削除しなければなりません。

% 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'

fgetl は指定の終端に至るまで読み取り、その後終端を破棄します。

% b is a bluetooth object
data = readline(b)
data = 

    "hello"

readline は指定の終端に至るまで読み取り、その後終端を破棄します。終端を含めるオプションはありません。

% b is a Bluetooth object
data = fgets(b)
data =

    'hello
     '

fgets は指定の終端に至るまで読み取り、その後終端を返します。

詳細については、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)

writeline は自動的に書き込み終端を追加します。

詳細については、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"

詳細については、writeline または readline を参照してください。

文字列データの読み取りと解析

この例では、推奨される機能を使用して、文字列データを読み取り、解析する方法を説明します。

機能代替方法
% 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 を参照してください。

参考

|

関連するトピック