ライブラリに登録した​マスクサブシステムに​おいて、マスクエディ​タのコールバックから​内部のブロックへの変​更を加えようとする場​合に、エラーとなるの​はなぜですか?

ライブラリに登録するサブシステムにおいて、サブシステム内部のブロックパラメータをマスクパラメータとして
設定し、ダイアログのコールバックを記述します。
 サブシステム上でマウス右クリック
 → マスクの表示
   → パラメータペインでダイアログパラメータの設定
     → 一般的なオプションのダイアログのコールバックに、パラメータ変更の記述
例えば、本ページ下部からダウンロードできる lib ファイルのように、ダイアログのコールバックにて、
サブシステム内部の Product ブロックの「整数オーバーフローで飽和」のチェックをする記述をします。
flag = get_param(gcb,'SaturateOnIntegerOverflow')
products = find_system(gcb,'FollowLinks','on','LookUnderMasks','all','Name', 'Product1')
for idx = 1 : length(products)
set_param(products{idx},'SaturateOnIntegerOverflow',flag)
end
このように設定したブロックを Testmodel.mdl モデル上にインポートし、ブロックをマウスダブルクリックしてパラメータの設定を
行おうとしても、次のエラーが発生し、設定ができません。
複数の原因によるエラー
--> ライブラリリンク内にある 'Testmodel/lib/Product1' のパラメータを優先しようとしています。
--> SubSystem block (mask) 'Testmodel/lib/Product1' 'MaskCallback' コールバックの実行中にエラーが発生しました。
ライブラリリンク内にある 'Testmodel/lib/Product1' のパラメータを優先しようとしています。

 Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 28 Déc 2009

0 votes

この動作でエラーが発生することは、想定されている通りの動作です。マスクエディタの初期化ペインで、
「ライブラリブロックが内容を修正することを許可」の設定にチェックを入れることで、モデル上から内部の
ブロックのパラメータ設定変更反映をすることができます。

Plus de réponses (0)

Catégories

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!