Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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

関数 serial、そのオブジェクト関数、およびそのプロパティは削除されます。代わりに serialport を使用してください。

削除される機能

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

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

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

BreakInterruptFcnOutputEmptyFcn、および PinStatusFcn プロパティは削除される予定です。更新後のインターフェイスでは configureCallback を使用してコールバック関数を設定できますが、これらのプロパティについては設定できません。

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

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

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

シリアル ポート デバイスの検出

seriallist は削除されます。代わりに serialportlist を使用してください。

シリアル ポート デバイスへの接続

この例では、推奨される機能を使用してシリアル ポート デバイスに接続する方法と切断する方法を示します。

機能代替方法
s = serial("COM1");
s.BaudRate = 115200;
fopen(s)
s = serialport("COM1",115200);
fclose(s)
delete(s)
clear s
clear s

関数 fopen は更新後のインターフェイスでは使用できません。オブジェクト作成関数 serialport により、オブジェクトの作成とオブジェクトのデバイスへの接続の両方が実行されます。

関数 fclose は更新後のインターフェイスでは使用できません。関数 clear により、オブジェクトをワークスペースから削除するときにオブジェクトがデバイスから切断されます。

詳細については、serialport を参照してください。

読み取りと書き込み

これらの例では、ループバック デバイスを使用して、推奨される機能を使ったバイナリの書き込みと読み取り、終端処理のないコマンド文字列の書き込み、および固定長の応答文字列の読み取りを実行する方法を説明します。

機能代替方法
% s is a serial object
fwrite(s,1:5,"uint32")
data = fread(s,5,"uint32")
data =

     1
     2
     3
     4
     5
% s is a serialport object
write(s,1:5,"uint32")
data = read(s,5,"uint32")
data =

     1     2     3     4     5
% s is a serial object
command = "start";
fwrite(s,command,"char")
% s is a serialport object
command = "start";
write(s,command,"char")
% s is a serialport object
command = "start";
write(s,command,"string")
% s is a serial object
length = 5;
resp = fread(s,length,"char")
resp =

   115
   116
    97
   114
   116
resp = char(resp)'
resp =

    'start'
% s is a serialport object
length = 5;
resp = read(s,length,"string")
resp =

    "start"

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

コマンドの送信

この例では、推奨される機能を使用して、終端処理された SCPI コマンドを書き込む方法を説明します。

機能代替方法
% s is a serial object
s.Terminator = "CR/LF"
channel = 1;
level = 3.44;
fprintf(s,"TRIGGER%d:LEVEL2 %1.2f",[channel,level]);
% s is a serialport object
configureTerminator(s,"CR/LF")
channel = 1;
level = 3.44;
cmd = sprintf("TRIGGER%d:LEVEL2 %1.2f",[channel,level]);
writeline(s,cmd)

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

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

終端文字列の読み取り

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

機能代替方法
% s is a serial object
fprintf(s,"MEASUREMENT:IMMED:TYPE PK2PK")
a = fscanf(s,"%e",6)
a =

    2.0200

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

% s is a serialport object
writeline(s,"MEASUREMENT:IMMED:TYPE PK2PK")
a = readline(s)
a = 

    "2.0200"
sscanf(a,"%e")
a =

    2.0200
% s is a serial object
fprintf(s,"*IDN?")
a = fgetl(s)
a =

    'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16'

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

% s is a serialport object
writeline(s,"*IDN?")
a = readline(s)
a = 

    "TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04"

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

% s is a serial object
fprintf(s,"*IDN?")
a = fgets(s)
a =

    'TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04
     '

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

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

メモリからのデータのフラッシュ

この例では、推奨される機能を使用して、バッファーからデータをフラッシュする方法を説明します。

機能代替方法
% s is a serial object
flushinput(s)
% s is a serialport object
flush(s,"input")
% s is a serial object
flushoutput(s)
% s is a serialport object
flush(s,"output")
% s is a serial object
flushinput(s)
flushoutput(s)
% s is a serialport object
flush(s)

詳細については、flush を参照してください。

終端の設定

この例では、推奨される機能を使用して終端を設定する方法を説明します。

機能代替方法
% s is a serial object
s.Terminator = "CR/LF";
% s is a serialport object
configureTerminator(s,"CR/LF")
% s is a serial object
s.Terminator = {"CR/LF" [10]};
% s is a serialport object
configureTerminator(s,"CR/LF",10)

詳細については、configureTerminator を参照してください。

コールバック関数のセットアップ

この例ではループバック デバイスを使用し、推奨される機能を使ってコールバック関数をセットアップする方法を説明します。

機能代替方法
s = serial("COM5","BaudRate",115200)
s.BytesAvailableFcnCount = 5
s.BytesAvailableFcnMode = "byte"
s.BytesAvailableFcn = @instrcallback

fopen(s)

function instrcallback(src,evt)
   data = fread(src,src.BytesAvailable)
   disp(evt)
   disp(evt.Data)
end
data =

     1
     2
     3
     4
     5

    Type: 'BytesAvailable'
    Data: [1×1 struct]

    AbsTime: [2019 5 2 16 35 9.6710]
s = serialport("COM5",115200)
configureCallback(s,"byte",5,@instrcallback);

function instrcallback(src,evt)
   data = read(src,src.NumBytesAvailable,"uint8")
   disp(evt)
end
data =

     1     2     3     4     5

  DataAvailableInfo with properties:

    BytesAvailableFcnCount: 5
                   AbsTime: 02-May-2019 15:54:09

詳細については、configureCallback を参照してください。

シリアル ピン ステータスの読み取り

この例では、推奨される機能を使ってシリアル ピン ステータスを読み取る方法を説明します。

機能代替方法
% s is a serial object
s.PinStatus
ans = 

  struct with fields:

    CarrierDetect: 'on'
      ClearToSend: 'on'
     DataSetReady: 'on'
    RingIndicator: 'on'
% s is a serialport object
status = getpinstatus(s)
status = 

  struct with fields:

      ClearToSend: 1
     DataSetReady: 1
    CarrierDetect: 1
    RingIndicator: 1

詳細については、getpinstatus を参照してください。

シリアル DTR ピンと RTS ピンの状態の設定

この例では、推奨される機能を使ってシリアル DTR ピンと RTS ピンの状態を設定する方法を説明します。

機能代替方法
% s is a serial object
s.DataTerminalReady = "on";
% s is a serialport object
setDTR(s,true)
% s is a serial object
s.RequestToSend = "off";
% s is a serialport object
setRTS(s,false)

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

参考

|

関連するトピック