%!/usr/bin/octave
%
% Funktion einlesen
% in:
% anfangsdatum, anfangszeit, enddatum, endzeit
% anfangsdatum = [dd mm yyyy]
% zeit = [hh mm ss] 
% out:
% matrix mit spalten [ID u v w airspeed abs abs timestamp]
%
% timestamp
% (matlab timestamp day since 01.01.0000,
% see help datenum)
%
% Example:
% data = einlesen([25 4 2006], [23 0 0], [26 4 2006], [1 0 0])
% data =
%
%     9.0260e+03    4.5000e-01    6.8000e-01   -1.1000e-01    3.3976e+02    3.2240e+01    2.5400e+01
%     9.0270e+03    5.1000e-01    6.5000e-01   -1.1000e-01    3.3972e+02    3.2240e+01    2.5400e+01
%     9.0280e+03    5.4000e-01    6.5000e-01   -1.3000e-01    3.3970e+02    3.2280e+01    2.5340e+01
% .
% .
% .
%
% BUG: das teilfunktioniert nicht über den jahreswechsel
%      und nicht über den wechsel zu winterzeit!
%      lösung timestamp für die dateinamen
%

function data = einlesen ( start_date, start_time, ende_date, ende_time )
 % konstanten
 % pfad zu den daten
 path = '../daten/dat';
 
 % tag im jahr und stunde bestimmen
 start_timestamp = time2timestamp(start_date, start_time);
 start = timestamp2time(start_timestamp);
 start_tag = start.dayinyear;
 start_id = start.hour * 2 + (round(start.minute/30));
 
 ende_timestamp = time2timestamp(ende_date, ende_time)
 ende = timestamp2time(ende_timestamp);
 ende_tag = ende.dayinyear;
 ende_id = ende.hour * 2 + (round(ende.minute/30));
  
 if start_tag != ende_tag
  id=24*2-1;
 else
  id=ende_id;
 end
 
 % brauche einen eintrag
 dateinamen = ['sinnlos'];
 
 % muss immer ausgelesen werden 
 for j = start_id:id
  %dateinamen = [dateinamen;['ec-' num2str(start_tag) '-' num2str(j)]];
  dateinamen = [dateinamen;[sprintf('ec-%03d-%02d.dat', start_tag, j)]];
 end
 
 
 % mittelteil
 if (ende_tag - start_tag) > 1
  for i = (start_tag+1):(ende_tag-1)
   for j = 0:id
    %dateinamen = [dateinamen;['ec-' num2str(i) '-' num2str(j)]];
    dateinamen = [dateinamen;[sprintf('ec-%03d-%02d.dat', i, j)]];
   end
  end
 end
 
 % endteil
 if start_tag != ende_tag
  for j = 0:ende_id
   %dateinamen = [dateinamen;['ec-' num2str(ende_tag) '-' num2str(j)]];
   dateinamen = [dateinamen;[sprintf('ec-%03d-%02d.dat', ende_tag, j)]]; 
  end
 end 
 
 % erster eintrag wieder löschen
 dateinamen(1,:) = [];
 
 % brauche einen eintrag
 data=[0 0 0 0 0 0 0];
 
 % in dateiname sind nun alle benötigten dateinamen:-))
 anzahl_dateien = size(dateinamen)(1)
 for j = 1:anzahl_dateien
  j
  data=[data;load([path '/' dateinamen(j,:)])];
 end
  
 % erster eintrag wieder löschen
 data(1,:) = [];

 size(data)(1)
 
 dt = (ende_timestamp - start_timestamp) / ( size(data)(1)-1 )
 zeit = (start_timestamp:dt:ende_timestamp)';
 %size(zeit)
 data = [data zeit];
end