我有一个Simulink模型和一个在应用程序设计器中制作的GUI,我可以从中控制所述模型。到目前为止,我已经能够让GUI和Simulink模型以两种方式进行通信。 GUI使用set_param
在模型中设置参数常量块,而模型使用add_exec_event_listener
通过回调更新GUI。 GUI对象位于模型工作区中。
在模型StartFcn
的启动回调中,我有以下代码
set(0,'ShowHiddenHandles','on');
blk = [model '/q-log']; % Block to bind listener to
event = 'PostOutputs'; % Event to bind to (fired at every sample)
app = getVariable(get_param(bdroot,'ModelWorkspace'),'app'); % The GUI
% The GUI is passed into the event handler and updated at every timestep
listener = @(obj,event) updategui(obj,event,app);
h = add_exec_event_listener(blk, event, listener);
此设置的问题在于它非常慢。我不太确定如何更快地获得它,如果这是要走的路。我已经看了很多例子,但没有详细说明我的需求。
所以我的问题是,是否有更快或更有效的方式来更新GUI字段和图表?它不必是实时的硬件,但是将变量写入工作空间并将其导入GUI之后是不可接受的。