본문 바로가기

MATLAB/ㄴ 앱 디자이너

프로그래밍 방식으로 구성된 timer 객체가 있는 앱 생성하기

 

https://kr.mathworks.com/help/matlab/creating_guis/memory-monitor-gui-in-app-designer.html

 

프로그래밍 방식으로 구성된 timer 객체가 있는 앱 생성하기 - MATLAB & Simulink - MathWorks 한국

이 예제의 수정된 버전이 있습니다. 사용자가 편집한 내용을 반영하여 이 예제를 여시겠습니까?

kr.mathworks.com

 

 

 

핵심코드

 

1) Properties (Access = Private)

 

프로그램 코드 작성 시 사용할 변수 선언


    properties (Access = private)
        RandTimer
        PlotLine
    end
    

 

2) methods (Access = Private)

 

2-1) 

 그래프에 새로운 무작위 데이터를 추가하고, 기존의 데이터는 한 칸씩 오른쪽으로 이동시키는 동적인 효과를 갖는 함수

 

        function RandTimerFcn(app, ~, ~)
            randnum = rand;

            ydata = app.PlotLine.YData;
            ydata = circshift(ydata, 1);
            ydata(1) = randnum;
            app.PlotLine.YData = ydata;
        end
        

 

3) Callback Function

 

3-1) 앱이 시작될 때 데이터 로딩 및 초기화를 수행하는 기능


        function startupFcn(app)
            app.UIAxes.XLim = [0 60];
            app.UIAxes.XDir = "reverse";
            app.UIAxes.YLim = [0 1];

            app.PlotLine = plot(app.UIAxes, 0:60, zeros(1,61));

            app.RandTimer = timer( ...
                "ExecutionMode","fixedRate", ...
                "Period",1, ...
                "BusyMode","queue", ...
                "TimerFcn",@app.RandTimerFcn);
        end

 

 

3-2) Start 버튼이 눌릴 때 호출되는 함수


        function StartButtonPushed(app, event)
            if strcmp(app.RandTimer.Running, "off")
                start(app.RandTimer);
            end
        end


 

3-3) Stop 버튼이 눌릴 때 호출되는 함수


        function StopButtonPushed(app, event)
            stop(app.RandTimer);
            delete(app.RandTimer);
            delete(app);
        end