Sync from remote server: 2025-10-12 18:56:41
This commit is contained in:
946
RSN/LastElab.m
Executable file
946
RSN/LastElab.m
Executable file
@@ -0,0 +1,946 @@
|
||||
function [NuovoZeroRSN,datainiRSN,tempoiniRSN,NuovoZeroRSNHR,datainiRSNHR,tempoiniRSNHR,...
|
||||
DatiElabTriggerLink,NuovoZeroTrL,datainiTrL,tempoiniTrL,DatiElabShockSensor,NuovoZeroSS,...
|
||||
datainiSS,tempoiniSS,NuovoZeroLL,datainiLL,tempoiniLL,datainiGF,tempoiniGF,datainiGS,tempoiniGS,...
|
||||
DatiElabDebrisLink,NuovoZeroDL,datainiDL,tempoiniDL]...
|
||||
= LastElab(conn,date,time,IDcentralina,DTcatena,NdatiMedia,NodoRSNLink,yesRSN,NodoRSNLinkHR,yesRSNHR,...
|
||||
NodoTriggerLink,yesTrL,rTrL,NodoSS,yesSS,rSS,NodoLoadLink,yesLL,yesGF,yesGS,NodoDebrisLink,yesDL,...
|
||||
rDL,Ndatidespike,FileName)
|
||||
|
||||
% Apro scrittura file
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
text = 'LastElab function started';
|
||||
fprintf(fileID,fmt,text);
|
||||
|
||||
Data(1,1) = cellstr(date);
|
||||
Data(1,2) = cellstr(time);
|
||||
|
||||
%% RSN Link
|
||||
if yesRSN == 1 % Importo ultimo dato elaborato dei RSN Link
|
||||
NodeNumRSN = num2str(cell2mat(NodoRSNLink(1,2))); % scarico i dati del primo nodo RSN Link
|
||||
NodeType = 'RSN 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 =' NodeNumRSN ' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
D_num_ini = curs.Data;
|
||||
[rI,cI] = size(D_num_ini);
|
||||
if rI == 1 && 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 =' NodeNumRSN ' '];
|
||||
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
|
||||
|
||||
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
|
||||
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
|
||||
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumRSN ' '];
|
||||
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
|
||||
datainiRSN = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniRSN = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroRSN = 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 margine < Ndati/2
|
||||
margine = round(Ndati/2+1);
|
||||
end
|
||||
cont = Ndati + margine;
|
||||
if cont < 3
|
||||
cont = 3;
|
||||
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
|
||||
datainiRSN = datestr(data2,'yyyy-mm-dd');
|
||||
tempoiniRSN = datestr(data2,'HH:MM:SS');
|
||||
NuovoZeroRSN = 1;
|
||||
else
|
||||
datainiRSN = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniRSN = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroRSN = 0;
|
||||
end
|
||||
end
|
||||
text = 'RSN Link executed during LastElab function';
|
||||
fprintf(fileID,fmt,text);
|
||||
else
|
||||
datainiRSN = [];
|
||||
tempoiniRSN = [];
|
||||
NuovoZeroRSN = 0;
|
||||
end
|
||||
|
||||
%% RSN Link HR
|
||||
if yesRSNHR == 1 % Importo ultimo dato elaborato dei RSN Link HR
|
||||
NodeNumRSNHR = num2str(cell2mat(NodoRSNLinkHR(1,2))); % scarico i dati del primo nodo RSN Link HR
|
||||
NodeType = 'RSN 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 =' NodeNumRSNHR ' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
D_num_ini = curs.Data;
|
||||
[rI,cI] = size(D_num_ini);
|
||||
if rI == 1 && 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 =' NodeNumRSNHR ' '];
|
||||
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
|
||||
|
||||
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
|
||||
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena...
|
||||
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumRSNHR ' '];
|
||||
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
|
||||
datainiRSNHR = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniRSNHR = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroRSNHR = 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 margine < Ndati/2
|
||||
margine = round(Ndati/2+1);
|
||||
end
|
||||
cont = Ndati + margine;
|
||||
if cont < 3
|
||||
cont = 3;
|
||||
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
|
||||
datainiRSNHR = datestr(data2,'yyyy-mm-dd');
|
||||
tempoiniRSNHR = datestr(data2,'HH:MM:SS');
|
||||
NuovoZeroRSNHR = 1; %1
|
||||
else
|
||||
datainiRSNHR = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniRSNHR = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroRSNHR = 0;
|
||||
end
|
||||
end
|
||||
text = 'RSN Link HR executed during LastElab function';
|
||||
fprintf(fileID,fmt,text);
|
||||
else
|
||||
datainiRSNHR = [];
|
||||
tempoiniRSNHR = [];
|
||||
NuovoZeroRSNHR = 0;
|
||||
end
|
||||
|
||||
%% Trigger Link
|
||||
if yesTrL == 1 % Importo ultimo dato elaborato dei Trigger Link
|
||||
NodeNumTrL = num2str(cell2mat(NodoTriggerLink(1,2))); % scarico i dati del primo nodo Trigger Link
|
||||
NodeType = 'Trigger 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 =' NodeNumTrL ' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
D_num_ini = curs.Data;
|
||||
[rI,cI] = size(D_num_ini);
|
||||
if rI == 1 && 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 =' NodeNumTrL ' '];
|
||||
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
|
||||
|
||||
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
|
||||
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
|
||||
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumTrL ' '];
|
||||
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
|
||||
datainiTrL = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniTrL = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroTrL = 0;
|
||||
DatiElabTriggerLink = [];
|
||||
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;
|
||||
|
||||
Data_scarico = Data_numero(end)-margine;
|
||||
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
|
||||
data2 = datenum(Data_scarico);
|
||||
if data2 > data1
|
||||
datainiTrL = datestr(data2,'yyyy-mm-dd');
|
||||
tempoiniTrL = datestr(data2,'HH:MM:SS');
|
||||
NuovoZeroTrL = 1;
|
||||
else
|
||||
datainiTrL = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniTrL = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroTrL = 0;
|
||||
end
|
||||
end
|
||||
|
||||
if NuovoZeroTrL == 1 % scarico gli ultimi dati elaborati
|
||||
NAN = 0;
|
||||
while NAN == 0
|
||||
if datenum(datainiTrL) < datenum(date)
|
||||
datainiTrL = date;
|
||||
end
|
||||
NTriggerLink = cell2mat(NodoTriggerLink(:,2));
|
||||
ii = 1; % contatore
|
||||
col = 3; % contatore colonne
|
||||
Condition = 0;
|
||||
while ii <= rTrL
|
||||
ini_col = col-2;
|
||||
nN = num2str(NTriggerLink(ii,1));
|
||||
% Scarico di dati giorno X
|
||||
comando = ['select EventDate, EventTime, X 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);
|
||||
DATnodoTrLd = curs.Data;
|
||||
% Scarico di dati giorni successivi
|
||||
comando = ['select EventDate, EventTime, X 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);
|
||||
DATnodoTrL = curs.Data;
|
||||
[~,c1] = size(DATnodoTrL);
|
||||
[~,c2] = size(DATnodoTrLd);
|
||||
if c1 == c2
|
||||
DATnodoTrL = [DATnodoTrLd; DATnodoTrL];
|
||||
elseif c1 < c2 % solo giorno di riferimento
|
||||
DATnodoTrL = DATnodoTrLd;
|
||||
end
|
||||
[rDAT,cDAT] = size(DATnodoTrL);
|
||||
if rDAT==1 && cDAT==1
|
||||
clear DatiElabTriggerLink
|
||||
fclose(fileID);
|
||||
cancellaDB(IDcentralina,DTcatena,Data_scarico,conn,FileName);
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
Condition = 1;
|
||||
break
|
||||
else
|
||||
if ii > 1 % Nodo successivo al primo
|
||||
[rDE,~] = size(DatiElabTriggerLink);
|
||||
if rDE ~= rDAT
|
||||
clear DatiElabTriggerLink
|
||||
fclose(fileID);
|
||||
cancellaDB(IDcentralina,DTcatena,Data_scarico,conn,FileName);
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
Condition = 1;
|
||||
break
|
||||
end
|
||||
end
|
||||
DatiElabTriggerLink(:,ini_col:col) = DATnodoTrL(:,:);
|
||||
end
|
||||
ii = ii+1;
|
||||
end
|
||||
if Condition == 1
|
||||
datainiTrL = datenum(datainiTrL) - 1;
|
||||
Data_scarico = datestr(datainiTrL,'yyyy-mm-dd HH:MM:SS');
|
||||
datainiTrL = Data_scarico;
|
||||
fileID = fopen(FileName,'a');
|
||||
else
|
||||
Check = isnan(cell2mat(DatiElabTriggerLink(1,3:16:end)));
|
||||
for jj = 1:rTrL
|
||||
if Check == 1
|
||||
datainiTrL = datenum(datainiTrL) - 1;
|
||||
Data_scarico = datestr(datainiTrL,'yyyy-mm-dd HH:MM:SS');
|
||||
datainiTrL = Data_scarico;
|
||||
break
|
||||
else
|
||||
NAN = 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
text = 'Trigger Link executed during LastElab function';
|
||||
fprintf(fileID,fmt,text);
|
||||
else
|
||||
DatiElabTriggerLink = [];
|
||||
end
|
||||
else
|
||||
datainiTrL = [];
|
||||
tempoiniTrL = [];
|
||||
DatiElabTriggerLink = [];
|
||||
NuovoZeroTrL = 0;
|
||||
end
|
||||
|
||||
%% Shock Sensor
|
||||
if yesSS == 1 % Importo ultimo dato elaborato
|
||||
NodeNumSS = num2str(cell2mat(NodoSS(1,2))); % scarico i dati del primo nodo
|
||||
NodeType = 'Shock Sensor';
|
||||
|
||||
% 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 =' NodeNumSS ' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
D_num_ini = curs.Data;
|
||||
[rI,cI] = size(D_num_ini);
|
||||
if rI == 1 && 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 =' NodeNumSS ' '];
|
||||
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
|
||||
|
||||
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
|
||||
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
|
||||
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumSS ' '];
|
||||
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
|
||||
datainiSS = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniSS = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroSS = 0;
|
||||
DatiElabShockSensor = [];
|
||||
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;
|
||||
|
||||
Data_scarico = Data_numero(end)-margine;
|
||||
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
|
||||
data2 = datenum(Data_scarico);
|
||||
if data2 > data1
|
||||
datainiSS = datestr(data2,'yyyy-mm-dd');
|
||||
tempoiniSS = datestr(data2,'HH:MM:SS');
|
||||
NuovoZeroSS = 1;
|
||||
else
|
||||
datainiSS = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniSS = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroSS = 0;
|
||||
end
|
||||
end
|
||||
|
||||
if NuovoZeroSS == 1 % scarico gli ultimi dati elaborati
|
||||
NAN = 0;
|
||||
while NAN == 0
|
||||
if datenum(datainiSS) < datenum(date)
|
||||
datainiSS = date;
|
||||
end
|
||||
NShockSensor = cell2mat(NodoSS(:,2));
|
||||
ii = 1; % contatore
|
||||
col = 3; % contatore colonne
|
||||
Condition = 0;
|
||||
while ii <= rSS
|
||||
ini_col = col-2;
|
||||
nN = num2str(NShockSensor(ii,1));
|
||||
% Scarico di dati giorno X
|
||||
comando = ['select EventDate, EventTime, X 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);
|
||||
DATnodoSSd = curs.Data;
|
||||
% Scarico di dati giorni successivi
|
||||
comando = ['select EventDate, EventTime, X 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);
|
||||
DATnodoSS = curs.Data;
|
||||
[~,c1] = size(DATnodoSS);
|
||||
[~,c2] = size(DATnodoSSd);
|
||||
if c1 == c2
|
||||
DATnodoSS = [DATnodoSSd; DATnodoSS];
|
||||
elseif c1 < c2 % solo giorno di riferimento
|
||||
DATnodoSS = DATnodoSSd;
|
||||
end
|
||||
[rDAT,cDAT] = size(DATnodoSS);
|
||||
if rDAT==1 && cDAT==1
|
||||
clear DatiElabShockSensor
|
||||
fclose(fileID);
|
||||
cancellaDB(IDcentralina,DTcatena,Data_scarico,conn,FileName);
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
Condition = 1;
|
||||
break
|
||||
else
|
||||
if ii > 1 % Nodo successivo al primo
|
||||
[rDE,~] = size(DatiElabShockSensor);
|
||||
if rDE ~= rDAT
|
||||
clear DatiElabShockSensor
|
||||
fclose(fileID);
|
||||
cancellaDB(IDcentralina,DTcatena,Data_scarico,conn,FileName);
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
Condition = 1;
|
||||
break
|
||||
end
|
||||
end
|
||||
DatiElabShockSensor(:,ini_col:col) = DATnodoSS(:,:);
|
||||
end
|
||||
ii = ii+1;
|
||||
end
|
||||
if Condition == 1
|
||||
datainiSS = datenum(datainiSS) - 1;
|
||||
Data_scarico = datestr(datainiSS,'yyyy-mm-dd HH:MM:SS');
|
||||
datainiSS = Data_scarico;
|
||||
fileID = fopen(FileName,'a');
|
||||
else
|
||||
Check = isnan(cell2mat(DatiElabShockSensor(1,3:16:end)));
|
||||
for jj = 1:rSS
|
||||
if Check == 1
|
||||
datainiSS = datenum(datainiSS) - 1;
|
||||
Data_scarico = datestr(datainiSS,'yyyy-mm-dd HH:MM:SS');
|
||||
datainiSS = Data_scarico;
|
||||
break
|
||||
else
|
||||
NAN = 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
text = 'Shock Sensor executed during LastElab function';
|
||||
fprintf(fileID,fmt,text);
|
||||
else
|
||||
DatiElabShockSensor = [];
|
||||
end
|
||||
else
|
||||
datainiSS = [];
|
||||
tempoiniSS = [];
|
||||
DatiElabShockSensor = [];
|
||||
NuovoZeroSS = 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 == 1 && 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 && 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
|
||||
|
||||
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 margine < Ndati/2
|
||||
margine = round(Ndati/2+1);
|
||||
end
|
||||
cont = Ndati + margine;
|
||||
if cont < 3
|
||||
cont = 3;
|
||||
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
|
||||
|
||||
%% G-Flow Link
|
||||
if yesGF == 1 % Importo ultimo dato elaborato G-Flow
|
||||
|
||||
% Dati Grezzi
|
||||
DATA = [date time];
|
||||
comando = ['select EventDateTime from ELABDATAGFLOW where EventDateTime >= ''' ...
|
||||
DATA ''' and unit_name = ''' IDcentralina ''' and tool_name = '''...
|
||||
DTcatena ''' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
D_num_ini = curs.Data;
|
||||
[rI,cI] = size(D_num_ini);
|
||||
if rI == 1 && cI == 1
|
||||
Data_num_ini = 0;
|
||||
else
|
||||
Data_num_ini = D_num_ini;
|
||||
end
|
||||
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
|
||||
|
||||
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 rI==1 && cI==1
|
||||
datainiGF = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniGF = datestr(data1,'HH:MM:SS');
|
||||
else
|
||||
% Modifico il formato di data e ora in DATini.
|
||||
Data_numero = Data_num_ini(end);
|
||||
margine = 15;
|
||||
|
||||
if Ndatidespike > NdatiMedia
|
||||
Ndati = Ndatidespike;
|
||||
else
|
||||
Ndati = NdatiMedia;
|
||||
end
|
||||
if margine < Ndati/2
|
||||
margine = round(Ndati/2+1);
|
||||
end
|
||||
cont = Ndati + margine;
|
||||
if cont < 2
|
||||
cont = 2;
|
||||
end
|
||||
Data_scarico = Data_numero(end)-cont;
|
||||
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
|
||||
data2 = datenum(Data_scarico);
|
||||
if data2 > data1
|
||||
datainiGF = datestr(data2,'yyyy-mm-dd');
|
||||
tempoiniGF = datestr(data2,'HH:MM:SS');
|
||||
else
|
||||
datainiGF = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniGF = datestr(data1,'HH:MM:SS');
|
||||
end
|
||||
end
|
||||
text = 'G-Flow Link executed during LastElab function';
|
||||
fprintf(fileID,fmt,text);
|
||||
else
|
||||
datainiGF = [];
|
||||
tempoiniGF = [];
|
||||
end
|
||||
|
||||
%% G-Shock Link
|
||||
if yesGS == 1 % Importo ultimo dato elaborato dei RSN Link
|
||||
|
||||
% Dati Grezzi
|
||||
DATA = [date time];
|
||||
comando = ['select EventDateTime from ELABDATAGFLOW where EventDateTime >= ''' ...
|
||||
DATA ''' and unit_name = ''' IDcentralina ''' and tool_name = '''...
|
||||
DTcatena ''' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
D_num_ini = curs.Data;
|
||||
[rI,cI] = size(D_num_ini);
|
||||
if rI == 1 && cI == 1
|
||||
Data_num_ini = 0;
|
||||
else
|
||||
Data_num_ini = D_num_ini;
|
||||
end
|
||||
Data_num_ini = datenum(Data_num_ini); % tutte le date presenti nel DB grezzo
|
||||
|
||||
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 rI==1 && cI==1
|
||||
datainiGS = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniGS = datestr(data1,'HH:MM:SS');
|
||||
else
|
||||
% Modifico il formato di data e ora in DATini.
|
||||
Data_numero = Data_num_ini(end);
|
||||
margine = 15;
|
||||
|
||||
if Ndatidespike > NdatiMedia
|
||||
Ndati = Ndatidespike;
|
||||
else
|
||||
Ndati = NdatiMedia;
|
||||
end
|
||||
if margine < Ndati/2
|
||||
margine = round(Ndati/2+1);
|
||||
end
|
||||
cont = Ndati + margine;
|
||||
if cont < 2
|
||||
cont = 2;
|
||||
end
|
||||
Data_scarico = Data_numero(end-cont);
|
||||
Data_scarico = datestr(Data_scarico,'yyyy-mm-dd');
|
||||
data2 = datenum(Data_scarico);
|
||||
if data2 > data1
|
||||
datainiGS = datestr(data2,'yyyy-mm-dd');
|
||||
tempoiniGS = datestr(data2,'HH:MM:SS');
|
||||
else
|
||||
datainiGS = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniGS = datestr(data1,'HH:MM:SS');
|
||||
end
|
||||
end
|
||||
text = 'G-Shock Link executed during LastElab function';
|
||||
fprintf(fileID,fmt,text);
|
||||
else
|
||||
datainiGS = [];
|
||||
tempoiniGS = [];
|
||||
end
|
||||
|
||||
%% Debris Link
|
||||
if yesDL == 1 % Importo ultimo dato elaborato dei RSN Link
|
||||
NodeNumDL = num2str(cell2mat(NodoDebrisLink(1,2))); % scarico i dati del primo nodo
|
||||
NodeType = 'Debris 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 =' NodeNumDL ' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
D_num_ini = curs.Data;
|
||||
[rI,cI] = size(D_num_ini);
|
||||
if rI == 1 && 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 =' NodeNumDL ' '];
|
||||
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
|
||||
|
||||
comando = ['select EventDate, EventTime from ElabDataView where EventDate >= ''' ...
|
||||
date ''' and UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ...
|
||||
''' and NodeType = ''' NodeType ''' and NodeNum =' NodeNumDL ' '];
|
||||
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
|
||||
datainiDL = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniDL = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroDL = 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 margine < Ndati/2
|
||||
margine = round(Ndati/2+1);
|
||||
end
|
||||
cont = Ndati + margine;
|
||||
if cont < 3
|
||||
cont = 3;
|
||||
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
|
||||
datainiDL = datestr(data2,'yyyy-mm-dd');
|
||||
tempoiniDL = datestr(data2,'HH:MM:SS');
|
||||
NuovoZeroDL = 1;
|
||||
else
|
||||
datainiDL = datestr(data1,'yyyy-mm-dd');
|
||||
tempoiniDL = datestr(data1,'HH:MM:SS');
|
||||
NuovoZeroDL = 0;
|
||||
end
|
||||
end
|
||||
|
||||
if NuovoZeroDL == 1 % scarico gli ultimi dati elaborati
|
||||
NAN = 0;
|
||||
while NAN == 0
|
||||
if datenum(datainiDL) < datenum(date)
|
||||
datainiDL = date;
|
||||
end
|
||||
NDebrisLink = cell2mat(NodoDebrisLink(:,2));
|
||||
ii = 1; % contatore
|
||||
col = 11; % contatore colonne
|
||||
Condition = 0;
|
||||
while ii <= rDL
|
||||
ini_col = col-10;
|
||||
nN = num2str(NDebrisLink(ii,1));
|
||||
% Scarico di dati di spostamenti
|
||||
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, T_node, AlfaX, AlfaY 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);
|
||||
DATnodoDLd = curs.Data;
|
||||
% Scarico di dati di spostamenti
|
||||
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, T_node, AlfaX, AlfaY 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);
|
||||
DATnodoDL = curs.Data;
|
||||
[~,c1] = size(DATnodoDL);
|
||||
[~,c2] = size(DATnodoDLd);
|
||||
if c1 == c2
|
||||
DATnodoDL = [DATnodoDLd; DATnodoDL];
|
||||
elseif c1 < c2 % solo giorno di riferimento
|
||||
DATnodoDL = DATnodoDLd;
|
||||
end
|
||||
[rDAT,cDAT] = size(DATnodoDL);
|
||||
if rDAT==1 && cDAT==1
|
||||
clear DatiElabDebrisLink
|
||||
fclose(fileID);
|
||||
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
Condition = 1;
|
||||
break
|
||||
else
|
||||
if ii > 1 % Nodo successivo al primo
|
||||
[rDE,~] = size(DatiElabDebrisLink);
|
||||
if rDE ~= rDAT
|
||||
clear DatiElabDebrisLink
|
||||
fclose(fileID);
|
||||
cancellaDB(IDcentralina,DTcatena,Data_scarico,FileName,conn);
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
Condition = 1;
|
||||
break
|
||||
end
|
||||
end
|
||||
DatiElabDebrisLink(:,ini_col:col) = DATnodoDL(:,:);
|
||||
end
|
||||
col = col+11;
|
||||
ii = ii+1;
|
||||
end
|
||||
|
||||
if Condition == 1
|
||||
datainiDL = datenum(datainiDL) - 1;
|
||||
Data_scarico = datestr(datainiDL,'yyyy-mm-dd HH:MM:SS');
|
||||
datainiDL = Data_scarico;
|
||||
fileID = fopen(FileName,'a');
|
||||
else
|
||||
Check = isnan(cell2mat(DatiElabDebrisLink(1,3:16:end)));
|
||||
for jj = 1:rTuL
|
||||
if Check == 1
|
||||
datainiDL = datenum(datainiDL) - 1;
|
||||
Data_scarico = datestr(datainiDL,'yyyy-mm-dd HH:MM:SS');
|
||||
datainiDL = Data_scarico;
|
||||
break
|
||||
else
|
||||
NAN = 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
text = 'Debris Link executed during LastElab function';
|
||||
fprintf(fileID,fmt,text);
|
||||
else
|
||||
datainiDL = [];
|
||||
tempoiniDL = [];
|
||||
NuovoZeroDL = 0;
|
||||
DatiElabDebrisLink = [];
|
||||
end
|
||||
|
||||
text = 'LastElab function worked correctly';
|
||||
fprintf(fileID,fmt,text);
|
||||
fclose(fileID);
|
||||
end
|
||||
Reference in New Issue
Block a user