Verfasst am: 15.01.2020, 12:04
Titel: Interrupt übergeben zwischen mehreren Apps
Hallo Forum,
ich versuche mich momentan zum ersten Mal an Matlab und stehe gehörig auf dem Schlauch. Im Grunde stehe ich vor folgendem Problem:
Eine App die aus mehreren Fenstern besteht. Das erste Fenster stellt Messergebnisse eines externen Testaufbaus dar, welche via COM Port übertragen werden. The Messergebnisse werden vom Testboard automatisch erfasst und immer, wenn ein neuer Wert vorliegt, wird dieser direkt übertragen. Um die Applikation übersichtlich zu halten, soll die Auswahl und die Einstellungen für den COM Port in einem separaten Fenster erfolgen. Nun würde es aus meiner Sicht Sinn machen, die Werte per Interrupt einzulesen. Das müsste aber in der ersten App geschehen, wo der COM Port nicht konfiguriert wird. Bislang funktioniert es, dass ich den COM Port in der zweiten App öffne und in der ersten App diesen gezielt Abfrage. Das wird aber irgendwann asynchron zu der Messdatenerfassung des Testaufbaus.
Das übergeben des COM Ports von der zweiten an die erste App habe ich wie folgt gelöst:
function startupFcn(app,mainapp)
app.CallingApp = mainapp;
freeports = serialportlist("available");
app.SelectCOMPortDropDown.Items = freeports;
end
function OKButtonPushed(app, event)
port = getappdata(app.SelectedCOMPortDropDownLabels,'comport');
s = serial(port,'BaudRate',9600);
s.BytesAvailableFcnCount = 4;
s.BytesAvailableFcnMode = 'byte';
s.BytesAvailableFcn = {@app.Serial_int_Fcn};
fopen(s);
if(strcmpi(s.Status,'Open'))
setcomport(app.Callingapp,s);
end
app.delete;
end
Was in einer einzelnen App klappt, geht über mehrerer leider nicht so einfach. Wahrscheinlich weil ich den Handle auf die Interrupt Routine nicht richtig zurück gebe. Nur wie macht man das ?
Gruß und Danke,
Chris
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.