信号エディターにインポートするカスタム ファイル タイプの作成
既定では、Simulink® は、入力データの形式にリストされている形式の信号をサポートします。サポートされている形式ではない信号を含むファイル タイプをインポートするには、独自のカスタム ファイル タイプ リーダーを作成して登録します。Simulink は、Simulink.io.FileType
で書き込まれたカスタム ファイル タイプ リーダーをサポートします。
Simulink は次のファイル タイプを提供します。
Simulink.io.SignalBuilderSpreadsheet
— Signal Builder ファイル タイプSimulink.io.BaseWorkspace
— ベース ワークスペース ファイル タイプSimulink.io.MatFile
— MAT ファイルのファイル タイプSimulink.io.ModelWorkspace
— モデル ワークスペース ファイル タイプSimulink.io.SLDVMatFile
— Simulink Design Verifier™sldvData
構造体を含む MAT ファイルサンプル ファイル タイプ
Simulink.io.MySignalMatFile
Simulink.io.CreateSignals
Simulink Test™ は
sltest.io.SimulinkTestSpreadsheet
(Simulink Test) ファイル タイプを提供します。
ファイル リーダーを作成するには、オブジェクト指向プログラミングに関する知識が必要です。これは上級ユーザーを対象とします。
パッケージ フォルダーを含めるには、フォルダーを作成し、そのフォルダー パスを MATLAB® パスに追加します。
そのフォルダーには、
mySignals.mat
などの信号を含むカスタム ファイルを追加します。そのフォルダー内に
+Simulink
フォルダーを作成し、そのフォルダー内に+io
フォルダーを作成します。Simulink.io.FileType
クラスから継承するクラスを作成します。classdef MyFileType < Simulink.io.FileType
このクラスを
yourfolder/+Simulink/+io
に保存します。信号エディターに登録して操作するには、次の静的メソッドを実装します。
次のパブリック メソッドを実装します。
実行時に、
Simulink.io.FileType
オブジェクトを実行する際にwhos
を介してwhosImpl
を呼び出します。whos
の構文はwhosImpl
と同じです。
クラスが登録されているかどうかを確認します。[信号エディター] タブで [インポート] をクリックし、[インポート] ダイアログ ボックス ウィンドウで [参照] をクリックします。
custompath/mySignals.mat
などの信号を含むカスタム ファイルがファイル ブラウザーに表示されます。カスタム信号が含まれているカスタム ファイルを選択します。
クラス ファイルに戻り、次の追加のパブリック メソッドを実装します。
実行時に、
Simulink.io.FileType
オブジェクトを実行する際にload
を介してloadImpl
を呼び出します。load
の構文はloadImpl
と同じです。
カスタム信号をインポートするには、
import
メソッドを使用します。dataOnFile = import(reader)
。ここで reader は、リーダーのファイル タイプ オブジェクトです。Simulink.io.FileType
オブジェクトとして指定します。出力 dataOnFile は、信号の cell 配列であるフィールドstructure.Data
と対応する信号名の cell 配列であるstructure.Name
をもつ構造体です。たとえば、dataOnFile.Data
は信号の cell 配列であり、dataOnFile.Name
には対応する信号名が含まれます。信号エディターに戻り、[インポート] をクリックし、再度インポートを試みます。
カスタム信号を正常にインポートすると、それらを信号エディターで操作できます。完了し、exportImpl
メソッドを実装すると、実行時にリーダーの export
メソッドを呼び出して結果をインポートできます。または、カスタム登録されたファイル タイプへの信号のエクスポートからエクスポート ダイアログを使用できます。
実装例については、以下を参照してください。
open('Simulink.io.CreateSignals')
— 信号の作成方法の実装open('Simulink.io.MySignalMatFile')
— Simulink にインポートするためにカスタム ファイル タイプを登録する方法の実装
Simulink で使用するための新しい FileType
オブジェクトの定義
FileType
オブジェクトは、Simulink で現在サポートされていない形式の信号のリーダーを作成するために使用できるコンポーネントです。MATLAB でリーダーを書き込み、[信号エディター] タブで [インポート] をクリックして、リーダーを登録し、カスタム形式ファイルをインポートします。
メモ
インポートする前に、カスタム ファイル タイプのクラス ファイルのすべてのエディターが閉じていることを確認します。カスタム ファイル タイプのクラス ファイルをリーダーとしてインポートしている時に編集すると、予期しない動作が発生します。
FileType
オブジェクトの定義
Simulink
で使用するための FileType® オブジェクトを作成します。この例では、カスタム形式をもつ信号のリーダーが作成されます。テキスト形式のクラス定義ファイルを作成して
FileType
オブジェクトを定義します。クラス定義ファイルの最初の行で、
FileType
の名前を指定し、Simulink.io.FileType
のサブクラス化を行います。Simulink.io.FileType
基底クラスにより、すべての、基本的なFileType
オブジェクト メソッドを使用できます。クラスについて、以下を行います。
基本的な
FileType
オブジェクト メソッドを適宜追加して、信号エディターに登録して操作します。信号形式を検証します。
信号ファイルの内容を決定します。
信号ファイルから変数を読み込みます。
信号をインポートします。
これらの各メソッドの実装については、各メソッドのリファレンス ページと以下の完全なクラス定義ファイルを参照してください。カスタム信号リーダーの完全なクラス定義を確認するには、以下を実行します。
open('Simulink.io.MySignalMatFile')
参考
Simulink.io.FileType
| Simulink.io.BaseWorkspace
| Simulink.io.MatFile
| Simulink.io.PluggableNamespace
| Simulink.io.SignalBuilderSpreadsheet
| Simulink.io.SLDVMatFile
| exportImpl
| sltest.io.SimulinkTestSpreadsheet
(Simulink Test) | getFileTypeDescription
| Simulink.io.FileType.isFileSupported
| loadImpl
| loadAVariableImpl
| validateFileNameImpl
| whosImpl