Files
matlab-python/Tilt/LastElab.m

3044 lines
121 KiB
Matlab
Executable File
Raw Blame History

function [DatiElabTiltLink,NuovoZeroTL,datainiTL,tempoiniTL,...
DatiElabTiltLinkHD,NuovoZeroHD,datainiHD,tempoiniHD,...
DatiElabTiltLinkHDVR,NuovoZeroHDVR,datainiHDVR,tempoiniHDVR,...
DatiElabTiltLinkHR,NuovoZeroTLHR,datainiTLHR,tempoiniTLHR,...
DatiElabTiltLinkH,NuovoZeroTLH,datainiTLH,tempoiniTLH,...
DatiElabTiltLinkHRH,NuovoZeroTLHRH,datainiTLHRH,tempoiniTLHRH,...
DatiElabInPlaceLink,NuovoZeroIPL,datainiIPL,tempoiniIPL,...
DatiElabInPlaceLinkHR,NuovoZeroIPLHR,datainiIPLHR,tempoiniIPLHR,...
NuovoZeroPL,datainiPL,tempoiniPL,NuovoZeroBL,datainiBL,tempoiniBL,Barometro,...
NuovoZeroThL,datainiThL,tempoiniThL,NuovoZeroLL,datainiLL,tempoiniLL,...
NuovoZeroKL,datainiKL,tempoiniKL,NuovoZeroKLHR,datainiKLHR,tempoiniKLHR,...
DatiElabRainLink,NuovoZeroRL,datainiRL,tempoiniRL,datainiSPP,tempoiniSPP,NuovoZeroSPP,...
DatiElabSnowLink,NuovoZeroSL,datainiSL,tempoiniSL,...
NuovoZeroPT100,datainiPT100,tempoiniPT100,NuovoZeroWL,datainiWL,tempoiniWL,...
NuovoZeroPE,datainiPE,tempoiniPE,margine,marginePiezo] = LastElab(...
conn,date,time,IDcentralina,DTcatena,Wdevst,Wdevst_HR,NdatiMedia,Ndatidespike,NdatiMediaP,...
NodoTiltLink,yesTL,rTL,NodoTiltLinkHD,yesHD,rHD,NodoTiltLinkHDVR,yesHDVR,rHDVR,...
NodoTiltLinkHR,yesTLHR,rTLHR,NodoTiltLinkH,yesTLH,rTLH,NodoTiltLinkHRH,yesTLHRH,rTLHRH,...
NodoPiezoLink,yesPL,NodoBaroLink,yesBL,Barometri,...
NodoLoadLink,yesLL,NodoThermLink,yesThL,NodoRainLink,yesRL,rRL,...
NodoSnowLink,yesSL,rSL,NodoSPPLink,yesSPP,NodoKlinoLink,yesKL,rKL,...
NodoKlinoLinkHR,yesKLHR,rKLHR,NodoPT100Link,yesPT100,NodoInPlaceLink,yesIPL,rIPL,...
NodoInPlaceLinkHR,yesIPLHR,rIPLHR,NodoWeirLink,yesWL,NodoPendulum,yesPE,FileName)
Data(1,1) = cellstr(date);
Data(1,2) = cellstr(time);
% Log file
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'LastElab function started';
fprintf(fileID,fmt,text);
if isempty(Wdevst)==1
Wdevst = 1;
end
%% Tilt Link V
if yesTL == 1 % Importo ultimo dato elaborato dei Tilt Link V
NodeNumTL = num2str(cell2mat(NodoTiltLink(1,2))); % scarico i dati del primo nodo Tilt Link V
NodeType = 'Tilt Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum = ' NodeNumTL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiTL = datestr(data1,'yyyy-mm-dd');
tempoiniTL = datestr(data1,'HH:MM:SS');
NuovoZeroTL = 0;
DatiElabTiltLink = [];
margine = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiTL = datestr(data2,'yyyy-mm-dd');
tempoiniTL = datestr(data2,'HH:MM:SS');
NuovoZeroTL = 1;
else
datainiTL = datestr(data1,'yyyy-mm-dd');
tempoiniTL = datestr(data1,'HH:MM:SS');
NuovoZeroTL = 0;
end
end
if NuovoZeroTL == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiTL) < datenum(date)
datainiTL = date;
end
NTiltLink = cell2mat(NodoTiltLink(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 16; % contatore colonne
Condition = 0;
while ii <= rTL
ini_col = col-15;
nN = num2str(NTiltLink(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTLd = curs.Data;
% Giorni successivi
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTL = curs.Data;
[~,c1] = size(DATnodoTL);
[~,c2] = size(DATnodoTLd);
if c1 == c2
DATnodoTL = [DATnodoTLd; DATnodoTL];
elseif c1 < c2 % solo giorno di riferimento
DATnodoTL = DATnodoTLd;
end
[rDAT,cDAT] = size(DATnodoTL);
if rDAT==1 && cDAT==1
clear DatiElabTiltLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabTiltLink);
if rDE ~= rDAT
clear DatiElabTiltLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
DatiElabTiltLink(:,ini_col:col) = DATnodoTL(:,:);
end
col = col+16;
ii = ii+1;
end
if Condition == 1
datainiTL = datenum(datainiTL) - 1;
Data_scarico = datestr(datainiTL,'yyyy-mm-dd HH:MM:SS');
datainiTL = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabTiltLink(1,3:16:end)));
for jj = 1:rTL
if Check == 1
datainiTL = datenum(datainiTL) - 1;
Data_scarico = datestr(datainiTL,'yyyy-mm-dd HH:MM:SS');
datainiTL = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'Tilt Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabTiltLink = [];
end
else
datainiTL = [];
tempoiniTL = [];
DatiElabTiltLink = [];
NuovoZeroTL = 0;
margine = [];
end
%% Tilt Link HD V
if yesHD == 1 % Importo ultimo dato elaborato dei Tilt Link HD V
NodeNumHD = num2str(cell2mat(NodoTiltLinkHD(1,2))); % scarico i dati del primo nodo Tilt Link HD V
NodeType = 'Tilt Link HD';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumHD ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumHD ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum = ' NodeNumHD ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiHD = datestr(data1,'yyyy-mm-dd');
tempoiniHD = datestr(data1,'HH:MM:SS');
NuovoZeroHD = 0;
DatiElabTiltLinkHD = [];
margine = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiHD = datestr(data2,'yyyy-mm-dd');
tempoiniHD = datestr(data2,'HH:MM:SS');
NuovoZeroHD = 1;
else
datainiHD = datestr(data1,'yyyy-mm-dd');
tempoiniHD = datestr(data1,'HH:MM:SS');
NuovoZeroHD = 0;
end
end
if NuovoZeroHD == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiHD) < datenum(date)
datainiHD = date;
end
NTiltLinkHD = cell2mat(NodoTiltLinkHD(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 16; % contatore colonne
Condition = 0;
while ii <= rHD
ini_col = col-15;
nN = num2str(NTiltLinkHD(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoHDd = curs.Data;
% Giorni successivi
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoHD = curs.Data;
[~,c1] = size(DATnodoHD);
[~,c2] = size(DATnodoHDd);
if c1 == c2
DATnodoHD = [DATnodoHDd; DATnodoHD];
elseif c1 < c2 % solo giorno di riferimento
DATnodoHD = DATnodoHDd;
end
[rDAT,cDAT] = size(DATnodoHD);
if rDAT==1 && cDAT==1
clear DatiElabTiltLinkHD
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabTiltLinkHD);
if rDE ~= rDAT
clear DatiElabTiltLinkHD
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
DatiElabTiltLinkHD(:,ini_col:col) = DATnodoHD(:,:);
end
col = col+16;
ii = ii+1;
end
if Condition == 1
datainiHD = datenum(datainiHD) - 1;
Data_scarico = datestr(datainiHD,'yyyy-mm-dd HH:MM:SS');
datainiHD = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabTiltLinkHD(1,3:16:end)));
for jj = 1:rHD
if Check == 1
datainiHD = datenum(datainiHD) - 1;
Data_scarico = datestr(datainiHD,'yyyy-mm-dd HH:MM:SS');
datainiHD = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'Tilt Link HD VR executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabTiltLinkHD = [];
end
else
datainiHD = [];
tempoiniHD = [];
DatiElabTiltLinkHD = [];
NuovoZeroHD = 0;
end
%% Tilt Link HD VR
if yesHDVR == 1 % Importo ultimo dato elaborato dei Tilt Link HD VR
NodeNumHDVR = num2str(cell2mat(NodoTiltLinkHDVR(1,2))); % scarico i dati del primo nodo Tilt Link HD VR
NodeType = 'Tilt Link HD VR';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumHDVR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumHDVR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum = ' NodeNumHDVR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiHDVR = datestr(data1,'yyyy-mm-dd');
tempoiniHDVR = datestr(data1,'HH:MM:SS');
NuovoZeroHDVR = 0;
DatiElabTiltLinkHDVR = [];
margine = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiHDVR = datestr(data2,'yyyy-mm-dd');
tempoiniHDVR = datestr(data2,'HH:MM:SS');
NuovoZeroHDVR = 1;
else
datainiHDVR = datestr(data1,'yyyy-mm-dd');
tempoiniHDVR = datestr(data1,'HH:MM:SS');
NuovoZeroHDVR = 0;
end
end
if NuovoZeroHDVR == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiHDVR) < datenum(date)
datainiHDVR = date;
end
NTiltLinkHDVR = cell2mat(NodoTiltLinkHDVR(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 16; % contatore colonne
Condition = 0;
while ii <= rHDVR
ini_col = col-15;
nN = num2str(NTiltLinkHDVR(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoHDVRd = curs.Data;
% Giorni successivi
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoHDVR = curs.Data;
[~,c1] = size(DATnodoHDVR);
[~,c2] = size(DATnodoHDVRd);
if c1 == c2
DATnodoHDVR = [DATnodoHDVRd; DATnodoHDVR];
elseif c1 < c2 % solo giorno di riferimento
DATnodoHDVR = DATnodoHDVRd;
end
[rDAT,cDAT] = size(DATnodoHDVR);
if rDAT==1 && cDAT==1
clear DatiElabTiltLinkHDVR
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabTiltLinkHDVR);
if rDE ~= rDAT
clear DatiElabTiltLinkHD
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
DatiElabTiltLinkHDVR(:,ini_col:col) = DATnodoHDVR(:,:);
end
col = col+16;
ii = ii+1;
end
if Condition == 1
datainiHDVR = datenum(datainiHDVR) - 1;
Data_scarico = datestr(datainiHDVR,'yyyy-mm-dd HH:MM:SS');
datainiHDVR = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabTiltLinkHDVR(1,3:16:end)));
for jj = 1:rHDVR
if Check == 1
datainiHDVR = datenum(datainiHDVR) - 1;
Data_scarico = datestr(datainiHDVR,'yyyy-mm-dd HH:MM:SS');
datainiHDVR = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'Tilt Link HD VR executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabTiltLinkHDVR = [];
end
else
datainiHDVR = [];
tempoiniHDVR = [];
DatiElabTiltLinkHDVR = [];
NuovoZeroHDVR = 0;
end
%% Tilt Link HR V
if yesTLHR == 1 % Importo ultimo dato elaborato dei Tilt Link HR V
NodeNumTLHR = num2str(cell2mat(NodoTiltLinkHR(1,2))); % scarico i dati del primo nodo Tilt Link HR V
NodeType = 'Tilt Link HR';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI == 1 && cI == 1
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiTLHR = datestr(data1,'yyyy-mm-dd');
tempoiniTLHR = datestr(data1,'HH:MM:SS');
NuovoZeroTLHR = 0;
DatiElabTiltLinkHR = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst_HR > Ndati
if margine < Wdevst_HR/2
margine = round(Wdevst_HR/2+1);
end
cont = Wdevst_HR + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiTLHR = datestr(data2,'yyyy-mm-dd');
tempoiniTLHR = datestr(data2,'HH:MM:SS');
NuovoZeroTLHR = 1; %1
else
datainiTLHR = datestr(data1,'yyyy-mm-dd');
tempoiniTLHR = datestr(data1,'HH:MM:SS');
NuovoZeroTLHR = 0;
end
end
if NuovoZeroTLHR == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiTLHR) < datenum(date)
datainiTLHR = date;
end
NTiltLinkHR = cell2mat(NodoTiltLinkHR(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 16; % contatore colonne
Condition = 0;
while ii <= rTLHR
ini_col = col-15;
nN = num2str(NTiltLinkHR(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTLHRd = curs.Data;
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTLHR = curs.Data;
[~,c1] = size(DATnodoTLHR);
[~,c2] = size(DATnodoTLHRd);
if c1 == c2
DATnodoTLHR = [DATnodoTLHRd; DATnodoTLHR];
elseif c1 < c2 % solo giorno di riferimento
DATnodoTLHR = DATnodoTLHRd;
end
[rDAT,cDAT] = size(DATnodoTLHR);
if rDAT==1 && cDAT==1
clear DatiElabTiltLinkHR
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabTiltLinkHR);
if rDE ~= rDAT
clear DatiElabTiltLinkHR
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
DatiElabTiltLinkHR(:,ini_col:col) = DATnodoTLHR(:,:);
end
col = col+16;
ii = ii+1;
end
if Condition == 1
datainiTLHR = datenum(datainiTLHR) - 1;
Data_scarico = datestr(datainiTLHR,'yyyy-mm-dd HH:MM:SS');
datainiTLHR = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabTiltLinkHR(1,3:16:end)));
for jj = 1:rTLHR
if Check == 1
datainiTLHR = datenum(datainiTLHR) - 1;
Data_scarico = datestr(datainiTLHR,'yyyy-mm-dd HH:MM:SS');
datainiTLHR = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'Tilt Link HR executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabTiltLinkHR = [];
end
else
datainiTLHR = [];
tempoiniTLHR = [];
DatiElabTiltLinkHR = [];
NuovoZeroTLHR = 0;
end
%% Tilt Link H
if yesTLH == 1 % Importo ultimo dato elaborato dei Tilt Link H
NodeNumTLH = num2str(cell2mat(NodoTiltLinkH(1,2))); % scarico i dati del primo nodo Tilt Link H
NodeType = 'Tilt Link H';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLH ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLH ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLH ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiTLH = datestr(data1,'yyyy-mm-dd');
tempoiniTLH = datestr(data1,'HH:MM:SS');
NuovoZeroTLH = 0;
DatiElabTiltLinkH = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiTLH = datestr(data2,'yyyy-mm-dd');
tempoiniTLH = datestr(data2,'HH:MM:SS');
NuovoZeroTLH = 1;
else
datainiTLH = datestr(data1,'yyyy-mm-dd');
tempoiniTLH = datestr(data1,'HH:MM:SS');
NuovoZeroTLH = 0;
end
end
if NuovoZeroTLH == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiTLH) < datenum(date)
datainiTLH = date;
end
NTiltLinkH = cell2mat(NodoTiltLinkH(:,2));
ii = 1; % contatore
col = 13; % contatore colonne
Condition = 0;
while ii <= rTLH
ini_col = col-12;
nN = num2str(NTiltLinkH(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTLHd = curs.Data;
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTLH = curs.Data;
[~,c1] = size(DATnodoTLH);
[~,c2] = size(DATnodoTLHd);
if c1 == c2
DATnodoTLH = [DATnodoTLHd; DATnodoTLH];
elseif c1 < c2 % solo giorno di riferimento
DATnodoTLH = DATnodoTLHd;
end
[rDAT,cDAT] = size(DATnodoTLH);
if rDAT==1 && cDAT==1
if strcmp(IDcentralina,'ID0174')==0
clear DatiElabTiltLinkH
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabTiltLinkH);
if rDE ~= rDAT
if strcmp(IDcentralina,'ID0174')==0
clear DatiElabTiltLinkH
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
end
DatiElabTiltLinkH(:,ini_col:col) = DATnodoTLH(:,:);
end
col = col+13;
ii = ii+1;
end
if Condition == 1
datainiTLH = datenum(datainiTLH) - 1;
Data_scarico = datestr(datainiTLH,'yyyy-mm-dd HH:MM:SS');
datainiTLH = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabTiltLinkH(1,5:13:end)));
for jj = 1:rTLH
if Check == 1
datainiTLH = datenum(datainiTLH) - 1;
Data_scarico = datestr(datainiTLH,'yyyy-mm-dd HH:MM:SS');
datainiTLH = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'Tilt Link H executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabTiltLinkH = [];
end
else
datainiTLH = [];
tempoiniTLH = [];
DatiElabTiltLinkH = [];
NuovoZeroTLH = 0;
end
%% Tilt Link HR H
if yesTLHRH == 1 % Importo ultimo dato elaborato dei Tilt Link HR H
NodeNumTLHRH = num2str(cell2mat(NodoTiltLinkHRH(1,2))); % scarico i dati del primo nodo Tilt Link HR H
NodeType = 'Tilt Link HR H';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLHRH ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLHRH ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTLHRH ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiTLHRH = datestr(data1,'yyyy-mm-dd');
tempoiniTLHRH = datestr(data1,'HH:MM:SS');
NuovoZeroTLHRH = 0;
DatiElabTiltLinkHRH = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst_HR > Ndati
if margine < Wdevst_HR/2
margine = round(Wdevst_HR/2+1);
end
cont = Wdevst_HR + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiTLHRH = datestr(data2,'yyyy-mm-dd');
tempoiniTLHRH = datestr(data2,'HH:MM:SS');
NuovoZeroTLHRH = 1; %1
else
datainiTLHRH = datestr(data1,'yyyy-mm-dd');
tempoiniTLHRH = datestr(data1,'HH:MM:SS');
NuovoZeroTLHRH = 0;
end
end
if NuovoZeroTLHRH == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiTLHRH) < datenum(date)
datainiTLHRH = date;
end
NTiltLinkHRH = cell2mat(NodoTiltLinkHRH(:,2));
ii = 1; % contatore
col = 13; % contatore colonne
Condition = 0;
while ii <= rTLHRH
ini_col = col-12;
nN = num2str(NTiltLinkHRH(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTLHRHd = curs.Data;
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoTLHRH = curs.Data;
[~,c1] = size(DATnodoTLHRH);
[~,c2] = size(DATnodoTLHRHd);
if c1 == c2
DATnodoTLHRH = [DATnodoTLHRHd; DATnodoTLHRH];
elseif c1 < c2 % solo giorno di riferimento
DATnodoTLHRH = DATnodoTLHRHd;
end
[rDAT,cDAT] = size(DATnodoTLHRH);
if rDAT==1 && cDAT==1
clear DatiElabTiltLinkHRH
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabTiltLinkHRH);
if rDE ~= rDAT
clear DatiElabTiltLinkHRH
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
DatiElabTiltLinkHRH(:,ini_col:col) = DATnodoTLHRH(:,:);
end
col = col+13;
ii = ii+1;
end
if Condition == 1
datainiTLHRH = datenum(datainiTLHRH) - 1;
Data_scarico = datestr(datainiTLHRH,'yyyy-mm-dd HH:MM:SS');
datainiTLHRH = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabTiltLinkHRH(1,5:13:end)));
for jj = 1:rTLHRH
if Check == 1
datainiTLHRH = datenum(datainiTLHRH) - 1;
Data_scarico = datestr(datainiTLHRH,'yyyy-mm-dd HH:MM:SS');
datainiTLHRH = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'Tilt Link HR H executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabTiltLinkHRH = [];
end
else
datainiTLHRH = [];
tempoiniTLHRH = [];
DatiElabTiltLinkHRH = [];
NuovoZeroTLHRH = 0;
end
%% Piezo Link
if yesPL == 1 % Importo ultimo dato elaborato dei Piezo Link
NodeNumPL = num2str(cell2mat(NodoPiezoLink(1,2))); % scarico i dati del primo nodo Piezo Link
NodeType = 'Piezo Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiPL = datestr(data1,'yyyy-mm-dd');
tempoiniPL = datestr(data1,'HH:MM:SS');
NuovoZeroPL = 0;
marginePiezo = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
marginePiezo = 1;
if Ndatidespike > NdatiMediaP
Ndati = Ndatidespike;
else
Ndati = NdatiMediaP;
end
if Wdevst > Ndati
if marginePiezo < Wdevst/2
marginePiezo = round(Wdevst/2+1);
end
cont = Wdevst + marginePiezo;
else
if marginePiezo < Ndati/2
marginePiezo = round(Ndati/2+1);
end
cont = Ndati + marginePiezo;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiPL = datestr(data2,'yyyy-mm-dd');
tempoiniPL = datestr(data2,'HH:MM:SS');
NuovoZeroPL = 1;
else
datainiPL = datestr(data1,'yyyy-mm-dd');
tempoiniPL = datestr(data1,'HH:MM:SS');
NuovoZeroPL = 0;
end
end
text = 'Piezo Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiPL = [];
tempoiniPL = [];
NuovoZeroPL = 0;
marginePiezo = [];
end
%% Baro Link
if strcmp(NodoPiezoLink(1,4),'VW kPa') == 1 || strcmp(NodoPiezoLink(1,4),'VW kg/cm2') == 1
elseif yesBL == 0 && yesPL == 1
% carico le informazioni relative al numero e alla profondit<69> per
% BARO LINK recuperato
IDunitBaro = Barometri(:,2);
DTcatenaBaro = Barometri(:,1);
[rIB,~] = size(IDunitBaro);
unitID = cell(rIB,1);
idToolB = cell(rIB,1);
Leggo = cell(rIB,2);
for b = 1:rIB
comando = ['select id from units where name = ''' char(IDunitBaro(b,1)) ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
unitID(b,1) = cellstr(num2str(cell2mat(curs.Data)));
comando = ['select id from tools where name = ''' char(DTcatenaBaro(b,1)) ''' and unit_id = '''...
char(unitID(b,1)) ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
idToolB(b,1) = cellstr(num2str(cell2mat(curs.Data)));
comando = ['select num, depth from nodes where tool_id = ''' char(idToolB(b,1)) ''' and nodetype_id = 3'];
curs = exec(conn,comando);
curs = fetch(curs);
Leggo(b,:) = cell(curs.Data);
end
% cambio il segno della profondit<69> (nel DB <20> positivo)
depthB = cell2mat(Leggo(:,2));
depthB = (-1)*depthB;
depthB = num2cell(depthB);
[r,~] = size(depthB);
nome = cell(r,1);
for i=1:r
nome(i,1) = cellstr('Baro Link');
end
NodoBaroLink = [nome Leggo(:,1) depthB];
end
if yesBL == 1 % Importo ultimo dato elaborato dei Baro Link
NodeNumBL = num2str(cell2mat(NodoBaroLink(1,2))); % scarico i dati del primo nodo Baro Link
NodeType = 'Baro Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumBL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumBL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumBL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
end
if strcmp(NodoPiezoLink(1,4),'VW kPa') == 1 || strcmp(NodoPiezoLink(1,4),'VW kg/cm2') == 1
Barometro = [];
% Non ho il barometro, ma ho il piezometro
elseif yesBL == 0 && yesPL == 1
% Cerco se ci sono dati del barometro in corrispondenza di datainiPL
NodeType = 'Baro Link';
option = 0;
for b = 1:rIB
IDcentralinaBaro = char(Barometri(b,2));
DTcatenaBaro = char(Barometri(b,1));
NodeNumBL = cellstr(num2str(cell2mat(Leggo(b,1))));
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
datainiPL ''' and time >= ''' tempoiniPL ''' and UnitName = ''' IDcentralinaBaro ''' and ToolNameID = '''...
DTcatenaBaro ''' and NodeType = ''' NodeType ''' and NodeNum =' char(NodeNumBL) ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI == 1 && cI == 1
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
option = 0;
break
end
end
[rI,cI] = size(D_num_ini);
if rI == 1 && cI == 1 % Se in nessuno dei barometri ho trovato dati per
% quella data, cerco una data precedente e prendo la maggiore
for b = 1:rIB
IDcentralinaBaro = char(Barometri(b,2));
DTcatenaBaro = char(Barometri(b,1));
NodeNumBL = cellstr(num2str(cell2mat(Leggo(b,1))));
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date < ''' ...
datainiPL ''' and UnitName = ''' IDcentralinaBaro ''' and ToolNameID = '''...
DTcatenaBaro ''' and NodeType = ''' NodeType ''' and NodeNum =' char(NodeNumBL) ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI == 1 && cI == 1
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
option = 1;
break
end
end
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
Barometro = Barometri(b,:);
if option == 0
dataBaro = Data_num_ini(1);
elseif option == 1
dataBaro = Data_num_ini(end);
end
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
if dataBaro>data1a
data1 = dataBaro;
else
data1 = data1a;
end
rLE = 2; % forzo il parametro per il passaggio successivo
cLE = 2; % forzo il parametro per il passaggio successivo
else
Barometro = [];
end
if yesBL == 1 || yesPL == 1
if rLE==1 && cLE==1
datainiBL = datestr(data1,'yyyy-mm-dd');
tempoiniBL = datestr(data1,'HH:MM:SS');
NuovoZeroBL = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
if strcmp(char(Data_LastElab),'No Data') == 0
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
marginePiezo = 1;
if Ndatidespike > NdatiMediaP
Ndati = Ndatidespike;
else
Ndati = NdatiMediaP;
end
if Wdevst > Ndati
if marginePiezo < Wdevst/2
marginePiezo = round(Wdevst/2+1);
end
cont = Wdevst + marginePiezo;
else
if marginePiezo < Ndati/2
marginePiezo = round(Ndati/2+1);
end
cont = Ndati + marginePiezo;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiBL = datestr(data2,'yyyy-mm-dd');
tempoiniBL = datestr(data2,'HH:MM:SS');
NuovoZeroBL = 1; %1
else
datainiBL = datestr(data1,'yyyy-mm-dd');
tempoiniBL = datestr(data1,'HH:MM:SS');
NuovoZeroBL = 0;
end
else
datainiBL = datestr(data1,'yyyy-mm-dd');
tempoiniBL = datestr(data1,'HH:MM:SS');
NuovoZeroBL = 0;
end
end
if yesBL == 0 && yesPL == 1
dataBL = datenum(datainiBL);
dataPL = datenum(datainiPL);
if dataBL > dataPL % la data di primo scarico del barometro <20> maggiore del piezometro. Per l'elaborazione deve essere almeno il contrario
datainiBL = datainiPL;
end
end
text = 'Baro Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiBL = [];
tempoiniBL = [];
NuovoZeroBL = 0;
Barometro = [];
end
%% Therm Link
if yesThL == 1 % Importo ultimo dato elaborato dei Therm Link
NodeNumThL = num2str(cell2mat(NodoThermLink(1,2))); % scarico i dati del primo nodo Therm Link
NodeType = 'Therm Link HR';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumThL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumThL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumThL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiThL = datestr(data1,'yyyy-mm-dd');
tempoiniThL = datestr(data1,'HH:MM:SS');
NuovoZeroThL = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiThL = datestr(data2,'yyyy-mm-dd');
tempoiniThL = datestr(data2,'HH:MM:SS');
NuovoZeroThL = 1;
else
datainiThL = datestr(data1,'yyyy-mm-dd');
tempoiniThL = datestr(data1,'HH:MM:SS');
NuovoZeroThL = 0;
end
end
text = 'Therm Link HR executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiThL = [];
tempoiniThL = [];
NuovoZeroThL = 0;
end
%% Load Link
if yesLL == 1 % Importo ultimo dato elaborato dei Load Link
NodeNumLL = num2str(cell2mat(NodoLoadLink(1,2))); % scarico i dati del primo nodo Load Link
NodeType = 'Load Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumLL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumLL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumLL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiLL = datestr(data1,'yyyy-mm-dd');
tempoiniLL = datestr(data1,'HH:MM:SS');
NuovoZeroLL = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiLL = datestr(data2,'yyyy-mm-dd');
tempoiniLL = datestr(data2,'HH:MM:SS');
NuovoZeroLL = 1; %1
else
datainiLL = datestr(data1,'yyyy-mm-dd');
tempoiniLL = datestr(data1,'HH:MM:SS');
NuovoZeroLL = 0;
end
end
text = 'Load Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiLL = [];
tempoiniLL = [];
NuovoZeroLL = 0;
end
%% Rain Link
if yesRL == 1 % Importo ultimo dato elaborato dei Rain Link
NodeNumRL = num2str(cell2mat(NodoRainLink(1,2))); % scarico i dati del primo nodo Rain Link
NodeType = 'Rain Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumRL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumRL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumRL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiRL = datestr(data1,'yyyy-mm-dd');
tempoiniRL = datestr(data1,'HH:MM:SS');
NuovoZeroRL = 0;
DatiElabRainLink = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiRL = datestr(data2,'yyyy-mm-dd');
tempoiniRL = datestr(data2,'HH:MM:SS');
NuovoZeroRL = 1; %1
else
datainiRL = datestr(data1,'yyyy-mm-dd');
tempoiniRL = datestr(data1,'HH:MM:SS');
NuovoZeroRL = 0;
end
end
if NuovoZeroRL == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiRL) < datenum(date)
datainiRL = date;
end
NRainLink = cell2mat(NodoRainLink(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 4; % contatore colonne
Condition = 0;
while ii <= rRL
ini_col = col-3;
nN = num2str(NRainLink(ii,1));
% Scarico di dati di pioggia
comando = ['select EventDate, EventTime, ZShift, Z from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoRLd = curs.Data;
% Scarico di dati di pioggia
comando = ['select EventDate, EventTime, ZShift, Z from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoRL = curs.Data;
[~,c1] = size(DATnodoRL);
[~,c2] = size(DATnodoRLd);
if c1 == c2
DATnodoRL = [DATnodoRLd; DATnodoRL];
elseif c1 < c2 % solo giorno di riferimento
DATnodoRL = DATnodoRLd;
end
[rDAT,cDAT] = size(DATnodoRL);
if rDAT==1 && cDAT==1
clear DatiElabRainLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabRainLink);
if rDE ~= rDAT
clear DatiElabRainLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
DatiElabRainLink(:,ini_col:col) = DATnodoRL(:,:);
end
col = col+4;
ii = ii+1;
end
if Condition == 1
datainiRL = datenum(datainiRL) - 1;
Data_scarico = datestr(datainiRL,'yyyy-mm-dd HH:MM:SS');
datainiRL = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabRainLink(1,3:16:end)));
for jj = 1:rRL
if Check == 1
datainiRL = datenum(datainiRL) - 1;
Data_scarico = datestr(datainiRL,'yyyy-mm-dd HH:MM:SS');
datainiRL = Data_scarico;
break
else
NAN = 1;
end
end
end
end
else
DatiElabRainLink = [];
end
text = 'Rain Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiRL = [];
tempoiniRL = [];
NuovoZeroRL = 0;
DatiElabRainLink = [];
end
%% SPP Link
if yesSPP == 1 % Importo ultimo dato elaborato dei SPP Link
NodeNumSPP = num2str(cell2mat(NodoSPPLink(1,2))); % scarico i dati del primo nodo SPP Link
NodeType = 'SPP Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumSPP ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumSPP ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumSPP ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiSPP = datestr(data1,'yyyy-mm-dd');
tempoiniSPP = datestr(data1,'HH:MM:SS');
NuovoZeroSPP = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiSPP = datestr(data2,'yyyy-mm-dd');
tempoiniSPP = datestr(data2,'HH:MM:SS');
NuovoZeroSPP = 1;
else
datainiSPP = datestr(data1,'yyyy-mm-dd');
tempoiniSPP = datestr(data1,'HH:MM:SS');
NuovoZeroSPP = 0;
end
end
text = 'SPP Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiSPP = [];
tempoiniSPP = [];
NuovoZeroSPP = [];
end
%% Klino Link
if yesKL == 1 % Importo ultimo dato elaborato dei Klino Link
NodeNumKL = num2str(cell2mat(NodoKlinoLink(rKL,2))); % scarico i dati del primo nodo Klino Link
NodeType = 'Klino Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumKL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumKL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumKL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiKL = datestr(data1,'yyyy-mm-dd');
tempoiniKL = datestr(data1,'HH:MM:SS');
NuovoZeroKL = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiKL = datestr(data2,'yyyy-mm-dd');
tempoiniKL = datestr(data2,'HH:MM:SS');
NuovoZeroKL = 1; %1
else
datainiKL = datestr(data1,'yyyy-mm-dd');
tempoiniKL = datestr(data1,'HH:MM:SS');
NuovoZeroKL = 0;
end
end
text = 'Klino Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiKL = [];
tempoiniKL = [];
NuovoZeroKL = 0;
end
%% Klino Link HR
if yesKLHR == 1 % Importo ultimo dato elaborato dei Klino Link
NodeNumKLHR = num2str(cell2mat(NodoKlinoLinkHR(rKLHR,2))); % scarico i dati del primo nodo Klino Link HR
NodeType = 'Klino Link HR';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumKLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumKLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumKLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiKLHR = datestr(data1,'yyyy-mm-dd');
tempoiniKLHR = datestr(data1,'HH:MM:SS');
NuovoZeroKLHR = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst_HR > Ndati
if margine < Wdevst_HR/2
margine = round(Wdevst_HR/2+1);
end
cont = Wdevst_HR + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiKLHR = datestr(data2,'yyyy-mm-dd');
tempoiniKLHR = datestr(data2,'HH:MM:SS');
NuovoZeroKLHR = 1; %1
else
datainiKLHR = datestr(data1,'yyyy-mm-dd');
tempoiniKLHR = datestr(data1,'HH:MM:SS');
NuovoZeroKLHR = 0;
end
end
text = 'Klino Link HR executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiKLHR = [];
tempoiniKLHR = [];
NuovoZeroKLHR = 0;
end
%% PT100 Link
if yesPT100 == 1 % Importo ultimo dato elaborato dei PT100 Link
[rPT100,~] = size(NodoPT100Link);
NodeNumPT100 = num2str(cell2mat(NodoPT100Link(rPT100,2))); % scarico i dati del primo nodo PT100 Link
NodeType = 'PT100 Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPT100 ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPT100 ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPT100 ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiPT100 = datestr(data1,'yyyy-mm-dd');
tempoiniPT100 = datestr(data1,'HH:MM:SS');
NuovoZeroPT100 = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiPT100 = datestr(data2,'yyyy-mm-dd');
tempoiniPT100 = datestr(data2,'HH:MM:SS');
NuovoZeroPT100 = 1;
else
datainiPT100 = datestr(data1,'yyyy-mm-dd');
tempoiniPT100 = datestr(data1,'HH:MM:SS');
NuovoZeroPT100 = 0;
end
end
text = 'PT100 Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiPT100 = [];
tempoiniPT100 = [];
NuovoZeroPT100 = 0;
end
%% In Place Link
if yesIPL == 1 % Importo ultimo dato elaborato dei In Place Link
NodeNumIPL = num2str(cell2mat(NodoInPlaceLink(1,2))); % scarico i dati del primo nodo In Place Link
NodeType = 'In Place Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumIPL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumIPL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumIPL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiIPL = datestr(data1,'yyyy-mm-dd');
tempoiniIPL = datestr(data1,'HH:MM:SS');
NuovoZeroIPL = 0;
DatiElabInPlaceLink = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiIPL = datestr(data2,'yyyy-mm-dd');
tempoiniIPL = datestr(data2,'HH:MM:SS');
NuovoZeroIPL = 1;
else
datainiIPL = datestr(data1,'yyyy-mm-dd');
tempoiniIPL = datestr(data1,'HH:MM:SS');
NuovoZeroIPL = 0;
end
end
if NuovoZeroIPL == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiIPL) < datenum(date)
datainiIPL = date;
end
NInPlaceLink = cell2mat(NodoInPlaceLink(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 16; % contatore colonne
Condition = 0;
while ii <= rIPL
ini_col = col-15;
nN = num2str(NInPlaceLink(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoIPLd = curs.Data;
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, '...
'HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local '...
'from ElabDataView where EventDate > ''' Data_scarico(1,1:10) ''' and UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoIPL = curs.Data;
[~,c1] = size(DATnodoIPL);
[~,c2] = size(DATnodoIPLd);
if c1 == c2
DATnodoIPL = [DATnodoIPLd; DATnodoIPL];
elseif c1 < c2 % solo giorno di riferimento
DATnodoIPL = DATnodoIPLd;
end
[rDAT,cDAT] = size(DATnodoIPL);
if rDAT==1 && cDAT==1
if strcmp(IDcentralina,'ID0146') == 0 || strcmp(IDcentralina,'ID0214') == 0 ...
|| strcmp(IDcentralina,'ID0236') == 0
clear DatiElabInPlaceLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabInPlaceLink);
if rDE ~= rDAT
if strcmp(IDcentralina,'ID0146') == 0 || strcmp(IDcentralina,'ID0214') == 0 ...
|| strcmp(IDcentralina,'ID0236') == 0
clear DatiElabInPlaceLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
DATnodoIPL(end+1:rDE,:) = DATnodoIPL(end,:);
end
end
end
DatiElabInPlaceLink(:,ini_col:col) = DATnodoIPL(:,:);
end
col = col+16;
ii = ii+1;
end
if Condition == 1
datainiIPL = datenum(datainiIPL) - 1;
Data_scarico = datestr(datainiIPL,'yyyy-mm-dd HH:MM:SS');
datainiIPL = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabInPlaceLink(1,3:16:end)));
for jj = 1:rIPL
if Check(1,jj) == 1
datainiIPL = datenum(datainiIPL) - 1;
Data_scarico = datestr(datainiIPL,'yyyy-mm-dd HH:MM:SS');
datainiIPL = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'In Place Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabInPlaceLink = [];
end
else
datainiIPL = [];
tempoiniIPL = [];
DatiElabInPlaceLink = [];
NuovoZeroIPL = 0;
end
%% In Place Link HR
if yesIPLHR == 1 % Importo ultimo dato elaborato dei In Place Link HR
NodeNumIPLHR = num2str(cell2mat(NodoInPlaceLinkHR(1,2))); % scarico i dati del primo nodo
NodeType = 'In Place Link HR';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and Time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumIPLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI == 1 && cI == 1
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumIPLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI && cI == 1
Data_num_ini = 0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumIPLHR ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiIPLHR = datestr(data1,'yyyy-mm-dd');
tempoiniIPLHR = datestr(data1,'HH:MM:SS');
NuovoZeroIPLHR = 0;
DatiElabInPlaceLinkHR = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst_HR > Ndati
if margine < Wdevst_HR/2
margine = round(Wdevst_HR/2+1);
end
cont = Wdevst_HR + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiIPLHR = datestr(data2,'yyyy-mm-dd');
tempoiniIPLHR = datestr(data2,'HH:MM:SS');
NuovoZeroIPLHR = 1; %1
else
datainiIPLHR = datestr(data1,'yyyy-mm-dd');
tempoiniIPLHR = datestr(data1,'HH:MM:SS');
NuovoZeroIPLHR = 0;
end
end
if NuovoZeroIPLHR == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiIPLHR) < datenum(date)
datainiIPLHR = date;
end
NInPlaceLinkHR = cell2mat(NodoInPlaceLinkHR(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 16; % contatore colonne
Condition = 0;
while ii <= rIPLHR
ini_col = col-15;
nN = num2str(NInPlaceLinkHR(ii,1));
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoIPLHRd = curs.Data;
% Scarico di dati di spostamenti
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, HShift, HShift_local, HShiftDir, T_node, speed, speed_local, acceleration, acceleration_local from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoIPLHR = curs.Data;
[~,c1] = size(DATnodoIPLHR);
[~,c2] = size(DATnodoIPLHRd);
if c1 == c2
DATnodoIPLHR = [DATnodoIPLHRd; DATnodoIPLHR];
elseif c1 < c2 % solo giorno di riferimento
DATnodoIPLHR = DATnodoIPLHRd;
end
[rDAT,cDAT] = size(DATnodoIPLHR);
if rDAT==1 && cDAT==1
if strcmp(IDcentralina,'ID0146') == 0 || strcmp(IDcentralina,'ID0214') == 0 || ...
strcmp(IDcentralina,'ID0236') == 0
clear DatiElabInPlaceLinkHR
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabInPlaceLinkHR);
if rDE ~= rDAT
if strcmp(IDcentralina,'ID0146') == 0 || strcmp(IDcentralina,'ID0214') == 0 || ...
strcmp(IDcentralina,'ID0236') == 0
clear DatiElabInPlaceLinkHR
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
DATnodoIPLHR(end+1:rDE,:) = DATnodoIPLHR(end,:);
end
end
end
DatiElabInPlaceLinkHR(:,ini_col:col) = DATnodoIPLHR(:,:);
end
col = col+16;
ii = ii+1;
end
if Condition == 1
datainiIPLHR = datenum(datainiIPLHR) - 1;
Data_scarico = datestr(datainiIPLHR,'yyyy-mm-dd HH:MM:SS');
datainiIPLHR = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabInPlaceLinkHR(1,3:16:end)));
for jj = 1:rIPLHR
if Check(1,jj) == 1
datainiIPLHR = datenum(datainiIPLHR) - 1;
Data_scarico = datestr(datainiIPLHR,'yyyy-mm-dd HH:MM:SS');
datainiIPLHR = Data_scarico;
break
else
NAN = 1;
end
end
end
end
text = 'In Place Link HR executed during LastElab function';
fprintf(fileID,fmt,text);
else
DatiElabInPlaceLinkHR = [];
end
else
datainiIPLHR = [];
tempoiniIPLHR = [];
DatiElabInPlaceLinkHR = [];
NuovoZeroIPLHR = 0;
end
%% Weir Link
if yesWL == 1 % Importo ultimo dato elaborato dei Weir Link
[rWL,~] = size(NodoWeirLink);
NodeNumWeir = num2str(cell2mat(NodoWeirLink(rWL,2))); % scarico i dati del primo nodo Weir Link
NodeType = 'Weir Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumWeir ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumWeir ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumWeir ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiWL = datestr(data1,'yyyy-mm-dd');
tempoiniWL = datestr(data1,'HH:MM:SS');
NuovoZeroWL = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiWL = datestr(data2,'yyyy-mm-dd');
tempoiniWL = datestr(data2,'HH:MM:SS');
NuovoZeroWL = 1;
else
datainiWL = datestr(data1,'yyyy-mm-dd');
tempoiniWL = datestr(data1,'HH:MM:SS');
NuovoZeroWL = 0;
end
end
text = 'Weir Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiWL = [];
tempoiniWL = [];
NuovoZeroWL = 0;
end
%% Pendulum
if yesPE == 1 % Importo ultimo dato elaborato dei Pendulum
[rPE,~] = size(NodoPendulum);
NodeNumPE = num2str(cell2mat(NodoPendulum(rPE,2))); % scarico i dati del primo nodo Pendulum
NodeType = 'Pendulum';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPE ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPE ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumPE ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiPE = datestr(data1,'yyyy-mm-dd');
tempoiniPE = datestr(data1,'HH:MM:SS');
NuovoZeroPE = 0;
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
data2 = datenum(Data_scarico);
if data2 > data1
datainiPE = datestr(data2,'yyyy-mm-dd');
tempoiniPE = datestr(data2,'HH:MM:SS');
NuovoZeroPE = 1;
else
datainiPE = datestr(data1,'yyyy-mm-dd');
tempoiniPE = datestr(data1,'HH:MM:SS');
NuovoZeroPE = 0;
end
end
text = 'Pendulum executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiPE = [];
tempoiniPE = [];
NuovoZeroPE = 0;
end
%% Snow Link
if yesSL == 1
NodeNumSL = num2str(cell2mat(NodoSnowLink(1,2)));
NodeType = 'Snow Link';
% Dati Grezzi
comando = ['select Date, Time from RawDataView where Date = ''' ...
date ''' and time >= ''' time ''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumSL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
if rI && cI == 1 % Non ci sono dati per la data "date"
comando = ['select Date, Time from RawDataView where Date > ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumSL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
D_num_ini = curs.Data;
[rI,cI] = size(D_num_ini);
end
if rI == 1 && cI == 1
Data_num_ini=0;
else
Data_num_ini = [cell2mat(D_num_ini(:,1)) repmat(' ', [rI,1]) cell2mat(D_num_ini(:,2))];
end
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
% Dati elaborati
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumSL ' '];
curs = exec(conn,comando);
curs = fetch(curs);
Data_LastElab = curs.Data;
[rLE,cLE] = size(Data_LastElab);
Date = [cell2mat(Data(1,1)) repmat(' ', [1,1]) cell2mat(Data(1,2))];
data1a = datenum(Date);
data1b = Data_num_ini(1);
if data1b>data1a
data1 = data1b;
else
data1 = data1a;
end
if rLE==1 && cLE==1
datainiSL = datestr(data1,'yyyy-mm-dd');
tempoiniSL = datestr(data1,'HH:MM:SS');
NuovoZeroSL = 0;
DatiElabSnowLink = [];
else
% Modifico il formato di data e ora in DATini.
[rD,~] = size(Data_LastElab);
Data_numero = [cell2mat(Data_LastElab(:,1)) repmat(' ', [rD,1]) cell2mat(Data_LastElab(:,2))];
Data_numero = datenum(Data_numero); % tutte le date presenti nel DB grezzo
margine = 1;
if Ndatidespike > NdatiMedia
Ndati = Ndatidespike;
else
Ndati = NdatiMedia;
end
if Wdevst > Ndati
if margine < Wdevst/2
margine = round(Wdevst/2+1);
end
cont = Wdevst + margine;
else
if margine < Ndati/2
margine = round(Ndati/2+1);
end
cont = Ndati + margine;
end
if cont < round(Ndatidespike/2)
cont = round(Ndatidespike/2);
end
[rDS,~] = size(Data_numero);
if rDS <= cont
cont = rDS-1;
end
Data_scarico = Data_numero(end-cont);
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd HH:MM:SS');
data2 = datenum(Data_scarico);
if data2 > data1
datainiSL = datestr(data2,'yyyy-mm-dd');
tempoiniSL = datestr(data2,'HH:MM:SS');
NuovoZeroSL = 1; %1
else
datainiSL = datestr(data1,'yyyy-mm-dd');
tempoiniSL = datestr(data1,'HH:MM:SS');
NuovoZeroSL = 0;
end
end
if NuovoZeroSL == 1 % scarico gli ultimi dati elaborati
NAN = 0;
while NAN == 0
if datenum(datainiSL) < datenum(date)
datainiSL = date;
end
NSnowLink = cell2mat(NodoSnowLink(:,2));
% mi serve almeno una settimana per calcolare i maggiori spostamenti settimanali
ii = 1; % contatore
col = 4; % contatore colonne
Condition = 0;
while ii <= rSL
ini_col = col-3;
nN = num2str(NSnowLink(ii,1));
% Scarico di dati di pioggia
comando = ['select EventDate, EventTime, ZShift, Z from ElabDataView where EventDate = ''' ...
Data_scarico(1,1:10) ''' and EventTime >= ''' Data_scarico(1,12:end) ''' and UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoSLd = curs.Data;
% Scarico di dati di pioggia
comando = ['select EventDate, EventTime, ZShift, Z from ElabDataView where EventDate > ''' ...
Data_scarico(1,1:10) ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeType = ''' NodeType ''' and NodeNum = ''' nN ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DATnodoSL = curs.Data;
[~,c1] = size(DATnodoSL);
[~,c2] = size(DATnodoSLd);
if c1 == c2
DATnodoSL = [DATnodoSLd; DATnodoSL];
elseif c1 < c2 % solo giorno di riferimento
DATnodoSL = DATnodoSLd;
end
[rDAT,cDAT] = size(DATnodoSL);
if rDAT==1 && cDAT==1
clear DatiElabSnowLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
else
if ii > 1 % Nodo successivo al primo
[rDE,~] = size(DatiElabSnowLink);
if rDE ~= rDAT
clear DatiElabSnowLink
fclose(fileID);
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
Condition = 1;
break
end
end
DatiElabSnowLink(:,ini_col:col) = DATnodoSL(:,:);
end
col = col+4;
ii = ii+1;
end
if Condition == 1
datainiSL = datenum(datainiSL) - 1;
Data_scarico = datestr(datainiSL,'yyyy-mm-dd HH:MM:SS');
datainiSL = Data_scarico;
fileID = fopen(FileName,'a');
else
Check = isnan(cell2mat(DatiElabSnowLink(1,3:16:end)));
for jj = 1:rRL
if Check == 1
datainiSL = datenum(datainiSL) - 1;
Data_scarico = datestr(datainiSL,'yyyy-mm-dd HH:MM:SS');
datainiSL = Data_scarico;
break
else
NAN = 1;
end
end
end
end
else
DatiElabSnowLink = [];
end
text = 'Snow Link executed during LastElab function';
fprintf(fileID,fmt,text);
else
datainiSL = [];
tempoiniSL = [];
NuovoZeroSL = 0;
DatiElabSnowLink = [];
end
text = 'LastElab function worked correctly';
fprintf(fileID,fmt,text);
fclose(fileID);
end