probier es mal wie folgt:
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);
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.
mfg
inschenjoer
Lesezeichen