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

ライブラリに登録するサブシステムにおいて、サブシステム内部のブロックパラメータをマスクパラメータとして
設定し、ダイアログのコールバックを記述します。
 サブシステム上でマウス右クリック
 → マスクの表示
   → パラメータペインでダイアログパラメータの設定
     → 一般的なオプションのダイアログのコールバックに、パラメータ変更の記述
例えば、本ページ下部からダウンロードできる 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' のパラメータを優先しようとしています。

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2009년 12월 28일

0 개 추천

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Author Block Masks에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

Community Treasure Hunt

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

Start Hunting!