Verfasst am: 25.08.2010, 11:03
Titel: Auslesen aus Schnittstelle & dynamisches speichern in Ma
Hallo miteinander
Ich bin die letzten Wochen damit beschäftigt gewesen ein Programm zu entwerfen, welches simultan Daten aus meinem Gerät ausliest und anschliessend abgesichert (hehrere Runs hintereinander). Soweit so gut.
Da das Gerät etwas älter ist (jhrg. 1987) ist die Datenausgabe über den RS233 nicht immer einwandfrei, d.H: Ab und zu wird der Wert nicht übergeben. der Wert besteht aus einem String mit ca 19-20 Zeichen und wird in einen X-Wert (point) und einen Y-Wert (intens) aufgespalten. Nun sollen jedoch diese Werte sobald sie ausgelesen wurden in eine Matrix eingefügt werden und zwar so, das Punkt 1 in 1,1 gespeichert wird und die dazugehörige Intens in 1,2. Wenn nun ein Wert "vergessen" wird sollte dort -1 stehen (so dass ich erkenne welcher wert übersprungen worden ist). Sollte der Punkt 10 ausgelassen werden, soll der nächste Punkt bei Linie 11 weiter gehen. Für jeden Run sollen die X und Y Wert nebeneinander in Spalten eingetragen werden. So dass ich bei 10 Runs 20 Spalten habe.
Hier noch mein Code:
Code:
%mein Programm
%program reads out the serial port of the
clearall
s = start_serial;
wait_response (s, 2)
datapoints=200; % number of datapoints in the ms spectrum
cycles=2; % number of repetive cycles
resolution=4; % number of datapoints for each amu
mass_range_min=input('kleinste zu messende Masse:')
mass_range_max=input('grsste zu messende Masse:')
for j=1:cycles
figure(1) hold off
plot(0,0) hold on
for i=1:datapoints
out = fscanf(s);
iflength(out)>18
point(i) = str2num(out((length(out)-15):(length(out)-12)));
intens(i) = str2num(out((length(out)-10):length(out)));
end if i > 1 if point(i-1) < datapoints
plot([point(i-1)/resolution,point(i)/resolution],[intens(i-1),intens(i)],'r') end end drawnow end xlabel('m/z') ylabel('intensity / a.u.') title('plot generated from quadruvac pga 100') hold off
figure(2)
specx(:,j)=point';
specy(:,j)=intens';
plot(specx(:,j),specy(:,j)) xlabel('m/z') ylabel('intensity / a.u.') title('plot generated from quadruvac pga 100') end
stop_serial (s)
Ist ein Haufen zu lesen, aber vielleicht nimmt sich hier jemand die zeit & lust dafür...
Danke schon mal im voraus
_________________
Die Anzahl unserer Neider bestätigt unsere Fähigkeiten.
Oscar Wilde, 16.10.1854 - 30.11.190
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.