微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么从matlab应用设计器的新gui中显示的add_exec_event_listener数据中接收到数据?

如何解决为什么从matlab应用设计器的新gui中显示的add_exec_event_listener数据中接收到数据?

我试图从simulink模型获取实时数据并在gui上显示,所以我在https://www.mathworks.com/matlabcentral/answers/446302-how-do-i-update-a-gui-designed-in-app-designer-with-data-from-a-running-simulink-model的Simulink模型回调中使用add_exec_event_listener 问题在于,函数updateGUI执行的所有结果都显示在新的GUI中(新的gui打开一次,而不是每次执行函数时都会打开)。 问题是:如何在不打开新GUI的情况下在主GUI中显示从侦听器接收到的数据。 这是updateGUI函数代码

methods (Access = public)
        
   %Listener    
        function updateGUI(app,varargin)
            % Create an object that gets the run-time value of the specified block
            rto = get_param([bdroot,'/Gain'],'RuntimeObject');
            currentTime = rto.CurrentTime;
            app.SimTime.Text = num2str(currentTime);
            % Update the GUI accordingly
            sdrData = rto.InputPort(1).Data;
            h1=plot(app.UIAxes,1,'r'); 
            sdrData=sdrData.*app.W;
            sdrFft = fftshift(fft(sdrData));
            sdrFft=20*log10((abs(sdrFft))/2048);
            % Refresh plot
            set(h1,'XData',app.freqvec);
            set(h1,'YData',sdrFft);
            refreshdata(app.UIAxes);
            drawNow;
          end 
end

Here is callback where simulink model executes.

 function StartButtonPushed(app,event)
            app.StopButton.Enable = 'on';
            app.StartButton.Enable = 'off';
            set_param('gsmAdGui2/Constant','Value',num2str(app.CenterFreqEditField.Value));
            set_param('gsmAdGui2/Constant1',num2str(app.GainEditField.Value));
            out=sim('gsmAdGui2','StartTime','0','StopTime',num2str(app.StopTimeEditField.Value));
 end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。