изменение значений свойств uipanel из другого файла .m - PullRequest
0 голосов
/ 17 сентября 2019

Я создал графический интерфейс в 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...