Я создал графический интерфейс в Matlab, который создает файл MyGUI.fig и файл MyGUI.m. используя существующий скрипт matlab, назовем его MyCode.m, я хочу изменить значения свойств в MyGUI.fig.
Код в основном сравнивает тег, сохраненный в файле Excel, с тегом, поступающим поверх последовательного интерфейса, а затемсравнивает их. если они совпадают, панель станет зеленой, в противном случае - красной.
это код, работающий в matlab r2017a:
delete(instrfind('Port', 'COM3'));
tag = serial('COM3'); %check which port is used
fopen(tag);
MyGUI;
BOX = char(zeros(2,14));
i=1;
c=0;
TrueValueData = 'C:\MasterCodes.xlsx';
[~,~,TrueValMat] = xlsread(TrueValueData); % Creates matrix filled with the correct values,
% indexed by box, which is the first row
% all proceeding rows are the master value
function result(handles)
for i=1:9223372036854775807
if i>10 %first couple reads are filled with unicode nonsense, this skips that stage
readData = fscanf(tag);
if length(readData)>12
BOX(str2num(readData(8)),1:14)= readData(11:24); % these numbers just give us what we want;
% tags come in initially with some gobbledy-gook
end
%
% if(length(readData)>10) %if chip has been read
%
% ReadChips
if strcmp(TrueValMat{2,1}, BOX(1,:))
set(handles.uipanel1, 'BackgroundColor', 'green');
else
set(handles.uipanel1, 'BackgroundColor', 'red');
end
if strcmp(TrueValMat{2,2}, BOX(2,:))
set(handles.uipanel2, 'Backgroundcolor', 'green');
else
set(handles.uipanel2, 'Backgroundcolor', 'red');
end
end
end
end
function uipanel1_Callback(hObject, eventdata, handles)
result;
function uipanel2_Callback(hObject, eventdata, handles)
result;
end
end
При запуске скрипта отображается MyGUI, и никаких ошибок не выдается, но при сканировании последовательных тегов ничего не происходит.
Любая помощь приветствуется, я не очень хорош в использовании matlab.