自動コード生成を目的とした Simulink モデルがあります。
私のモデルは、パスに関するハードコーディングされた仮定を持つ S-Function (別のパーティによって開発されたもの) を使用しています。たとえば、いくつかの外部データ ファイルが必要であり、これらは のような相対パスを介して S-Function で参照されます..\Bin\data\datafile.bin
。このため、モデルを実行する前に、MATLAB の現在の作業ディレクトリを特定のパスに設定する必要があります。
モデルのコールバック関数を介して、正しいパスを自動的に確認して設定できます。ただし、すべてのモデル コールバック関数は、ビルド プロセスではなく、シミュレーション プロセスにのみ関連しているようです。つまり、現在のディレクトリに関係なくモデルを実行できますが、モデルをビルドしようとすると、手動で MATLAB を正しいディレクトリに戻さない限り、常に失敗します。
言うまでもなく、それはかなり面倒です。それで、ビルドプロセスを開始する前に実行される関数である「preBuildFcn」コールバック関数のようなものがあるかどうか疑問に思っていましたか? 他のソリューション (S-Function の変更を伴わないもの) も大歓迎です。