Hallo ich wollte wissen, wie ich Daten von verschiedenen Rückrufen zu einem comport übergeben kann, ohne ständig einen comport in den verschiedenen Rückrufen öffnen und schließen zu müssen?Wie kann ich Daten von verschiedenen Funktionen an denselben Comport senden, ohne den Comport ständig öffnen zu müssen?
so hier ist der Code
function submitButton_Callback(hObject, eventdata, handles)
% hObject handle to submitButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
if(get(handles.HitButton,'Value') == 1)
filename = 'testing.xls';
writevar({'Hit'},1,filename);
set(handles.text2,'visible','off');
set(handles.words,'visible','off');
set(handles.rating,'visible','on');
set(handles.readyToGo,'visible','off');
set(handles.readyButton,'visible','off');
set(handles.submitButton,'visible','off');
set(handles.rateButton, 'visible','on');
set(handles.HowSure,'visible', 'on');
drawnow;
sPort=serial('COM4');
fopen(sPort);
fprintf(sPort, '%d', 3);
fclose(sPort);
delete(sPort);
else
filename = 'testing.xls';
writevar({'Bit'},1,filename);
set(handles.text2,'visible','off');
set(handles.words,'visible','off');
set(handles.rating,'visible','on');
set(handles.readyToGo,'visible','off');
set(handles.readyButton,'visible','off');
set(handles.submitButton,'visible','off');
set(handles.rateButton, 'visible','on');
set(handles.HowSure,'visible', 'on');
drawnow;
sPort=serial('COM4');
fopen(sPort);
fprintf(sPort, '%d', 3);
fclose(sPort);
delete(sPort);
end
function readyButton_Callback(hObject, eventdata, handles)
% hObject handle to readyButton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
s = load('train.mat');
sPort=serial('COM4');
fopen(sPort);
fprintf(sPort, '%d', 1);
player = audioplayer(s.y,8192);
playblocking(player);
fprintf(sPort, '%d', 2);
fclose(sPort);
delete(sPort);
%pause(4);
set(handles.text2,'visible','on');
set(handles.words,'visible','on');
set(handles.HowSure,'visible', 'off');
set(handles.rating,'visible','off');
set(handles.readyToGo,'visible','off');
set(handles.readyButton,'visible','off');
set(handles.submitButton,'visible','on');
drawnow;
wie man sehen kann ich den Com-Port für jede Funktion öffnen müssen und schließen Sie es dann. Idealerweise möchte ich, dass es offen bleibt und von jedem Rückruf aus erreichbar ist.
Siehe auch: [Teilen Daten unter Rückrufe] (http: //www.mathworks .com/help/matlab/creating_guis/share-data-from-callbacks.html) – excaza
@excaza Entschuldigung Ich habe es angeschaut, aber ich weiß nicht, wie ich es auf meine Situation anwenden soll. Insbesondere habe ich die Store-Daten in UserData oder anderen Objekteigenschaften betrachtet. – user6248190
Ok, was hast du probiert? – excaza