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 116 resp = 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.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) |
シリアル ポート接続の切断
関数 fclose
は更新後のインターフェイスでは使用できません。代わりに、シリアル ポート接続を切断するには、単一のワークスペースで作業しているか、複数のワークスペースで作業しているかに応じて、clear
または delete
を使用してください。詳細については、serialport
のリファレンス ページで次の例を参照してください。
参考
serialportlist
| serialport
| serialportfind
(Instrument Control Toolbox) | serialportfind