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

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

 Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 28 de Dic. de 2009

0 votos

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

Más respuestas (0)

Categorías

Más información sobre Author Block Masks en Centro de ayuda y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!