3044 lines
121 KiB
Matlab
Executable File
3044 lines
121 KiB
Matlab
Executable File
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 |