属性(访问=私人)
年代;
时间;
data = 0 (2, 1);
数= 0;
GREEN_COLOR = [0 1 0]
RED_COLOR = [1 0 0]
plotGraph
结束
方法(访问=私人)
函数closeApp_Callback(应用程序、~、事件)
开关event.SelectedOption
情况下“好吧”
BConButtonPushed (app, [])
删除(应用)
情况下“取消”
结束
结束
结束
方法(访问=私人)
函数startupFcn(应用)
p = instrhwinfo (“串行”);
app.PortList。项= p.AvailableSerialPorts;
结束
函数StartPlotButtonPushed(应用程序、事件)
app.time = 0;
plotGrid =“上”;
max = 300;
最小值= 200;
延迟= . 01;
ax = app.UIAxes;
app.plotGraph =情节(ax, app.time, app.data (1:)“- r”);
持有(app.UIAxes“上”)
plotGraph1 =情节(ax, app.time, app.data (2:)“- m”);
持有(app.UIAxes“关闭”)
轴(ax,[0 10分钟max]);
网格(ax, plotGrid);
抽搐
而ishandle (app.plotGraph)
dat = fscanf(的应用,' % f ');
如果(~ isempty (dat) & & isfloat (dat))
app.count = app.count + 1;
app.time (app.count) = toc;
app.data (:, app.count) = dat (: 1);
集(app.plotGraph,“XData”app.time,“YData”:app.data (2));
集(plotGraph1,“XData”app.time,“YData”app.data (:));
轴(ax, [0 app.time (app.count)分钟马克斯]);
暂停(延迟);
结束
结束
结束
函数SaveDataButtonPushed(应用程序、事件)
t =表(app.data);
writetable (t)“test.xlsx”,“表”1);
结束
函数StopButtonPushed(应用程序、事件)
如果app.time.running = =“上”
停止(app.time);
stopasync(应用)
文件关闭(的应用);
结束
结束
函数UIFigureCloseRequest(应用程序、事件)
问题=“关闭应用程序?”;
uiconfirm(应用程序。UIFigure,问题,确认关闭的,…
“CloseFcn”@ (src、事件)closeApp_Callback(应用程序、src、事件));
结束
函数BConButtonPushed(应用程序、事件)
应用=串行(app.PortList.Value);
fopen(的应用);
app.ConnLamp。颜色= app.GREEN_COLOR;
结束
函数BDisconButtonPushed(应用程序、事件)
如果app.time.running = =“上”
停止(app.t);
如果~ app.data
stopasync(应用)
文件关闭(的应用);
结束
app.Lamp。颜色= app.RED_COLOR;
结束
app.ConnLamp。颜色= app.RED_COLOR;
结束
函数RefreshButtonPushed(应用程序、事件)
删除(instrfind);
p = instrhwinfo (“串行”);
app.PortList。项= p.AvailableSerialPorts;
结束
函数ResetButtonPushed(应用程序、事件)
班(app.UIAxes)
结束
结束
方法(访问=私人)
函数createcomponent(应用)
app.UIFigure = uifigure (“可见”,“关闭”);
app.UIFigure。位置= (100 100 1255 764);
app.UIFigure。Name =MATLAB应用程序的;
app.UIFigure。关闭RequestFcn = createCallbackFcn(app, @UIFigureCloseRequest, true);
app.Panel = uipanel (app.UIFigure);
app.Panel。Title =“小组”;
app.Panel。位置= [2 2 546 763);
app.HardwarePanel = uipanel (app.Panel);
app.HardwarePanel。Title =“硬件”;
app.HardwarePanel。位置= (10 560 527 95);
app.GridLayout11 = uigridlayout (app.HardwarePanel);
app.GridLayout11。ColumnWidth = {“1 x”,“3 x”};
app.GridLayout11。填充= [5 5 5 5];
app.Refresh = uibutton (app.GridLayout11,“推”);
app.Refresh。ButtonPushedFcn = createCallbackFcn(应用,@RefreshButtonPushed,真实);
app.Refresh.Layout。行= 2;
app.Refresh.Layout。列= 2;
app.Refresh。文本=“刷新”;
app.PortLabel = uilabel (app.GridLayout11);
app.PortLabel。HorizontalAlignment =“对”;
app.PortLabel.Layout。行= 1;
app.PortLabel.Layout。列= 1;
app.PortLabel。文本=“端口”;
app.PortList = uidropdown (app.GridLayout11);
app.PortList。项= {“COM ?”};
app.PortList。可编辑的=“上”;
app.PortList。写成BackgroundColor = (1 1 1);
app.PortList.Layout。行= 1;
app.PortList.Layout。列= 2;
app.PortList。值=“COM ?”;
app.Panel_2 = uipanel (app.Panel);
app.Panel_2。位置= (12 654 525 80);
app.BCon = uibutton (app.Panel_2,“推”);
app.BCon。ButtonPushedFcn = createCallbackFcn(应用,@BConButtonPushed,真实);
app.BCon。位置= (44 19 112 23);
app.BCon。文本=“连接”;
app.BDiscon = uibutton (app.Panel_2,“推”);
app.BDiscon。ButtonPushedFcn = createCallbackFcn(应用,@BDisconButtonPushed,真实);
app.BDiscon。位置=(227年19 124年23);
app.BDiscon。文本=“断开”;
app.ConnLamp = uilamp (app.Panel_2);
app.ConnLamp。位置= (418 19 32 32);
app.ConnLamp。颜色= (1 0 0);
app.ConnecttoHardwarefirstLabel = uilabel (app.Panel_2);
app.ConnecttoHardwarefirstLabel。FontWeight =“大胆”;
app.ConnecttoHardwarefirstLabel。FontColor = (1 0 0);
app.ConnecttoHardwarefirstLabel。位置= [5 52 152 22];
app.ConnecttoHardwarefirstLabel。文本=“连接硬件第一”;
app.y_axis_1_menu = uidropdown (app.Panel);
app.y_axis_1_menu。项= {“选择…”,通道1的,通道2的,通道3的,“第四频道”,“第5频道”,“六频道”,“频道7”,“8频道”,“频道9”};
app.y_axis_1_menu。标签=“y_axis_1_menu”;
app.y_axis_1_menu。字形大小= 10.6666666666667;
app.y_axis_1_menu。写成BackgroundColor = (0.729411764705882 0.831372549019608 0.956862745098039);
app.y_axis_1_menu。位置= [39 507 132 22];
app.y_axis_1_menu。值=“选择…”;
app.Panel2 = uipanel (app.UIFigure);
app.Panel2。Title =“Panel2”;
app.Panel2。位置= (545 711 666);
app.UIAxes = uiaxes (app.Panel2);
标题(app.UIAxes,示波器的)
包含(app.UIAxes“时间(s)”)
ylabel (app.UIAxes“数据”)
zlabel (app.UIAxes“Z”)
app.UIAxes。XLim = 50 [0];
app.UIAxes。YLim = (-1.5 - 1.5);
app.UIAxes。XTick = [0 5 10 15 20 25 30 35 40 45 50);
app.UIAxes。XGrid =“上”;
app.UIAxes。YGrid =“上”;
app.UIAxes。位置= [55 653 614];
app.Panel3 = uipanel (app.UIFigure);
app.Panel3。Title =“Panel3”;
app.Panel3。位置= (547 667 712 99);
app.StartPlotButton = uibutton (app.Panel3,“推”);
app.StartPlotButton。ButtonPushedFcn = createCallbackFcn(应用,@StartPlotButtonPushed,真实);
app.StartPlotButton。写成BackgroundColor = (0.3294 0.9216 0.3294);
app.StartPlotButton。FontWeight =“大胆”;
app.StartPlotButton。FontColor = (0.149 0.149 0.149);
app.StartPlotButton。位置= (70 100 47);
app.StartPlotButton。文本=“开始阴谋”;
app.StopButton = uibutton (app.Panel3,“推”);
app.StopButton。ButtonPushedFcn = createCallbackFcn(应用,@StopButtonPushed,真实);
app.StopButton。写成BackgroundColor = (1 0 0);
app.StopButton。FontWeight =“大胆”;
app.StopButton。FontColor = (0.149 0.149 0.149);
app.StopButton。位置=[218年18 100年47];
app.StopButton。文本=“停止”;
app.SaveDataButton = uibutton (app.Panel3,“推”);
app.SaveDataButton。ButtonPushedFcn = createCallbackFcn(应用,@SaveDataButtonPushed,真实);
app.SaveDataButton。写成BackgroundColor = (0.8 0.8 0.8);
app.SaveDataButton。FontWeight =“大胆”;
app.SaveDataButton。FontColor = (0.149 0.149 0.149);
app.SaveDataButton。位置= (516 100 47);
app.SaveDataButton。文本=“保存数据”;
app.ResetButton = uibutton (app.Panel3,“推”);
app.ResetButton。ButtonPushedFcn = createCallbackFcn(应用,@ResetButtonPushed,真实);
app.ResetButton。写成BackgroundColor = [0 1 1];
app.ResetButton。FontWeight =“大胆”;
app.ResetButton。FontColor = (0.149 0.149 0.149);
app.ResetButton。位置=[360年18 100年47];
app.ResetButton。文本=“重置”;
app.UIFigure。可见=“上”;
结束
结束
方法(=公共访问)
函数应用= OscilloscopeGUI
createcomponent(应用)
app.UIFigure registerApp(应用)
@startupFcn runStartupFcn(应用)
如果nargout = = 0
清晰的应用程序
结束
结束
函数删除(应用)
删除(app.UIFigure)
结束
结束
结束