serialport インターフェイスへのコードの遷移
関数 serial、そのオブジェクト関数、およびそのプロパティは削除されます。代わりに serialport を使用してください。
serial インターフェイス | serialport インターフェイス | 例 |
|---|---|---|
seriallist | serialportlist | シリアル ポート デバイスの検出 |
instrfind および instrfindall | serialportfind | 既存のシリアル ポート接続の検索 |
serial および fopen | serialport | シリアル ポート デバイスへの接続 |
fwrite | write | 読み取りと書き込み |
fread | read | |
fprintf | writeline | コマンドの送信 |
fscanf | readline | 終端文字列の読み取り |
fgetl | ||
fgets | ||
flushinput および flushoutput | flush | メモリからのデータのフラッシュ |
Terminator | configureTerminator | 終端の設定 |
BytesAvailableFcnCount、BytesAvailableFcnMode、BytesAvailableFcn、および BytesAvailable | configureCallback および NumBytesAvailable | コールバック関数のセットアップ |
PinStatus | getpinstatus | シリアル ピン ステータスの読み取り |
DataTerminalReady および RequestToSend | setDTR および setRTS | シリアル DTR ピンと RTS ピンの状態の設定 |
ErrorFcn | ErrorOccurredFcn | |
fclose | clear および delete | シリアル ポート接続の切断 |
削除される機能
ValuesReceived および ValuesSent プロパティは削除される予定です。送信される値の数は、NumBytesAvailable プロパティと使用可能なデータのデータ型を使用して計算できます。たとえば、NumBytesAvailable が 20 バイトの uint32 データの場合、uint32 の値はそれぞれ 4 バイトであるため、送信される値の数は 5 です。
関数 readasync および stopasync と ReadAsyncMode および TransferStatus プロパティは削除される予定です。更新後のインターフェイスではデータが非同期的に読み取られます。
BytesToOutput、InputBufferSize、および OutputBufferSize プロパティは削除される予定です。バッファー サイズは自動で管理され、必要に応じてサイズが変更されます。
BreakInterruptFcn、OutputEmptyFcn、および PinStatusFcn プロパティは削除される予定です。更新後のインターフェイスでは configureCallback を使用してコールバック関数を設定できますが、これらのプロパティについては設定できません。
RecordDetail、RecordMode、RecordName、および RecordStatus プロパティは削除される予定です。
TimerFcn および TimerPeriod プロパティは削除される予定です。代わりに timer を使用してください。
Name、Type、ObjectVisibility、および Status プロパティは削除される予定です。
シリアル ポート デバイスの検出
seriallist は削除されます。代わりに serialportlist を使用してください。
既存のシリアル ポート接続の検索
instrfind および instrfindall は削除される予定です。代わりに serialportfind を使用してください。 (R2024a 以降)
シリアル ポート デバイスへの接続
次の表では、推奨される機能を使用してシリアル ポート デバイスに接続する方法を説明します。
| 機能 | 代替方法 |
|---|---|
s = serial("COM1");
s.BaudRate = 115200;
fopen(s) | s = serialport("COM1",115200); |
関数 fopen は更新後のインターフェイスでは使用できません。オブジェクト作成関数 serialport により、オブジェクトの作成とオブジェクトのデバイスへの接続の両方が実行されます。
詳細については、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
116resp = char(resp)' resp =
'start' | % s is a serialport object length = 5; resp = read(s,length,"string") resp =
"start" |
コマンドの送信
この例では、推奨される機能を使用して、終端処理された 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)
|
詳細については、configureTerminator または writeline を参照してください。
終端文字列の読み取り
この例では、推奨される機能を使用して、終端文字列の読み取りを実行する方法を説明します。
| 機能 | 代替方法 |
|---|---|
% s is a serial object fprintf(s,"MEASUREMENT:IMMED:TYPE PK2PK") a = fscanf(s,"%e",6) a =
2.0200書式指定子 | % 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'
| % 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"
|
% 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
'
|
詳細については、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.PinStatusans =
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) |
シリアル ポート接続の切断
関数 fclose は更新後のインターフェイスでは使用できません。代わりに、シリアル ポート接続を切断するには、単一のワークスペースで作業しているか、複数のワークスペースで作業しているかに応じて、clear または delete を使用してください。詳細については、serialport のリファレンス ページで次の例を参照してください。
参考
serialportlist | serialport | serialportfind (Instrument Control Toolbox) | serialportfind