gagmeng 发表于 2008-1-24 09:50

关于模块的封装,请高手帮忙!!!

在模块的封装时,想用一个checkbox的相应变量来控制其他变量的使能与否,在checkbox相应变量的回调函数里输入set_param(gcb,'MaskCallbacks',{'','','','','WaveSelector_Callback'});再建立一个m文件编写一个回调函数WaveSelector_Callback( ),m文件的实现如下:
function WaveSelector_Callback( )
if str2num(get_param(gcb,'show'))==1
   set_param(gcb,'MaskEnables',{'on','on','off', 'off','on'});
else
   set_param(gcb,'MaskEnables',{'on','on','on', 'on','on'});
end
但是在模型封装好之后,双击模块勾选checkbox确定后提示变量show没有定义.
不知道 checkbox的值是不是获取方法有误,还是有其他的原因,还请高手指点!!!

gagmeng 发表于 2008-1-24 12:29

高手帮忙啊!!!

gagmeng 发表于 2008-1-25 09:26

witty01和花如月两位高手在吗,还请指教啊!!!

witty01 发表于 2008-1-25 13:55

:@) ,花如月是高手,我可不是
首先你的语句我不是很懂,
但是,你把这个语句放在checkbox的callback里面肯定是不对的,
你没看封装的帮助文件吧,里面有一句话
Callbacks are not intended to be used to alter the contents of a masked
subsystem. Altering a masked subsystem's contents in a callback, for example
by adding or deleting blocks or changing block parameter values, can trigger
errors during model update or simulation. If you need to modify the contents
of a masked subsystem, use the mask's initialization code to perform the modifications。
所以你应该把他放在initialization标签里面

在maskedit的对话框里面点击help就可以看到封装的帮助

gagmeng 发表于 2008-1-28 10:20

witty01你好,如果改在initialization中实现的话,这些语句只执行一次,不能达到勾选checkbox与否动态改变参数设置的使能状态的目的.看了一些matlab中自带的电机模块,它也把这个语句放在checkbox的callback里面,只是它用的powericon( )函数不知道怎么实现!

witty01 发表于 2008-1-28 12:55

电机模型的checkbox并没有动态啊,参数在仿真的过程中都是不变的, 我觉得它那个checkbox只是决定是否显示下面的参数吧。

gagmeng 发表于 2008-1-29 09:09

我使用checkbox就是要实现这种功能,还请指教啊!!!

witty01 发表于 2008-1-29 15:54

你要的是事实改变参数吗?
老实说用你的思路怎样实现我不会
我在处理这个问题的时候是把变化的参数作为一个输入
我觉得只有从其它模块传递来的参数是实时变化的

gagmeng 发表于 2008-1-29 16:12

witty01,你好,你的意思我明白了,如果我把动态参数用一个外界输入,checkbox只是用来控制一些参数的使能与否,checkbox的状态怎么获取?又怎么用它来控制其它参数的使能状态呢?很谢谢您这么热心,感谢!!!

witty01 发表于 2008-1-29 16:34

个人认为:checkbox不能控制什么的
至于实现其它参数的使能与否我也正在考虑这个问题
还没想出来,下个月一定要想出来,我的工作计划啊,:lol
一起想吧

gagmeng 发表于 2008-1-29 16:41

好的,总想把自己的模型封装的和matlab自带模型一样,不过内部的很多东西我们都看不到,一起努力!!!在线的时候多登陆一下QQ,这样方便交流哦!!!

witty01 发表于 2008-1-29 16:58

不行,单位不让上QQ,会扣钱,还要影响部门KPI

gagmeng 发表于 2008-1-29 17:02

哦,那我以后在论坛里发短消息给你请教问题!!!
页: [1]
查看完整版本: 关于模块的封装,请高手帮忙!!!