Mit diesem Code würde ich gerne einen Pushbotton betreiben um ihm sagen verbinde den Arduino an dem er angeschlossen ist.
Im Edittext will ich aber den Namen des Ports stehen haben. Bsp: Serial-COM5.
aber mit meiner Variablen erhalte ich immer nur die Position an dem der Name hinterlegt ist. (Tippe ich den Befehl: string(h.Name(2)) ein kommt der gesuchte Name des Ports)
wie komme ich von meiner Nummer auf den Namen ??
Danke für die HIlfe im Voraus schon mal
Edit: habs hinbekommen denke ich^^ ich hoffe ich habe den Arduino zumindest verbunden und ich könnte nun eine Datenübertragung starten, wenn ich später auf den Start-Button klicke...
Wäre nett wenn mir jmd dazu etwas sagen könnte
CODE:
Code:
handles =guidata(hObject);
h=instrfindall;
for i= 1:length(h) fopen('COM'+string(i)) end
h=instrfindall;
str=string(h.name(find(cell2mat(h.BytesAvailable))))
Habe aber jetzt eine zwei weitere Frage;
Wenn mein Arduino jetzt verbunden ist nachdem ich den Connect-Button im GUI gedrückt habe, will ich das im Edittext dann der Portname erscheint. Muss ich dazu einfach display(str) im Callback des Edittexts hinterlegen oder wie funktioniert das?
"Disconnecten" des Arduinos habe ich im "Disconnect" mit
fclose('all');
schließt sämtliche Streams, auch Files, die an anderer Stelle geöffnet wurden. Es ist sicherer, wenn Du nur die Ports schließt, die auch speziell hier gemeint sind, also das, was
fopen
als Output geliefert hat.
Zitat:
Mit diesem Code würde ich gerne einen Pushbotton betreiben
Mir ist nicht klar, was das genau heißt. Soll die Funktion gestartet werden, wenn Du den Button drückst?
Zitat:
Im Edittext will ich aber den Namen des Ports stehen haben. Bsp: Serial-COM5.
In welcher Form hast Du die Handles der GUI vorliegen? Vielleicht der "handles" Struct aus den von GUIDE erstellten Dialogen? Dann:
Code:
port = 5;
handles.Button1.String = sprintf('Serial-COM%d', port);
% --- Executes on button press in Connect. function Connect_Callback(hObject, eventdata, handles) % hObject handle to Connect (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%suchen der verfügbaren Ports,...
%rausfinden in for-Schleife welches Port...
%die geüwnschte Eigenschaft (offen) besitzt...
%und verbinde Arduino mit diesem Port
handles =guidata(hObject);
h=instrfindall;
for i= 1:length(h) fopen('COM'+string(i)) end
h=instrfindall;
str=string(h.name(find(cell2mat(h.BytesAvailable))))
% --- Executes on button press in Disconnect. function Disconnect_Callback(hObject, eventdata, handles) % hObject handle to Disconnect (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) fclose('str');
function Portname_Callback(hObject, eventdata, handles) % hObject handle to Portname (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of Portname as text % str2double(get(hObject,'String')) returns contents of Portname as a double
% --- Executes during object creation, after setting all properties. function Portname_CreateFcn(hObject, eventdata, handles) % hObject handle to Portname (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
function Connection_Status_Callback(hObject, eventdata, handles) % hObject handle to Connection_Status (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of Connection_Status as text % str2double(get(hObject,'String')) returns contents of Connection_Status as a double
% --- Executes during object creation, after setting all properties. function Connection_Status_CreateFcn(hObject, eventdata, handles) % hObject handle to Connection_Status (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. ifispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');
end
Ohne die Quotes. 'str' wäre der String 'str', aber Du meinst die Variable namens str.
Die Fehlermeldung enthält nur den Ort, bei dem das Problem auftritt, aber nicht, was das Problem ist. Ist das wirklich die vollständige Meldung?
Du kannst auf jeden Fall den Debugger verwenden, um näheres herauszufinden: Lasse Matlab in der Zeile stoppen und gebe dann die Einzelteile des Befehls im CommandWindow ein:
[quote]% str=string(h.name(find(cell2mat(h.BytesAvailable))))
h.BytesAvailable
cell2mat(h.BytesAvailable)
find(cell2mat(h.BytesAvailable)))
string(h.name(find(cell2mat(h.BytesAvailable))))
[/code]
Wo scheitert es mit welcher Meldung?
Fehlermeldung bleibt die selbe lediglich noch mit dem Zusatz am Anfang:
Struct contents reference from a non-struct array object
als ich das ganze Zusammengeschustert habe letzte Woche funktionierte ja noch alles (machte zumindest den Anschein), von daher wundert mich das ganze umso mehr...
Fehlermeldung bleibt die selbe lediglich noch mit dem Zusatz am Anfang:
Struct contents reference from a non-struct array object
als ich das ganze Zusammengeschustert habe letzte Woche funktionierte ja noch alles (machte zumindest den Anschein), von daher wundert mich das ganze umso mehr...
finde es halt nur selber komisch da der Befehl an sich mir den COM-Port zu suchen an dem der Arduino angeschlossen ist am freitag funktioniert hat als ich ihn geschrieben hab und jetzt nicht mehr...
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.