外部インタフェース/API | ![]() ![]() |
例題: バイナリデータの読み込み
この例題は、TDS 210オシロスコープのスクリーン表示をMATLABにどのようにダウンロードするかを説明します。スクリーン表示データは、Windowsのビットマップフォーマットを使ってディスクに送信され、保存されます。このデータは、ユーザの作業の永久的な記録で、重要な信号や範囲のパラメータを記述するための簡単な方法です。
送信されるデータ量は、かなり大きいと予想されるので、機器から利用可能なるとすぐに入力バッファに非同期的に出力されます。これにより、他のタスクを送信が進行するにつれて実行することができます。さらに、範囲は最大のボーレート19200に設定されます。
1. シリアルポートオブジェクトを作成します。- シリアルポートCOM1に対応するシリアルポートオブジェクトs
を作成します。
s = serial('COM1');
2. プロパティ値を設定します。 - 入力バッファをかなり大きなバイト数を受け入れるように設定し、ボーレートを範囲によってサポートされる最大値に設定します。
s.InputBufferSize = 50000; s.BaudRate = 19200;
3. デバイスに接続します。 - s
をオシロスコープに接続します。ReadAsyncMode
プロパティに対するデフォルト値はcontinuous
なので、データは機器から利用可能になるとすぐに入力バッファに非同期的に出力されます。
fopen(s)
4. データの書き出しと読み込み -スクリーン表示をビットマップとして送信する範囲を設定します。
fprintf(s,'HARDCOPY:PORT RS232') fprintf(s,'HARDCOPY:FORMAT BMP') fprintf(s,'HARDCOPY START')
out = fread(s,s.BytesAvailable,'uint8');
5. 切断とクリーンアップ - s
が必要なくなったときは、機器から切断し、メモリおよびMATLABワークスペースから削除します。
fclose(s) delete(s) clear s
ビットマップデータの表示
ビットマップデータを表示するには、つぎのステップに従います。
imread
を使ってデータをMATLABに読み込みます。
imagesc
を使ってデータをスケーリングして表示します。
fopen
, fwrite
, fclose
のファイルI/Oバージョンが利用されます。
fid = fopen('test1.bmp','w'); fwrite(fid,out,'uint8'); fclose(fid) a = imread('test1.bmp','bmp'); imagesc(a)
スコープは2色のみを使ってスクリーン表示を出力するので、適切なカラーマップを選択します。
mymap = [0 0 0; 1 1 1]; colormap(mymap)
![]() | 例題: strreadを使ったデータのフォーマット | イベントとアクションの利用 | ![]() |