Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Arduino4D_Robot
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
CLEAR
Arduino4D_Robot
Commits
c4195eac
Commit
c4195eac
authored
1 year ago
by
Vilde Rieker
Browse files
Options
Downloads
Patches
Plain Diff
removed excess files
parent
ad6a4a5a
Branches
Branches containing commit
No related tags found
1 merge request
!20
Doublefilter
Changes
2
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
MatLab/Robot_GUI_exported.asv
+0
-1394
0 additions, 1394 deletions
MatLab/Robot_GUI_exported.asv
MatLab/Robot_GUI_exported2.m
+0
-1195
0 additions, 1195 deletions
MatLab/Robot_GUI_exported2.m
with
0 additions
and
2589 deletions
MatLab/Robot_GUI_exported.asv
deleted
100644 → 0
+
0
−
1394
View file @
ad6a4a5a
classdef Robot_GUI_exported < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
GridLayout matlab.ui.container.GridLayout
LeftPanel matlab.ui.container.Panel
Emergency_Button matlab.ui.control.Lamp
EmergencybuttonLabel matlab.ui.control.Label
BlacklineLabel_13 matlab.ui.control.Label
BlacklineLabel_10 matlab.ui.control.Label
UpdatestatusButton matlab.ui.control.Button
TemperaturesTextAreaLabel matlab.ui.control.Label
TemperaturesTextArea matlab.ui.control.TextArea
TemperaturesTextArea_2 matlab.ui.control.TextArea
ZeroseeksLabel matlab.ui.control.Label
BlacklineLabel_9 matlab.ui.control.Label
BlacklineLabel_8 matlab.ui.control.Label
BlacklineLabel_7 matlab.ui.control.Label
BlacklineLabel_6 matlab.ui.control.Label
Tempprobe2CLabel matlab.ui.control.Label
Tempprobe1CLabel matlab.ui.control.Label
BlacklineLabel_5 matlab.ui.control.Label
GettemperaturesButton matlab.ui.control.Button
BlacklineLabel_4 matlab.ui.control.Label
BlacklineLabel matlab.ui.control.Label
GrabberstatusLabel matlab.ui.control.Label
AbsLamp_Z_max matlab.ui.control.Lamp
AbsLamp_Y_max matlab.ui.control.Lamp
AbsLamp_X_max matlab.ui.control.Lamp
AbsLamp_Z_min matlab.ui.control.Lamp
AbsLamp_Y_min matlab.ui.control.Lamp
ZLabel matlab.ui.control.Label
YLabel matlab.ui.control.Label
XLabel matlab.ui.control.Label
MaxLabel matlab.ui.control.Label
MinLabel matlab.ui.control.Label
AbsLamp_X_min matlab.ui.control.Lamp
LimitswitchesLabel matlab.ui.control.Label
StepperStatusTextArea matlab.ui.control.EditField
StepperstatusLabel matlab.ui.control.Label
AbsoluteZTextArea matlab.ui.control.EditField
AbsoluteYTextArea matlab.ui.control.EditField
AbsoluteXTextArea matlab.ui.control.EditField
GrabberstatusTextArea matlab.ui.control.TextArea
AbsLamp_Y matlab.ui.control.Lamp
AbsLamp_Z matlab.ui.control.Lamp
AbsLamp_X matlab.ui.control.Lamp
ZeroseekZButton matlab.ui.control.Button
ZeroseekYButton matlab.ui.control.Button
ZeroseekXButton matlab.ui.control.Button
CenterPanel matlab.ui.container.Panel
TabGroup matlab.ui.container.TabGroup
PlotsTab matlab.ui.container.Tab
Image2 matlab.ui.control.Image
BlacklineLabel_11 matlab.ui.control.Label
PositionplotsLabel matlab.ui.control.Label
UIAxes_6 matlab.ui.control.UIAxes
UIAxes_5 matlab.ui.control.UIAxes
UIAxes_4 matlab.ui.control.UIAxes
DebugTab matlab.ui.container.Tab
BlacklineLabel_12 matlab.ui.control.Label
DebugLabel matlab.ui.control.Label
RawHistory matlab.ui.control.ListBox
RightPanel matlab.ui.container.Panel
Image matlab.ui.control.Image
FiltersLabel matlab.ui.control.Label
FilterINButton matlab.ui.control.Button
FilterOUTButton matlab.ui.control.Button
Panel matlab.ui.container.Panel
GridLayout2 matlab.ui.container.GridLayout
GrabHolders
GrabHolder_32 matlab.ui.control.StateButton
GrabHolder_31 matlab.ui.control.StateButton
GrabHolder_30 matlab.ui.control.StateButton
GrabHolder_29 matlab.ui.control.StateButton
GrabHolder_28 matlab.ui.control.StateButton
GrabHolder_27 matlab.ui.control.StateButton
GrabHolder_26 matlab.ui.control.StateButton
GrabHolder_25 matlab.ui.control.StateButton
GrabHolder_23 matlab.ui.control.StateButton
GrabHolder_12 matlab.ui.control.StateButton
GrabHolder_24 matlab.ui.control.StateButton
GrabHolder_22 matlab.ui.control.StateButton
GrabHolder_21 matlab.ui.control.StateButton
GrabHolder_20 matlab.ui.control.StateButton
GrabHolder_19 matlab.ui.control.StateButton
GrabHolder_18 matlab.ui.control.StateButton
GrabHolder_17 matlab.ui.control.StateButton
GrabHolder_16 matlab.ui.control.StateButton
GrabHolder_15 matlab.ui.control.StateButton
GrabHolder_14 matlab.ui.control.StateButton
GrabHolder_13 matlab.ui.control.StateButton
GrabHolder_11 matlab.ui.control.StateButton
GrabHolder_10 matlab.ui.control.StateButton
GrabHolder_09 matlab.ui.control.StateButton
GrabHolder_08 matlab.ui.control.StateButton
GrabHolder_07 matlab.ui.control.StateButton
GrabHolder_06 matlab.ui.control.StateButton
GrabHolder_05 matlab.ui.control.StateButton
GrabHolder_04 matlab.ui.control.StateButton
GrabHolder_03 matlab.ui.control.StateButton
GrabHolder_02 matlab.ui.control.StateButton
GrabHolder_01 matlab.ui.control.StateButton
XpositioninbeammmEditField matlab.ui.control.NumericEditField
XpositioninbeammmEditFieldLabel matlab.ui.control.Label
LastCommandTextArea matlab.ui.control.TextArea
LastCommandTextAreaLabel matlab.ui.control.Label
PutHolderInBeam matlab.ui.control.Button
BlacklineLabel_3 matlab.ui.control.Label
ControlsLabel matlab.ui.control.Label
SelecttheholdertopickupLabel matlab.ui.control.Label
BringbackholderButton matlab.ui.control.Button
StatusandChecksLabel matlab.ui.control.Label
end
% Properties that correspond to apps with auto-reflow
properties (Access = private)
onePanelWidth = 576;
twoPanelWidth = 768;
end
properties (Access = private)
conn = [];
Pos_hold_idx = NaN;
Pos_hold_X = NaN;
Pos_hold_Y = NaN;
Pos_hold_Z = NaN;
StepperIsMoving = NaN;
Pos_holders = [225 250 2225; ...
225 1825 2225; ...
717 250 2225; ...
717 1825 2225; ...
1198 250 2225; ...
1198 1825 2225; ...
1679 250 2225; ...
1679 1825 2225; ...
2160 250 2225; ...
2160 1825 2225; ...
2641 250 2225; ...
2641 1825 2225; ...
3122 250 2225; ...
3122 1825 2225; ...
3603 250 2225; ...
3603 1825 2225; ...
4084 250 2225; ...
4084 1825 2225; ...
4565 250 2225; ...
4565 1825 2225; ...
5046 250 2225; ...
5046 1825 2225; ...
5527 250 2225; ...
5527 1825 2225; ...
6008 250 2225; ...
6008 1825 2225; ...
6489 250 2225; ...
6489 1825 2225; ...
6970 250 2225; ...
6970 1825 2225; ...
7451 250 2225; ...
7451 1825 2225; ...
7932 250 2225; ...
8413 1825 2225];
%List of all holder buttons,
% not possible to generate programattically in AppDesigner
% so it has to be manually maintained (to be sure it's in the right order)...
grabHolderButts = [];
end
methods (Access = private)
function robotCallBack(app,stepper,grabber,temp, filters)
disp(['UPDATE: stepper=',num2str(stepper), ...
', grabber=',num2str(grabber), ...
', temp=', num2str(temp), ...
', filter 1=', num2str(filters(1), ...
', filter 2=', num2str(filters(2))]);
disp(app.conn)
if temp
app.TemperaturesTextArea.Value = num2str(app.conn.temps(1));
app.TemperaturesTextArea_2.Value = num2str(app.conn.temps(2));
end
if stepper
%Local copies of state variables for easy referencing
Pos_X = app.conn.stepperPos(1);
Pos_Y = app.conn.stepperPos(2);
Pos_Z = app.conn.stepperPos(3);
Abs_X = app.conn.stepperAbs(1);
Abs_Y = app.conn.stepperAbs(2);
Abs_Z = app.conn.stepperAbs(3);
LimLo_X = app.conn.stepperLimLo(1);
LimLo_Y = app.conn.stepperLimLo(2);
LimLo_Z = app.conn.stepperLimLo(3);
LimHi_X = app.conn.stepperLimHi(1);
LimHi_Y = app.conn.stepperLimHi(2);
LimHi_Z = app.conn.stepperLimHi(3);
app.StepperIsMoving = app.conn.stepperIsMoving;
%LastCommand
app.LastCommandTextArea.Value = num2str(app.conn.lastCommand);
%Plotting the position
axes(app.UIAxes_6);
scatter(app.UIAxes_6,Pos_X, Pos_Z,100,"red",'filled');
rectangle(app.UIAxes_6,'Position', [0 1400 8000 1600],'FaceColor',[1, .8, .8, 0.5],'EdgeColor','r','LineWidth',1)
text(app.UIAxes_6,2600,1750,'X/Y interlock region')
text(app.UIAxes_6,2600,2400,'Storage/Beam tank')
rectangle(app.UIAxes_6,'Position', [0 2000 8000 1000],'FaceColor',[0, 1, 1, 0.5],'EdgeColor','blue','LineWidth',1)
axes(app.UIAxes_5);
scatter(app.UIAxes_5,Pos_X, Pos_Y,100,"red",'filled');
rectangle(app.UIAxes_5,'Position', [0 0 8000 2000],'FaceColor',[0, 1, 1, 0.5],'EdgeColor','blue','LineWidth',1)
text(app.UIAxes_5,3000,1000,'Storage tank')
rectangle(app.UIAxes_5,'Position', [0 5280 8000 2720],'FaceColor',[0, 1, 1, 0.5],'EdgeColor','blue','LineWidth',1)
text(app.UIAxes_5,3000,6750,'Beam tank')
axes(app.UIAxes_4);
scatter(app.UIAxes_4,Pos_Y, Pos_Z,100,"red",'filled');
rectangle(app.UIAxes_4,'Position', [0 2000 2000 1000],'FaceColor',[0, 1, 1, 0.5],'EdgeColor','blue','LineWidth',1)
text(app.UIAxes_4,450,2500,'Storage')
rectangle(app.UIAxes_4,'Position', [5280 2000 2720 1000],'FaceColor',[0, 1, 1, 0.5],'EdgeColor','blue','LineWidth',1)
text(app.UIAxes_4,6200,2500,'Beam')
rectangle(app.UIAxes_4,'Position', [0 1400 8000 1600],'FaceColor',[1, .8, .8, 0.5],'EdgeColor','r','LineWidth',1)
text(app.UIAxes_4,2600,1750,'X/Y interlock region')
% axes(app.UIAxes_3);
%
% plot3(app.UIAxes_3,app.Pos_X,app.Pos_Y, app.Pos_Z,'.','Color','r','MarkerSize',40)
%
% app.UIAxes_3.View = [90 45];
% app.UIAxes_3.Projection = 'perspective';
% H=[0 8000 0 8000 0 8000 0 8000; 0 0 2000 2000 0 0 2000 2000; 3000 3000 3000 3000 1500 1500 1500 1500]; %Vertices of the cube
% S=[1 2 4 3; 1 2 6 5; 1 3 7 5; 3 4 8 7; 2 4 8 6; 5 6 8 7]; %Surfaces of the cube
% hold(app.UIAxes_3,"on")
% for i=1:size(S,1)
% Si=S(i,:);
% fill3(app.UIAxes_3,H(1,Si),H(2,Si),H(3,Si),[0, 1, 1],'facealpha',0.6)
% end
%
% H=[0 8000 0 8000 0 8000 0 8000; 6000 6000 8000 8000 6000 6000 8000 8000; 3000 3000 3000 3000 1500 1500 1500 1500]; %Vertices of the cube
% S=[1 2 4 3; 1 2 6 5; 1 3 7 5; 3 4 8 7; 2 4 8 6; 5 6 8 7]; %Surfaces of the cube
% hold(app.UIAxes_3,"on")
% for i=1:size(S,1)
% Si=S(i,:);
% fill3(app.UIAxes_3,H(1,Si),H(2,Si),H(3,Si),[0, 1, 1],'facealpha',0.6)
% end
% hold(app.UIAxes_3,"off")
%Light and text for Absolute/Relative
if Abs_X == 1
app.AbsoluteXTextArea.Value = "Absolute";
app.AbsLamp_X.Color = 'green';
else
app.AbsoluteXTextArea.Value = "Relative";
app.AbsLamp_X.Color = 'red';
end
if Abs_Y == 1
app.AbsoluteYTextArea.Value = "Absolute";
app.AbsLamp_Y.Color = 'green';
else
app.AbsoluteYTextArea.Value = "Relative";
app.AbsLamp_Y.Color = 'red';
end
if Abs_Z == 1
app.AbsoluteZTextArea.Value = "Absolute";
app.AbsLamp_Z.Color = 'green';
else
app.AbsoluteZTextArea.Value = "Relative";
app.AbsLamp_Z.Color = 'red';
end
%Stepper is moving Text area
if app.conn.stepperIsMoving == 1
app.StepperStatusTextArea.Value = "X stepper is moving";
end
if app.conn.stepperIsMoving == 2
app.StepperStatusTextArea.Value = "Y stepper is moving";
end
if app.conn.stepperIsMoving == 3
app.StepperStatusTextArea.Value = "Z stepper is moving";
end
if app.StepperIsMoving == 0
app.StepperStatusTextArea.Value = "Stepper is not moving";
end
%Light for limit switches
if LimLo_X == 1
app.AbsLamp_X_min.Color = 'green';
else
app.AbsLamp_X_min.Color = [0.8 0.8 0.8];
end
if LimLo_Y == 1
app.AbsLamp_Y_min.Color = 'green';
else
app.AbsLamp_Y_min.Color = [0.8 0.8 0.8];
end
if LimLo_Z == 1
app.AbsLamp_Z_min.Color = 'green';
else
app.AbsLamp_Z_min.Color = [0.8 0.8 0.8];
end
if LimHi_X == 1
app.AbsLamp_X_max.Color = 'green';
else
app.AbsLamp_X_max.Color = [0.8 0.8 0.8];
end
if LimHi_Y == 1
app.AbsLamp_Y_max.Color = 'green';
else
app.AbsLamp_Y_max.Color = [0.8 0.8 0.8];
end
if LimHi_Z == 1
app.AbsLamp_Z_max.Color = 'green';
else
app.AbsLamp_Z_max.Color = [0.8 0.8 0.8];
end
%Light for Emergency Button
if app.conn.isEmergencyStopped == 1
app.Emergency_Button.Color = 'green';
else
app.Emergency_Button.Color = [0.8 0.8 0.8];
end
end
%Status of the grabber
if grabber
if app.conn.grabberPos == app.conn.grabberOpenPos
app.GrabberstatusTextArea.Value = "Open";
elseif app.conn.grabberPos == app.conn.grabberClosedPos
app.GrabberstatusTextArea.Value = "Close";
else
app.GrabberstatusTextArea.Value = num2str(app.conn.grabberPos);
end
end
%Status of the filters
for i=1:filter_numFilters
if filters(i)
if app.conn.filterPos(i) == app.conn.filterInPos[i]
app.FilterINButton(i).BackgroundColor = 'green';
app.FilterOUTButton(i).BackgroundColor = 'red';
elseif app.conn.filterPos(i) == app.conn.filterOutPos[i]
app.FilterINButton(i).BackgroundColor = 'red';
app.FilterOUTButton(i).BackgroundColor = 'green';
end
end
end
end
function textCallBack(app,textLine)
txt = convertStringsToChars(textLine);
if isempty(app.RawHistory.Items) || isempty(app.RawHistory.Items{1})
app.RawHistory.Items{1} = txt;
else
app.RawHistory.Items{end+1} = txt;
end
scroll(app.RawHistory,'bottom');
end
function grabHolder(app,Pos_h_X,Pos_h_Y,Pos_h_Z)
app.conn.updateGrabberStatus
app.conn.grabberOpen;
app.conn.stepperGo('Z',50);
app.conn.stepperGo('X',Pos_h_X);
app.conn.stepperGo('Y',Pos_h_Y);
app.conn.stepperGo('Z',Pos_h_Z);
app.conn.grabberClose;
app.conn.updateGrabberStatus
end
end
% Callbacks that handle component events
methods (Access = private)
% Code that executes after component creation
function startupFcn(app)
app.conn = robotConnector("/dev/ttyACM0",@(obj,stepper,grabber,temp,filter) app.robotCallBack(stepper,grabber,temp,filter),@(obj,textLine) app.textCallBack(textLine));
%List of all holder buttons,
% not possible to generate programattically in AppDesigner
% so it has to be manually maintained (to be sure it's in the right order)...
% Also, it cannot be made earlier because the GUI must first create itself...
app.grabHolderButts = [app.GrabHolder_01, app.GrabHolder_02, app.GrabHolder_03, ...
app.GrabHolder_04, app.GrabHolder_05, app.GrabHolder_06, ...
app.GrabHolder_07, app.GrabHolder_08, app.GrabHolder_09, ...
app.GrabHolder_10, app.GrabHolder_11, app.GrabHolder_12, ...
app.GrabHolder_13, app.GrabHolder_14, app.GrabHolder_15, ...
app.GrabHolder_16, app.GrabHolder_17, app.GrabHolder_18, ...
app.GrabHolder_19, app.GrabHolder_20, app.GrabHolder_21, ...
app.GrabHolder_22, app.GrabHolder_23, app.GrabHolder_24, ...
app.GrabHolder_25, app.GrabHolder_26, app.GrabHolder_27, ...
app.GrabHolder_28, app.GrabHolder_29, app.GrabHolder_30, ...
app.GrabHolder_31, app.GrabHolder_32];
end
% Changes arrangement of the app based on UIFigure width
function updateAppLayout(app, event)
currentFigureWidth = app.UIFigure.Position(3);
if(currentFigureWidth <= app.onePanelWidth)
% Change to a 3x1 grid
app.GridLayout.RowHeight = {816, 816, 816};
app.GridLayout.ColumnWidth = {'1x'};
app.CenterPanel.Layout.Row = 1;
app.CenterPanel.Layout.Column = 1;
app.LeftPanel.Layout.Row = 2;
app.LeftPanel.Layout.Column = 1;
app.RightPanel.Layout.Row = 3;
app.RightPanel.Layout.Column = 1;
elseif (currentFigureWidth > app.onePanelWidth && currentFigureWidth <= app.twoPanelWidth)
% Change to a 2x2 grid
app.GridLayout.RowHeight = {816, 816};
app.GridLayout.ColumnWidth = {'1x', '1x'};
app.CenterPanel.Layout.Row = 1;
app.CenterPanel.Layout.Column = [1,2];
app.LeftPanel.Layout.Row = 2;
app.LeftPanel.Layout.Column = 1;
app.RightPanel.Layout.Row = 2;
app.RightPanel.Layout.Column = 2;
else
% Change to a 1x3 grid
app.GridLayout.RowHeight = {'1x'};
app.GridLayout.ColumnWidth = {220, '1x', 224};
app.LeftPanel.Layout.Row = 1;
app.LeftPanel.Layout.Column = 1;
app.CenterPanel.Layout.Row = 1;
app.CenterPanel.Layout.Column = 2;
app.RightPanel.Layout.Row = 1;
app.RightPanel.Layout.Column = 3;
end
end
% Button pushed function: ZeroseekXButton
function ZeroseekXButtonPushed(app, event)
app.conn.stepperZeroseek('X');
end
% Button pushed function: ZeroseekYButton
function ZeroseekYButtonPushed(app, event)
app.conn.stepperZeroseek('Y');
end
% Button pushed function: ZeroseekZButton
function ZeroseekZButtonPushed(app, event)
app.conn.stepperZeroseek('Z');
end
% Callback function: GettemperaturesButton, TemperaturesTextArea,
% TemperaturesTextArea_2
function GettempsButtonPushed(app, event)
app.conn.updateTemp;
end
% Button pushed function: PutHolderInBeam
function PutHolderInBeamPushed(app, event)
app.conn.updateGrabberStatus
app.conn.stepperGo('Z',50);
app.conn.stepperGo('Y',7210);
app.conn.stepperGo('X',app.XpositioninbeammmEditField.Value*7803/460+95*7803/460);
app.conn.stepperGo('Z',2340);
%Disable itself, enable bringback button
app.BringbackholderButton.Enable = true;
%Disable off all storage position buttons when in beam
for i = 1:length(app.grabHolderButts)
app.grabHolderButts(i).Enable = false;
end
end
% Button pushed function: BringbackholderButton
function BringbackholderButtonPushed(app, event)
if isnan(app.Pos_hold_idx)
error('No known holder position to bringback to?')
end
app.conn.stepperGo('Z',50);
app.conn.stepperGo('Y',app.Pos_hold_Y);
app.conn.stepperGo('X',app.Pos_hold_X);
app.conn.stepperGo('Z',app.Pos_hold_Z);
app.conn.grabberOpen;
app.conn.updateGrabberStatus()
app.Pos_hold_idx = NaN;
app.Pos_hold_X = NaN;
app.Pos_hold_Y = NaN;
app.Pos_hold_Z = NaN;
%Turn off all storage position buttons
for i = 1:length(app.grabHolderButts)
app.grabHolderButts(i).Value = false;
app.grabHolderButts(i).Enable = true;
end
%Disable itself
app.BringbackholderButton.Enable=false;
end
% Button pushed function: UpdatestatusButton
function UpdatestatusButtonPushed(app, event)
app.conn.updateStepperStatus;
app.conn.updateGrabberStatus
end
% Value changed function: GrabHolder_01, GrabHolder_02,
% GrabHolder_03, GrabHolder_04, GrabHolder_05, GrabHolder_06,
% GrabHolder_07, GrabHolder_08, GrabHolder_09, GrabHolder_10,
% GrabHolder_11, GrabHolder_12, GrabHolder_13, GrabHolder_14,
% GrabHolder_15, GrabHolder_16, GrabHolder_17, GrabHolder_18,
% GrabHolder_19, GrabHolder_20, GrabHolder_21, GrabHolder_22,
% GrabHolder_23, GrabHolder_24, GrabHolder_25, GrabHolder_26,
% GrabHolder_27, GrabHolder_28, GrabHolder_29, GrabHolder_30,
% GrabHolder_31, GrabHolder_32
function GrabHolder_ValueChanged(app, event)
%This function is called for ALL the GrabHolder_* buttons.
% It basically emulates a Toggle button group,
% but lets us set the position of the buttons freely.
% Note that only a physical user click on the button generates
% this callback, not just a .Value change (even if MATLAB says so)
%Which one was clicked?
idx = find(event.Source==app.grabHolderButts);
if isempty(idx)
error('Internal error: Could not find button in array')
end
value = event.Source.Value;
%Ignore button presses (incl. programmatical ones) to "off".
if value ~= 1
if idx == app.Pos_hold_idx
%Disp cannot turn off the active holder!
app.grabHolderButts(idx).Value = 1;
end
return;
end
%Turn off all other buttons
for i = 1:length(app.grabHolderButts)
if i == idx
continue
end
app.grabHolderButts(i).Value = 0;
end
%Update GUI class status
app.Pos_hold_idx = idx;
app.Pos_hold_X = app.Pos_holders(idx,1);
app.Pos_hold_Y = app.Pos_holders(idx,2);
app.Pos_hold_Z = app.Pos_holders(idx,3);
%Actually move the robot
app.conn.updateGrabberStatus();
app.conn.grabberOpen();
app.conn.stepperGo('Z',50);
app.conn.stepperGo('X',app.Pos_hold_X);
app.conn.stepperGo('Y',app.Pos_hold_Y);
app.conn.stepperGo('Z',app.Pos_hold_Z);
app.conn.grabberClose();
app.conn.updateGrabberStatus();
end
% Button pushed function: FilterINButton
function FilterINButtonPushed(app, event)
app.conn.filterIn;
end
% Button pushed function: FilterOUTButton
function FilterOUTButtonPushed(app, event)
app.conn.filterOut;
end
end
% Component initialization
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Create UIFigure and hide until all components are created
app.UIFigure = uifigure('Visible', 'off');
app.UIFigure.AutoResizeChildren = 'off';
app.UIFigure.Color = [1 1 1];
app.UIFigure.Position = [100 100 883 816];
app.UIFigure.Name = 'MATLAB App';
app.UIFigure.SizeChangedFcn = createCallbackFcn(app, @updateAppLayout, true);
% Create GridLayout
app.GridLayout = uigridlayout(app.UIFigure);
app.GridLayout.ColumnWidth = {220, '1x', 224};
app.GridLayout.RowHeight = {'1x'};
app.GridLayout.ColumnSpacing = 0;
app.GridLayout.RowSpacing = 0;
app.GridLayout.Padding = [0 0 0 0];
app.GridLayout.Scrollable = 'on';
% Create LeftPanel
app.LeftPanel = uipanel(app.GridLayout);
app.LeftPanel.Layout.Row = 1;
app.LeftPanel.Layout.Column = 1;
% Create ZeroseekXButton
app.ZeroseekXButton = uibutton(app.LeftPanel, 'push');
app.ZeroseekXButton.ButtonPushedFcn = createCallbackFcn(app, @ZeroseekXButtonPushed, true);
app.ZeroseekXButton.Position = [12 689 98 46];
app.ZeroseekXButton.Text = 'Zero seek X';
% Create ZeroseekYButton
app.ZeroseekYButton = uibutton(app.LeftPanel, 'push');
app.ZeroseekYButton.ButtonPushedFcn = createCallbackFcn(app, @ZeroseekYButtonPushed, true);
app.ZeroseekYButton.Position = [12 637 98 46];
app.ZeroseekYButton.Text = 'Zero seek Y';
% Create ZeroseekZButton
app.ZeroseekZButton = uibutton(app.LeftPanel, 'push');
app.ZeroseekZButton.ButtonPushedFcn = createCallbackFcn(app, @ZeroseekZButtonPushed, true);
app.ZeroseekZButton.Position = [12 585 98 46];
app.ZeroseekZButton.Text = 'Zero seek Z';
% Create AbsLamp_X
app.AbsLamp_X = uilamp(app.LeftPanel);
app.AbsLamp_X.Position = [192 701 20 20];
% Create AbsLamp_Z
app.AbsLamp_Z = uilamp(app.LeftPanel);
app.AbsLamp_Z.Position = [192 598 20 20];
% Create AbsLamp_Y
app.AbsLamp_Y = uilamp(app.LeftPanel);
app.AbsLamp_Y.Position = [192 649 20 20];
% Create GrabberstatusTextArea
app.GrabberstatusTextArea = uitextarea(app.LeftPanel);
app.GrabberstatusTextArea.HorizontalAlignment = 'center';
app.GrabberstatusTextArea.Position = [47 218 128 24];
% Create AbsoluteXTextArea
app.AbsoluteXTextArea = uieditfield(app.LeftPanel, 'text');
app.AbsoluteXTextArea.HorizontalAlignment = 'center';
app.AbsoluteXTextArea.Position = [118 700 65 22];
% Create AbsoluteYTextArea
app.AbsoluteYTextArea = uieditfield(app.LeftPanel, 'text');
app.AbsoluteYTextArea.HorizontalAlignment = 'center';
app.AbsoluteYTextArea.Position = [118 648 65 22];
% Create AbsoluteZTextArea
app.AbsoluteZTextArea = uieditfield(app.LeftPanel, 'text');
app.AbsoluteZTextArea.HorizontalAlignment = 'center';
app.AbsoluteZTextArea.Position = [118 597 65 22];
% Create StepperstatusLabel
app.StepperstatusLabel = uilabel(app.LeftPanel);
app.StepperstatusLabel.HorizontalAlignment = 'center';
app.StepperstatusLabel.FontSize = 14;
app.StepperstatusLabel.FontWeight = 'bold';
app.StepperstatusLabel.Position = [58 312 103 41];
app.StepperstatusLabel.Text = 'Stepper status';
% Create StepperStatusTextArea
app.StepperStatusTextArea = uieditfield(app.LeftPanel, 'text');
app.StepperStatusTextArea.HorizontalAlignment = 'center';
app.StepperStatusTextArea.FontSize = 14;
app.StepperStatusTextArea.FontWeight = 'bold';
app.StepperStatusTextArea.FontColor = [1 0 0];
app.StepperStatusTextArea.Position = [26 290 168 24];
% Create LimitswitchesLabel
app.LimitswitchesLabel = uilabel(app.LeftPanel);
app.LimitswitchesLabel.HorizontalAlignment = 'center';
app.LimitswitchesLabel.FontSize = 14;
app.LimitswitchesLabel.FontWeight = 'bold';
app.LimitswitchesLabel.Position = [59 543 102 41];
app.LimitswitchesLabel.Text = 'Limit switches';
% Create AbsLamp_X_min
app.AbsLamp_X_min = uilamp(app.LeftPanel);
app.AbsLamp_X_min.Position = [73 497 16 16];
app.AbsLamp_X_min.Color = [0.8 0.8 0.8];
% Create MinLabel
app.MinLabel = uilabel(app.LeftPanel);
app.MinLabel.HorizontalAlignment = 'center';
app.MinLabel.Position = [64 513 34 41];
app.MinLabel.Text = 'Min';
% Create MaxLabel
app.MaxLabel = uilabel(app.LeftPanel);
app.MaxLabel.HorizontalAlignment = 'center';
app.MaxLabel.Position = [119 513 34 41];
app.MaxLabel.Text = 'Max';
% Create XLabel
app.XLabel = uilabel(app.LeftPanel);
app.XLabel.HorizontalAlignment = 'center';
app.XLabel.Position = [22 485 34 41];
app.XLabel.Text = 'X';
% Create YLabel
app.YLabel = uilabel(app.LeftPanel);
app.YLabel.HorizontalAlignment = 'center';
app.YLabel.Position = [22 452 34 41];
app.YLabel.Text = 'Y';
% Create ZLabel
app.ZLabel = uilabel(app.LeftPanel);
app.ZLabel.HorizontalAlignment = 'center';
app.ZLabel.Position = [22 418 34 41];
app.ZLabel.Text = 'Z';
% Create AbsLamp_Y_min
app.AbsLamp_Y_min = uilamp(app.LeftPanel);
app.AbsLamp_Y_min.Position = [73 464 16 16];
app.AbsLamp_Y_min.Color = [0.8 0.8 0.8];
% Create AbsLamp_Z_min
app.AbsLamp_Z_min = uilamp(app.LeftPanel);
app.AbsLamp_Z_min.Position = [73 431 16 16];
app.AbsLamp_Z_min.Color = [0.8 0.8 0.8];
% Create AbsLamp_X_max
app.AbsLamp_X_max = uilamp(app.LeftPanel);
app.AbsLamp_X_max.Position = [128 497 16 16];
app.AbsLamp_X_max.Color = [0.8 0.8 0.8];
% Create AbsLamp_Y_max
app.AbsLamp_Y_max = uilamp(app.LeftPanel);
app.AbsLamp_Y_max.Position = [128 464 16 16];
app.AbsLamp_Y_max.Color = [0.8 0.8 0.8];
% Create AbsLamp_Z_max
app.AbsLamp_Z_max = uilamp(app.LeftPanel);
app.AbsLamp_Z_max.Position = [128 431 16 16];
app.AbsLamp_Z_max.Color = [0.8 0.8 0.8];
% Create GrabberstatusLabel
app.GrabberstatusLabel = uilabel(app.LeftPanel);
app.GrabberstatusLabel.HorizontalAlignment = 'center';
app.GrabberstatusLabel.FontSize = 14;
app.GrabberstatusLabel.FontWeight = 'bold';
app.GrabberstatusLabel.Position = [58 238 105 41];
app.GrabberstatusLabel.Text = 'Grabber status';
% Create BlacklineLabel
app.BlacklineLabel = uilabel(app.LeftPanel);
app.BlacklineLabel.BackgroundColor = [0 0 0];
app.BlacklineLabel.FontSize = 2;
app.BlacklineLabel.Position = [1 769 218 2];
app.BlacklineLabel.Text = 'Black line';
% Create BlacklineLabel_4
app.BlacklineLabel_4 = uilabel(app.LeftPanel);
app.BlacklineLabel_4.BackgroundColor = [0 0 0];
app.BlacklineLabel_4.FontSize = 2;
app.BlacklineLabel_4.Position = [1 578 218 1];
app.BlacklineLabel_4.Text = 'Black line';
% Create GettemperaturesButton
app.GettemperaturesButton = uibutton(app.LeftPanel, 'push');
app.GettemperaturesButton.ButtonPushedFcn = createCallbackFcn(app, @GettempsButtonPushed, true);
app.GettemperaturesButton.Tag = 'button_temps';
app.GettemperaturesButton.Position = [67 6 86 36];
app.GettemperaturesButton.Text = {'Get '; 'temperatures'};
% Create BlacklineLabel_5
app.BlacklineLabel_5 = uilabel(app.LeftPanel);
app.BlacklineLabel_5.BackgroundColor = [0 0 0];
app.BlacklineLabel_5.FontSize = 2;
app.BlacklineLabel_5.Position = [1 415 218 1];
app.BlacklineLabel_5.Text = 'Black line';
% Create Tempprobe1CLabel
app.Tempprobe1CLabel = uilabel(app.LeftPanel);
app.Tempprobe1CLabel.Position = [9 87 104 22];
app.Tempprobe1CLabel.Text = 'Temp probe 1 (°C)';
% Create Tempprobe2CLabel
app.Tempprobe2CLabel = uilabel(app.LeftPanel);
app.Tempprobe2CLabel.Position = [9 49 104 22];
app.Tempprobe2CLabel.Text = 'Temp probe 2 (°C)';
% Create BlacklineLabel_6
app.BlacklineLabel_6 = uilabel(app.LeftPanel);
app.BlacklineLabel_6.BackgroundColor = [0 0 0];
app.BlacklineLabel_6.FontSize = 2;
app.BlacklineLabel_6.Position = [1 276 218 1];
app.BlacklineLabel_6.Text = 'Black line';
% Create BlacklineLabel_7
app.BlacklineLabel_7 = uilabel(app.LeftPanel);
app.BlacklineLabel_7.BackgroundColor = [0 0 0];
app.BlacklineLabel_7.FontSize = 2;
app.BlacklineLabel_7.Position = [1 148 218 1];
app.BlacklineLabel_7.Text = 'Black line';
% Create BlacklineLabel_8
app.BlacklineLabel_8 = uilabel(app.LeftPanel);
app.BlacklineLabel_8.BackgroundColor = [0.8 0.8 0.8];
app.BlacklineLabel_8.FontSize = 2;
app.BlacklineLabel_8.Position = [45 546 129 1];
app.BlacklineLabel_8.Text = 'Black line';
% Create BlacklineLabel_9
app.BlacklineLabel_9 = uilabel(app.LeftPanel);
app.BlacklineLabel_9.BackgroundColor = [0.8 0.8 0.8];
app.BlacklineLabel_9.FontSize = 2;
app.BlacklineLabel_9.Position = [65 520 99 1];
app.BlacklineLabel_9.Text = 'Black line';
% Create ZeroseeksLabel
app.ZeroseeksLabel = uilabel(app.LeftPanel);
app.ZeroseeksLabel.HorizontalAlignment = 'center';
app.ZeroseeksLabel.FontSize = 14;
app.ZeroseeksLabel.FontWeight = 'bold';
app.ZeroseeksLabel.Position = [58 727 103 41];
app.ZeroseeksLabel.Text = 'Zero seeks';
% Create TemperaturesTextArea_2
app.TemperaturesTextArea_2 = uitextarea(app.LeftPanel);
app.TemperaturesTextArea_2.ValueChangedFcn = createCallbackFcn(app, @GettempsButtonPushed, true);
app.TemperaturesTextArea_2.Editable = 'off';
app.TemperaturesTextArea_2.HorizontalAlignment = 'center';
app.TemperaturesTextArea_2.Position = [120 48 93 24];
% Create TemperaturesTextArea
app.TemperaturesTextArea = uitextarea(app.LeftPanel);
app.TemperaturesTextArea.ValueChangedFcn = createCallbackFcn(app, @GettempsButtonPushed, true);
app.TemperaturesTextArea.Editable = 'off';
app.TemperaturesTextArea.HorizontalAlignment = 'center';
app.TemperaturesTextArea.Position = [119 85 93 24];
% Create TemperaturesTextAreaLabel
app.TemperaturesTextAreaLabel = uilabel(app.LeftPanel);
app.TemperaturesTextAreaLabel.HorizontalAlignment = 'right';
app.TemperaturesTextAreaLabel.FontSize = 14;
app.TemperaturesTextAreaLabel.FontWeight = 'bold';
app.TemperaturesTextAreaLabel.Position = [62 123 97 22];
app.TemperaturesTextAreaLabel.Text = 'Temperatures';
% Create UpdatestatusButton
app.UpdatestatusButton = uibutton(app.LeftPanel, 'push');
app.UpdatestatusButton.ButtonPushedFcn = createCallbackFcn(app, @UpdatestatusButtonPushed, true);
app.UpdatestatusButton.FontSize = 18;
app.UpdatestatusButton.Position = [49 164 127 29];
app.UpdatestatusButton.Text = 'Update status';
% Create BlacklineLabel_10
app.BlacklineLabel_10 = uilabel(app.LeftPanel);
app.BlacklineLabel_10.BackgroundColor = [0 0 0];
app.BlacklineLabel_10.FontSize = 2;
app.BlacklineLabel_10.Position = [1 209 218 1];
app.BlacklineLabel_10.Text = 'Black line';
% Create BlacklineLabel_13
app.BlacklineLabel_13 = uilabel(app.LeftPanel);
app.BlacklineLabel_13.BackgroundColor = [0 0 0];
app.BlacklineLabel_13.FontSize = 2;
app.BlacklineLabel_13.Position = [1 353 218 1];
app.BlacklineLabel_13.Text = 'Black line';
% Create EmergencybuttonLabel
app.EmergencybuttonLabel = uilabel(app.LeftPanel);
app.EmergencybuttonLabel.HorizontalAlignment = 'center';
app.EmergencybuttonLabel.FontSize = 14;
app.EmergencybuttonLabel.FontWeight = 'bold';
app.EmergencybuttonLabel.Position = [45 378 128 41];
app.EmergencybuttonLabel.Text = 'Emergency button';
% Create Emergency_Button
app.Emergency_Button = uilamp(app.LeftPanel);
app.Emergency_Button.Position = [99 362 20 20];
% Create CenterPanel
app.CenterPanel = uipanel(app.GridLayout);
app.CenterPanel.Layout.Row = 1;
app.CenterPanel.Layout.Column = 2;
% Create TabGroup
app.TabGroup = uitabgroup(app.CenterPanel);
app.TabGroup.TabLocation = 'bottom';
app.TabGroup.Position = [7 1 425 808];
% Create PlotsTab
app.PlotsTab = uitab(app.TabGroup);
app.PlotsTab.Title = 'Plots';
% Create UIAxes_4
app.UIAxes_4 = uiaxes(app.PlotsTab);
title(app.UIAxes_4, 'Position Z/Y')
xlabel(app.UIAxes_4, 'Y (steps)')
ylabel(app.UIAxes_4, 'Z (steps)')
zlabel(app.UIAxes_4, 'Z')
app.UIAxes_4.Toolbar.Visible = 'off';
app.UIAxes_4.XLim = [0 8000];
app.UIAxes_4.YLim = [0 3000];
app.UIAxes_4.YDir = 'reverse';
app.UIAxes_4.XTick = [0 2000 4000 6000 8000];
app.UIAxes_4.XTickLabel = {'0'; '2000'; '4000'; '6000'; '8000'};
app.UIAxes_4.YTick = [0 500 1000 1500 2000 2500 3000];
app.UIAxes_4.YTickLabel = {'0'; '500'; '1000'; '1500'; '2000'; '2500'; '3000'};
app.UIAxes_4.XGrid = 'on';
app.UIAxes_4.YGrid = 'on';
app.UIAxes_4.FontSize = 12;
app.UIAxes_4.Position = [13 6 403 236];
% Create UIAxes_5
app.UIAxes_5 = uiaxes(app.PlotsTab);
title(app.UIAxes_5, 'Position Y/X')
xlabel(app.UIAxes_5, 'X (steps)')
ylabel(app.UIAxes_5, 'Y (steps)')
zlabel(app.UIAxes_5, 'Z')
app.UIAxes_5.Toolbar.Visible = 'off';
app.UIAxes_5.XLim = [0 8000];
app.UIAxes_5.YLim = [0 8000];
app.UIAxes_5.XTick = [0 2000 4000 6000 8000];
app.UIAxes_5.XTickLabel = {'0'; '2000'; '4000'; '6000'; '8000'};
app.UIAxes_5.YTick = [0 2000 4000 6000 8000];
app.UIAxes_5.YTickLabel = {'0'; '2000'; '4000'; '6000'; '8000'};
app.UIAxes_5.XGrid = 'on';
app.UIAxes_5.YGrid = 'on';
app.UIAxes_5.FontSize = 12;
app.UIAxes_5.Position = [13 496 403 238];
% Create UIAxes_6
app.UIAxes_6 = uiaxes(app.PlotsTab);
title(app.UIAxes_6, 'Position Z/X')
xlabel(app.UIAxes_6, 'X (steps)')
ylabel(app.UIAxes_6, 'Z (steps)')
zlabel(app.UIAxes_6, 'Z')
app.UIAxes_6.Toolbar.Visible = 'off';
app.UIAxes_6.XLim = [0 8000];
app.UIAxes_6.YLim = [0 3000];
app.UIAxes_6.YDir = 'reverse';
app.UIAxes_6.XTick = [0 2000 4000 6000 8000];
app.UIAxes_6.XTickLabel = {'0'; '2000'; '4000'; '6000'; '8000'};
app.UIAxes_6.YTick = [0 500 1000 1500 2000 2500 3000];
app.UIAxes_6.YTickLabel = {'0'; '500'; '1000'; '1500'; '2000'; '2500'; '3000'};
app.UIAxes_6.XGrid = 'on';
app.UIAxes_6.YGrid = 'on';
app.UIAxes_6.FontSize = 12;
app.UIAxes_6.Position = [13 253 403 238];
% Create PositionplotsLabel
app.PositionplotsLabel = uilabel(app.PlotsTab);
app.PositionplotsLabel.HorizontalAlignment = 'center';
app.PositionplotsLabel.FontSize = 20;
app.PositionplotsLabel.FontWeight = 'bold';
app.PositionplotsLabel.Position = [118 745 180 43];
app.PositionplotsLabel.Text = 'Position plots';
% Create BlacklineLabel_11
app.BlacklineLabel_11 = uilabel(app.PlotsTab);
app.BlacklineLabel_11.BackgroundColor = [0 0 0];
app.BlacklineLabel_11.FontSize = 2;
app.BlacklineLabel_11.Position = [-3 744 418 2];
app.BlacklineLabel_11.Text = 'Black line';
% Create Image2
app.Image2 = uiimage(app.PlotsTab);
app.Image2.Position = [13 649 53 77];
app.Image2.ImageSource = 'e_beam.png';
% Create DebugTab
app.DebugTab = uitab(app.TabGroup);
app.DebugTab.Title = 'Debug';
% Create RawHistory
app.RawHistory = uilistbox(app.DebugTab);
app.RawHistory.Items = {};
app.RawHistory.FontSize = 10.4;
app.RawHistory.Position = [7 9 409 721];
app.RawHistory.Value = {};
% Create DebugLabel
app.DebugLabel = uilabel(app.DebugTab);
app.DebugLabel.HorizontalAlignment = 'center';
app.DebugLabel.FontSize = 20;
app.DebugLabel.FontWeight = 'bold';
app.DebugLabel.Position = [118 745 180 43];
app.DebugLabel.Text = 'Debug';
% Create BlacklineLabel_12
app.BlacklineLabel_12 = uilabel(app.DebugTab);
app.BlacklineLabel_12.BackgroundColor = [0 0 0];
app.BlacklineLabel_12.FontSize = 2;
app.BlacklineLabel_12.Position = [-5 745 435 2];
app.BlacklineLabel_12.Text = 'Black line';
% Create RightPanel
app.RightPanel = uipanel(app.GridLayout);
app.RightPanel.Layout.Row = 1;
app.RightPanel.Layout.Column = 3;
% Create BringbackholderButton
app.BringbackholderButton = uibutton(app.RightPanel, 'push');
app.BringbackholderButton.ButtonPushedFcn = createCallbackFcn(app, @BringbackholderButtonPushed, true);
app.BringbackholderButton.FontWeight = 'bold';
app.BringbackholderButton.Enable = 'off';
app.BringbackholderButton.Position = [51 223 132 38];
app.BringbackholderButton.Text = 'Bring back holder';
% Create SelecttheholdertopickupLabel
app.SelecttheholdertopickupLabel = uilabel(app.RightPanel);
app.SelecttheholdertopickupLabel.HorizontalAlignment = 'center';
app.SelecttheholdertopickupLabel.FontSize = 14;
app.SelecttheholdertopickupLabel.FontWeight = 'bold';
app.SelecttheholdertopickupLabel.Position = [24 725 188 38];
app.SelecttheholdertopickupLabel.Text = 'Select the holder to pick up';
% Create ControlsLabel
app.ControlsLabel = uilabel(app.RightPanel);
app.ControlsLabel.HorizontalAlignment = 'center';
app.ControlsLabel.FontSize = 20;
app.ControlsLabel.FontWeight = 'bold';
app.ControlsLabel.Position = [22 767 180 43];
app.ControlsLabel.Text = 'Controls';
% Create BlacklineLabel_3
app.BlacklineLabel_3 = uilabel(app.RightPanel);
app.BlacklineLabel_3.BackgroundColor = [0 0 0];
app.BlacklineLabel_3.FontSize = 2;
app.BlacklineLabel_3.Position = [1 769 218 2];
app.BlacklineLabel_3.Text = 'Black line';
% Create PutHolderInBeam
app.PutHolderInBeam = uibutton(app.RightPanel, 'push');
app.PutHolderInBeam.ButtonPushedFcn = createCallbackFcn(app, @PutHolderInBeamPushed, true);
app.PutHolderInBeam.FontWeight = 'bold';
app.PutHolderInBeam.Position = [55 269 124 38];
app.PutHolderInBeam.Text = 'Put holder in beam';
% Create LastCommandTextAreaLabel
app.LastCommandTextAreaLabel = uilabel(app.RightPanel);
app.LastCommandTextAreaLabel.HorizontalAlignment = 'center';
app.LastCommandTextAreaLabel.Position = [10 151 61 28];
app.LastCommandTextAreaLabel.Text = {'Last'; 'Command'};
% Create LastCommandTextArea
app.LastCommandTextArea = uitextarea(app.RightPanel);
app.LastCommandTextArea.FontSize = 10;
app.LastCommandTextArea.Position = [74 154 134 20];
% Create XpositioninbeammmEditFieldLabel
app.XpositioninbeammmEditFieldLabel = uilabel(app.RightPanel);
app.XpositioninbeammmEditFieldLabel.HorizontalAlignment = 'center';
app.XpositioninbeammmEditFieldLabel.Position = [49 318 80 28];
app.XpositioninbeammmEditFieldLabel.Text = {'X position '; 'in beam (mm)'};
% Create XpositioninbeammmEditField
app.XpositioninbeammmEditField = uieditfield(app.RightPanel, 'numeric');
app.XpositioninbeammmEditField.HorizontalAlignment = 'center';
app.XpositioninbeammmEditField.Position = [135 321 54 22];
app.XpositioninbeammmEditField.Value = 200;
% Create Panel
app.Panel = uipanel(app.RightPanel);
app.Panel.Position = [60 363 114 364];
% Create GridLayout2
app.GridLayout2 = uigridlayout(app.Panel);
app.GridLayout2.ColumnWidth = {40, 40};
app.GridLayout2.RowHeight = {'1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x', '1x'};
app.GridLayout2.RowSpacing = 2;
app.GridLayout2.Padding = [10 0 0 0];
% Create GrabHolder_01
app.GrabHolder_01 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_01.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_01.Text = '1';
app.GrabHolder_01.Layout.Row = 1;
app.GrabHolder_01.Layout.Column = 1;
% Create GrabHolder_02
app.GrabHolder_02 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_02.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_02.Text = '2';
app.GrabHolder_02.Layout.Row = 1;
app.GrabHolder_02.Layout.Column = 2;
% Create GrabHolder_03
app.GrabHolder_03 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_03.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_03.Text = '3';
app.GrabHolder_03.Layout.Row = 2;
app.GrabHolder_03.Layout.Column = 1;
% Create GrabHolder_04
app.GrabHolder_04 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_04.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_04.Text = '4';
app.GrabHolder_04.Layout.Row = 2;
app.GrabHolder_04.Layout.Column = 2;
% Create GrabHolder_05
app.GrabHolder_05 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_05.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_05.Text = '5';
app.GrabHolder_05.Layout.Row = 3;
app.GrabHolder_05.Layout.Column = 1;
% Create GrabHolder_06
app.GrabHolder_06 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_06.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_06.Text = '6';
app.GrabHolder_06.Layout.Row = 3;
app.GrabHolder_06.Layout.Column = 2;
% Create GrabHolder_07
app.GrabHolder_07 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_07.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_07.Text = '7';
app.GrabHolder_07.Layout.Row = 4;
app.GrabHolder_07.Layout.Column = 1;
% Create GrabHolder_08
app.GrabHolder_08 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_08.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_08.Text = '8';
app.GrabHolder_08.Layout.Row = 4;
app.GrabHolder_08.Layout.Column = 2;
% Create GrabHolder_09
app.GrabHolder_09 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_09.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_09.Text = '9';
app.GrabHolder_09.Layout.Row = 5;
app.GrabHolder_09.Layout.Column = 1;
% Create GrabHolder_10
app.GrabHolder_10 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_10.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_10.Text = '10';
app.GrabHolder_10.Layout.Row = 5;
app.GrabHolder_10.Layout.Column = 2;
% Create GrabHolder_11
app.GrabHolder_11 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_11.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_11.Text = '11';
app.GrabHolder_11.Layout.Row = 6;
app.GrabHolder_11.Layout.Column = 1;
% Create GrabHolder_13
app.GrabHolder_13 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_13.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_13.Text = '13';
app.GrabHolder_13.Layout.Row = 7;
app.GrabHolder_13.Layout.Column = 1;
% Create GrabHolder_14
app.GrabHolder_14 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_14.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_14.Text = '14';
app.GrabHolder_14.Layout.Row = 7;
app.GrabHolder_14.Layout.Column = 2;
% Create GrabHolder_15
app.GrabHolder_15 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_15.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_15.Text = '15';
app.GrabHolder_15.Layout.Row = 8;
app.GrabHolder_15.Layout.Column = 1;
% Create GrabHolder_16
app.GrabHolder_16 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_16.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_16.Text = '16';
app.GrabHolder_16.Layout.Row = 8;
app.GrabHolder_16.Layout.Column = 2;
% Create GrabHolder_17
app.GrabHolder_17 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_17.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_17.Text = '17';
app.GrabHolder_17.Layout.Row = 9;
app.GrabHolder_17.Layout.Column = 1;
% Create GrabHolder_18
app.GrabHolder_18 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_18.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_18.Text = '18';
app.GrabHolder_18.Layout.Row = 9;
app.GrabHolder_18.Layout.Column = 2;
% Create GrabHolder_19
app.GrabHolder_19 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_19.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_19.Text = '19';
app.GrabHolder_19.Layout.Row = 10;
app.GrabHolder_19.Layout.Column = 1;
% Create GrabHolder_20
app.GrabHolder_20 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_20.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_20.Text = '20';
app.GrabHolder_20.Layout.Row = 10;
app.GrabHolder_20.Layout.Column = 2;
% Create GrabHolder_21
app.GrabHolder_21 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_21.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_21.Text = '21';
app.GrabHolder_21.Layout.Row = 11;
app.GrabHolder_21.Layout.Column = 1;
% Create GrabHolder_22
app.GrabHolder_22 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_22.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_22.Text = '22';
app.GrabHolder_22.Layout.Row = 11;
app.GrabHolder_22.Layout.Column = 2;
% Create GrabHolder_24
app.GrabHolder_24 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_24.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_24.Text = '24';
app.GrabHolder_24.Layout.Row = 12;
app.GrabHolder_24.Layout.Column = 2;
% Create GrabHolder_12
app.GrabHolder_12 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_12.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_12.Text = '12';
app.GrabHolder_12.Layout.Row = 6;
app.GrabHolder_12.Layout.Column = 2;
% Create GrabHolder_23
app.GrabHolder_23 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_23.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_23.Text = '23';
app.GrabHolder_23.Layout.Row = 12;
app.GrabHolder_23.Layout.Column = 1;
% Create GrabHolder_25
app.GrabHolder_25 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_25.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_25.Text = '25';
app.GrabHolder_25.Layout.Row = 13;
app.GrabHolder_25.Layout.Column = 1;
% Create GrabHolder_26
app.GrabHolder_26 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_26.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_26.Text = '26';
app.GrabHolder_26.Layout.Row = 13;
app.GrabHolder_26.Layout.Column = 2;
% Create GrabHolder_27
app.GrabHolder_27 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_27.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_27.Text = '27';
app.GrabHolder_27.Layout.Row = 14;
app.GrabHolder_27.Layout.Column = 1;
% Create GrabHolder_28
app.GrabHolder_28 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_28.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_28.Text = '28';
app.GrabHolder_28.Layout.Row = 14;
app.GrabHolder_28.Layout.Column = 2;
% Create GrabHolder_29
app.GrabHolder_29 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_29.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_29.Text = '29';
app.GrabHolder_29.Layout.Row = 15;
app.GrabHolder_29.Layout.Column = 1;
% Create GrabHolder_30
app.GrabHolder_30 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_30.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_30.Text = '30';
app.GrabHolder_30.Layout.Row = 15;
app.GrabHolder_30.Layout.Column = 2;
% Create GrabHolder_31
app.GrabHolder_31 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_31.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_31.Text = '31';
app.GrabHolder_31.Layout.Row = 16;
app.GrabHolder_31.Layout.Column = 1;
% Create GrabHolder_32
app.GrabHolder_32 = uibutton(app.GridLayout2, 'state');
app.GrabHolder_32.ValueChangedFcn = createCallbackFcn(app, @GrabHolder_ValueChanged, true);
app.GrabHolder_32.Text = '32';
app.GrabHolder_32.Layout.Row = 16;
app.GrabHolder_32.Layout.Column = 2;
% Create FilterOUTButton
app.FilterOUTButton = uibutton(app.RightPanel, 'push');
app.FilterOUTButton.ButtonPushedFcn = createCallbackFcn(app, @FilterOUTButtonPushed, true);
app.FilterOUTButton.Position = [113 191 71 22];
app.FilterOUTButton.Text = 'Filter OUT';
% Create FilterINButton
app.FilterINButton = uibutton(app.RightPanel, 'push');
app.FilterINButton.ButtonPushedFcn = createCallbackFcn(app, @FilterINButtonPushed, true);
app.FilterINButton.Position = [40 191 71 22];
app.FilterINButton.Text = 'Filter IN';
% Create Image
app.Image = uiimage(app.RightPanel);
app.Image.Position = [33 7 170 123];
app.Image.ImageSource = 'C-ROBOT_v4.png';
% Create StatusandChecksLabel
app.StatusandChecksLabel = uilabel(app.UIFigure);
app.StatusandChecksLabel.HorizontalAlignment = 'center';
app.StatusandChecksLabel.FontSize = 20;
app.StatusandChecksLabel.FontWeight = 'bold';
app.StatusandChecksLabel.Position = [20 767 180 43];
app.StatusandChecksLabel.Text = 'Status and Checks';
% Show the figure after all components are created
app.UIFigure.Visible = 'on';
end
end
% App creation and deletion
methods (Access = public)
% Construct app
function app = Robot_GUI_exported
% Create UIFigure and components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
% Execute the startup function
runStartupFcn(app, @startupFcn)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.UIFigure)
end
end
end
\ No newline at end of file
This diff is collapsed.
Click to expand it.
MatLab/Robot_GUI_exported2.m
deleted
100644 → 0
+
0
−
1195
View file @
ad6a4a5a
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment