probier es mal wie folgt:
Ich kann es aber nicht sicher sagen. Am besten wäre es du stellst mal so ein testfile hier rein. Dann kann man es mal ausprobieren. So wie ich das sehen sind die vier matrizen (temperatur, licht, luftfeuchtigkeit, reichweite) so aufgebaut, dass die spalten die boards sind und die zeilen die Messwerte.Code:clear all; s = serial('COM1','BAUD',19200,'DataBits',8,'StopBits',1,'FlowControl','hardware'); fopen(s); init=false; %fid=fopen('test.dat','w') i=1; counter=1; buffer=21; for counter=1:30 if i==21 i=i-20 hold off; end; tlog=false; %Logical initialisieren while ~tlog tline=fscanf(s); %naechste Zeile aus ASCII-File holen index_s=regexpi(tline,'Hauptboard'); %String in tline suchen if ~isempty(index_s) %Treffer? tlog=true; if i==1 & ~init boardanzahl=0; end; for j=1:4 index_s=regexpi(tline,':-('); if isempty(index_s) index_sem=regexpi(tline,','); %Trennzeichen suchen, wird hier %nicht ausgewertet temp=strrep(tline,',',' '); %Trennzeichen durch Blank ersetzen string=strread(temp,'%s',6); %String-Array erzeugen, Anzahl %der Variablen angeben temperatur(i,j)=sscanf(char(string(3)),'%d'); %Array-Elemente ausgeben luftfeuchtigkeit(i,j)=sscanf(char(string(4)),'%d'); %Array-Elemente ausgeben licht(i,j)=sscanf(char(string(5)),'%d'); %Array-Elemente ausgeben reichweite(i,j)=sscanf(char(string(6)),'%d'); %Array-Elemente ausgeben board(j)=true; if i==1 & ~init boardanzahl=boardanzahl+1; end; else board(j)=false; end;%zweites if tline=fscanf(s); end %for-Schleife %--------------------------PLOT-Funktion------------- for k=1:2 x(k)=i-2+k; end%for-Schleife if i>1 subplot(2,2,1); plot(temperatur); subplot(2,2,2); plot(luftfeuchtigkeit); subplot(2,2,1); plot(reichweite); subplot(2,2,1); plot(licht); init=true; pause(0.000001); end;%if end; %erstes if end % while Schleife i=i+1; end %erstes For fclose(s); %fclose(fid);
mfg
inschenjoer







Zitieren

Lesezeichen