Files
matlab-python/Tilt/Tilt_bck.m

1041 lines
45 KiB
Matlab
Executable File

function RC = Tilt(IDcentralina,DTcatena)
%%% Programma per l'elaborazione dei dati inclinometrici
%%% Versione 2.6 iniziata a maggio 21
tic
RC = 1; %#ok<NASGU>
text = ['Elaboration of chain ' DTcatena ' of control unit ' IDcentralina ' started correctly'];
d = datestr(datetime,'yyyy_mm_dd');
t = datestr(datetime,'HH_MM_SS');
FileName = ['LogFile-' IDcentralina '-' DTcatena '-' d '-' t '.txt'];
outdat = fopen(FileName,'wt+'); %#ok<NASGU>
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
%% Parte generale
% Associo ID company al relativo DB e definisco i parametri del Database
IDcompany = '1'; % DA INTEGRARE IN VERSIONI FUTURE
DB = database_definition(IDcompany,FileName);
% Apro connessione al DB
dbname = cell2mat(DB{1,1});
username = cell2mat(DB{2,1});
password = cell2mat(DB{3,1});
driver = cell2mat(DB{4,1});
dburl = cell2mat(DB{5,1});
conn = database(dbname, username, password, driver, dburl);
% conn = database('',<username>,<password>,'com.mysql.cj.jdbc.Driver','jdbc:mysql://servername:portnumber/databasename?serverTimezone=UTC&')
% scarico Contol Unit ID
unitID = IDunit(IDcentralina,conn,FileName);
% questa funzione considera la prima data e ora da cui caricare i dati a seconda della catena
[date,time,unitID] = datainiziale(DTcatena,unitID,conn,FileName);
% funzione che elenca tutti i nodi ed il loro numero presenti per ogni tipo di sensore.
[idTool,NodoTiltLink,NodoTiltLinkHR,NodoTiltLinkH,NodoTiltLinkHRH,...
NodoTiltLinkHR3D,NodoTiltLinkHR3DH,NodoPiezoLink,NodoBaroLink,...
NodoThermLink,NodoAnalogLink,NodoLoadLink,NodoKlinoLink,NodoKlinoLinkHR,...
NodoRainLink,NodoPT100Link,NodoInPlaceLink,NodoInPlaceLinkHR,NodoInPlaceLinkHR3D,...
NodoWeirLink,NodoPendulum,NodoWind,rTL,rTLHR,rTLH,rTLHRH,~,~,rPL,rBL,...
rThL,rAL,rLL,rKL,rKLHR,rRL,rPT100,rIPL,rIPLHR,~,rWL,rPE,rWI] = tipologiaNodi(...
DTcatena,unitID,conn,FileName);
% funzione che ricostruisce i nodi della catena
catena = schema(idTool,conn,FileName);
% funzione che attiva/disattiva l'elaborazione per una determinata tipologia di nodo
[yesTL,yesTLHR,yesTLHR3D,yesTLH,yesTLHRH,yesTLHR3DH,yesPL,yesBL,...
yesThL,yesAL,yesLL,yesKL,yesKLHR,yesRL,yesPT100,yesIPL,yesIPLHR,yesIPLHR3D,...
yesWL,yesPE,NodoPiezoLink,yesWI] = YesNo(NodoTiltLink,NodoTiltLinkHR,NodoTiltLinkHR3D,...
NodoTiltLinkH,NodoTiltLinkHRH,NodoTiltLinkHR3DH,NodoPiezoLink,NodoBaroLink,...
NodoThermLink,NodoAnalogLink,NodoLoadLink,NodoKlinoLink,NodoKlinoLinkHR,...
NodoRainLink,NodoPT100Link,NodoInPlaceLink,NodoInPlaceLinkHR,NodoInPlaceLinkHR3D,...
NodoWeirLink,NodoPendulum,NodoWind,FileName);
% funzione che definisce tutti i parametri importanti per elaborare un'installazione
[MEMS,biax,triax,struct,tolleranzaAcc,tolleranzaMag,segnoNS,...
segnoEO,Ndevst,Wdevst,segnoNS_HR,segnoEO_HR,Ndevst_HR,Wdevst_HR,allineato,...
NdatiMedia,NdatiMediaP,Ndatidespike,Anchor_real,Tmax,Tmin] = Parametri_Installazione...
(unitID,idTool,DTcatena,yesTL,yesTLHR,yesTLH,yesTLHRH,yesPL,yesThL,yesKL,yesKLHR,...
yesPT100,yesIPL,yesIPLHR,yesWL,conn,FileName);
% funzione che ricostruisce segmenti di pertinenza etc
[SpeTL,PsTL,SpeTLHR,PsTLHR,SpeTLH,PsTLH,SpeTLHRH,PsTLHRH,SpeIPL,PsIPL,...
SpeIPLHR,PsIPLHR] = schemaSP(yesTL,yesTLHR,yesTLH,yesTLHRH,yesTLHR3D,yesTLHR3DH,...
yesIPL,yesIPLHR,yesIPLHR3D,NodoTiltLink,NodoTiltLinkHR,NodoTiltLinkHR3D,...
NodoTiltLinkH,NodoTiltLinkHRH,NodoTiltLinkHR3DH,NodoInPlaceLink,NodoInPlaceLinkHR,...
NodoInPlaceLinkHR3D,Anchor_real,rTL,rTLH,rTLHR,rTLHRH,rIPL,rIPLHR,catena,...
IDcentralina,DTcatena,FileName);
% tipologia di centralina
Unit = centralina(IDcentralina,conn,FileName);
%% Scarico dei dati
% funzione che scarica i dati di calibrazione
[DCalTLTot,DCalTLHRTot,DCalTLHTot,DCalTLHRHTot,DCalPLTot,DCalBLTot,...
~,DCalLLTot,DCalKLTot,DCalKLHRTot,DCalRLTot,DCalThLTot,DCalPT100Tot,...
DCalIPLTot,DCalIPLHRTot,DCalWLTot,DCalPETot,Barometri,yesTL,yesTLHR,yesTLH,...
yesTLHRH,yesPL,yesBL,~,yesLL,yesKL,yesKLHR,yesThL,yesPT100,yesIPL,yesIPLHR,yesWL] = ...
letturaCal(IDcentralina,DTcatena,catena,yesTL,yesTLHR,yesTLH,yesTLHRH,...
yesPL,yesBL,yesAL,yesLL,yesKL,yesKLHR,yesThL,yesPT100,yesIPL,yesIPLHR,yesWL,...
rTL,rPL,rBL,rTLHR,rAL,rTLH,rTLHRH,rLL,rThL,rKL,rKLHR,rRL,rPT100,rIPL,rIPLHR,...
rWL,rPE,NodoTiltLink,NodoTiltLinkH,NodoPiezoLink,NodoBaroLink,NodoLoadLink,...
NodoKlinoLink,NodoKlinoLinkHR,NodoInPlaceLink,NodoInPlaceLinkHR,NodoWeirLink,...
NodoPendulum,NodoRainLink,NodoThermLink,conn,FileName);
if strcmp(Unit,'Nesa evolution')
Data = datestr(now-30,'yyyy-mm-dd HH:MM:SS.FFF'); % faccio di default 30 gg
comando = ['select JSON_VALUE(dataJSON,"$.battery") from ELABDATANESA where EventTimestamp >= ''' Data ...
''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeNum = 1'];
curs = exec(conn,comando);
curs = fetch(curs);
Batteria = curs.Data;
comando = ['select EventTimestamp from ELABDATANESA where EventTimestamp >= ''' Data ...
''' and UnitName = ''' IDcentralina ''' and ToolNameID = '''...
DTcatena ''' and NodeNum = 1'];
curs = exec(conn,comando);
curs = fetch(curs);
DataOra = curs.Data;
Batteria = [DataOra Batteria];
ARRAYdateRL = [];
else
% Funzione che scarica la data di riferimento
[DatiElabTiltLink,NuovoZeroTL,datainiTL,tempoiniTL,...
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,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,NodoTiltLinkHR,yesTLHR,rTLHR,...
NodoTiltLinkH,yesTLH,rTLH,NodoTiltLinkHRH,yesTLHRH,rTLHRH,...
NodoPiezoLink,yesPL,NodoBaroLink,yesBL,Barometri,...
NodoLoadLink,yesLL,NodoThermLink,yesThL,NodoRainLink,yesRL,rRL,...
NodoKlinoLink,yesKL,rKL,NodoKlinoLinkHR,yesKLHR,rKLHR,NodoPT100Link,yesPT100,...
NodoInPlaceLink,yesIPL,rIPL,NodoInPlaceLinkHR,yesIPLHR,rIPLHR,...
NodoWeirLink,yesWL,NodoPendulum,yesPE,FileName);
% Sito Specificità
if strcmp(IDcentralina,'ID0003') && strcmp(DTcatena,'DT0002')
datainiBL = '2015-03-01';
tempoiniBL = '00:00:01';
datainiPL = '2015-03-01';
tempoiniPL = '00:00:01';
end
if strcmp(IDcentralina,'ID0070') == 1 && strcmp(DTcatena,'DT0111 IPI') == 1
DTcatenaRif = DTcatena;
DTcatena = 'DT0111';
% Carico i dati dal database a seconda della catena
[Batteria,DatiTiltLink,ErrTiltLink,datainiTL,yesTL,DatiTiltLinkH,ErrTiltLinkH,datainiTLH,yesTLH,...
DatiPiezoLink,ErrPiezoLink,yesPL,DatiBaroLink,ErrBaroLink,yesBL,...
DatiTiltLinkHR,ErrTiltLinkHR,datainiTLHR,yesTLHR,DatiTiltLinkHRH,ErrTiltLinkHRH,datainiTLHRH,yesTLHRH,...
DatiLoadLink,ErrLoadLink,yesLL,DatiThermLink,ErrThermLink,yesThL,DatiKlinoLink,ErrKlinoLink,yesKL,...
DatiKlinoLinkHR,ErrKlinoLinkHR,yesKLHR,DatiRainLink,ErrRainLink,datainiRL,yesRL,...
DatiPT100Link,ErrPT100Link,yesPT100,DatiInPlaceLink,ErrInPlaceLink,datainiIPL,yesIPL,...
DatiInPlaceLinkHR,ErrInPlaceLinkHR,datainiIPLHR,yesIPLHR,DatiWeirLink,DatiNTCWeirLink,ErrWeirLink,datainiWL,yesWL,...
DatiPendulum,ErrPendulum,datainiPE,yesPE] = lettura_Hybrid(IDcentralina,DTcatena,DTcatenaRif,datainiTL,tempoiniTL,NodoTiltLink,NuovoZeroTL,...
datainiTLH,tempoiniTLH,NodoTiltLinkH,NuovoZeroTLH,datainiPL,tempoiniPL,NodoPiezoLink,NuovoZeroPL,...
datainiBL,tempoiniBL,NodoBaroLink,NuovoZeroBL,datainiTLHR,tempoiniTLHR,NodoTiltLinkHR,NuovoZeroTLHR,...
datainiTLHRH,tempoiniTLHRH,NodoTiltLinkHRH,NuovoZeroTLHRH,datainiThL,tempoiniThL,NodoThermLink,NuovoZeroThL,...
datainiLL,tempoiniLL,NodoLoadLink,NuovoZeroLL,datainiKL,tempoiniKL,NodoKlinoLink,NuovoZeroKL,...
datainiKLHR,tempoiniKLHR,NodoKlinoLinkHR,NuovoZeroKLHR,datainiRL,tempoiniRL,NodoRainLink,NuovoZeroRL,...
datainiPT100,tempoiniPT100,NodoPT100Link,NuovoZeroPT100,datainiIPL,tempoiniIPL,NodoInPlaceLink,NuovoZeroIPL,...
datainiIPLHR,tempoiniIPLHR,NodoInPlaceLinkHR,NuovoZeroIPLHR,datainiWL,tempoiniWL,NodoWeirLink,NuovoZeroWL,...
datainiPE,tempoiniPE,NodoPendulum,NuovoZeroPE,yesTL,yesTLH,yesTLHR,yesTLHRH,yesPL,yesBL,yesThL,yesKL,yesKLHR,yesRL,...
yesPT100,yesLL,yesIPL,yesIPLHR,yesWL,yesPE,rTL,rTLH,rTLHR,rTLHRH,rPL,rBL,rThL,rKL,rKLHR,rRL,rPT100,rLL,rIPL,rIPLHR,...
rWL,rPE,conn,Barometro,catena,date,time,FileName);
else
% Carico i dati dal database a seconda della catena
[Batteria,DatiTiltLink,ErrTiltLink,datainiTL,yesTL,DatiTiltLinkH,ErrTiltLinkH,datainiTLH,yesTLH,...
DatiPiezoLink,ErrPiezoLink,yesPL,DatiBaroLink,ErrBaroLink,yesBL,...
DatiTiltLinkHR,ErrTiltLinkHR,datainiTLHR,yesTLHR,DatiTiltLinkHRH,ErrTiltLinkHRH,datainiTLHRH,yesTLHRH,...
DatiLoadLink,ErrLoadLink,yesLL,DatiThermLink,ErrThermLink,yesThL,DatiKlinoLink,ErrKlinoLink,yesKL,...
DatiKlinoLinkHR,ErrKlinoLinkHR,yesKLHR,DatiRainLink,ErrRainLink,datainiRL,yesRL,...
DatiPT100Link,ErrPT100Link,yesPT100,DatiInPlaceLink,ErrInPlaceLink,datainiIPL,yesIPL,...
DatiInPlaceLinkHR,ErrInPlaceLinkHR,datainiIPLHR,yesIPLHR,DatiWeirLink,DatiNTCWeirLink,ErrWeirLink,datainiWL,yesWL,...
DatiPendulum,ErrPendulum,~,yesPE] = lettura(IDcentralina,DTcatena,datainiTL,tempoiniTL,NodoTiltLink,NuovoZeroTL,...
datainiTLH,tempoiniTLH,NodoTiltLinkH,NuovoZeroTLH,datainiPL,tempoiniPL,NodoPiezoLink,NuovoZeroPL,...
datainiBL,tempoiniBL,NodoBaroLink,NuovoZeroBL,datainiTLHR,tempoiniTLHR,NodoTiltLinkHR,NuovoZeroTLHR,...
datainiTLHRH,tempoiniTLHRH,NodoTiltLinkHRH,NuovoZeroTLHRH,datainiThL,tempoiniThL,NodoThermLink,NuovoZeroThL,...
datainiLL,tempoiniLL,NodoLoadLink,NuovoZeroLL,datainiKL,tempoiniKL,NodoKlinoLink,NuovoZeroKL,...
datainiKLHR,tempoiniKLHR,NodoKlinoLinkHR,NuovoZeroKLHR,datainiRL,tempoiniRL,NodoRainLink,NuovoZeroRL,...
datainiPT100,tempoiniPT100,NodoPT100Link,NuovoZeroPT100,datainiIPL,tempoiniIPL,NodoInPlaceLink,NuovoZeroIPL,...
datainiIPLHR,tempoiniIPLHR,NodoInPlaceLinkHR,NuovoZeroIPLHR,datainiWL,tempoiniWL,NodoWeirLink,NuovoZeroWL,...
datainiPE,tempoiniPE,NodoPendulum,NuovoZeroPE,yesTL,yesTLH,yesTLHR,yesTLHRH,yesPL,yesBL,yesThL,yesKL,yesKLHR,yesRL,...
yesPT100,yesLL,yesIPL,yesIPLHR,yesWL,yesPE,rTL,rTLH,rTLHR,rTLHRH,rPL,rBL,rThL,rKL,rKLHR,rRL,rPT100,rLL,rIPL,rIPLHR,...
rWL,rPE,conn,Barometro,catena,date,time,FileName);
end
% Controllo incrociato fra la data iniziale definita da Lettura e la data
% iniziale definita da LastElab
[DatiElabTiltLink,DatiElabTiltLinkHR,DatiElabTiltLinkH,DatiElabTiltLinkHRH,...
DatiElabRainLink,DatiElabInPlaceLink,DatiElabInPlaceLinkHR] = checkdata(...
yesTL,yesTLHR,yesTLH,yesTLHRH,yesRL,yesIPL,yesIPLHR,...
DatiElabTiltLink,DatiElabTiltLinkHR,DatiElabTiltLinkH,DatiElabTiltLinkHRH,...
DatiElabRainLink,DatiElabInPlaceLink,DatiElabInPlaceLinkHR,...
datainiTL,tempoiniTL,datainiTLHR,tempoiniTLHR,datainiTLH,tempoiniTLH,...
datainiTLHRH,tempoiniTLHRH,datainiRL,tempoiniRL,datainiIPL,tempoiniIPL,...
datainiIPLHR,tempoiniIPLHR,rTL,rTLHR,rTLH,rTLHRH,rRL,rIPL,rIPLHR,...
NodoTiltLink,NodoTiltLinkHR,NodoTiltLinkH,NodoTiltLinkHRH,...
NodoRainLink,NodoInPlaceLink,NodoInPlaceLinkHR,...
NuovoZeroTL,NuovoZeroTLHR,NuovoZeroTLH,NuovoZeroTLHRH,NuovoZeroRL,...
NuovoZeroIPL,NuovoZeroIPLHR,IDcentralina,DTcatena,conn,FileName);
%% Parte di definizione dati, conversione in unità fisiche e calcolo medie
% ---Tilt Link V---
if yesTL == 1
[TimeTL,accTL,magTL,tempTL,ErrTiltLink] = defDatiTL(DatiTiltLink,...
ErrTiltLink,Ndatidespike,rTL,MEMS,conn,catena,IDcentralina,DTcatena,FileName);
% Conversione dei dati grezzi
[accTL,magTL,ris_acc,ris_mag,tempTL,ErrTiltLink] = conv_grezziTL(rTL,accTL,magTL,...
tempTL,DCalTLTot,tolleranzaAcc,MEMS,ErrTiltLink,IDcentralina,DTcatena,FileName);
% Calcolo medie
[ACCdef_TL,MAGdef_TL,ARRAYdateTL,ACCdefRis_TL,~,TempDef_TL] = MediaDati_TL(...
accTL,magTL,TimeTL,ris_acc,ris_mag,tempTL,tolleranzaAcc,tolleranzaMag,...
NdatiMedia,FileName);
else
ARRAYdateTL = [];
text = 'There are not data to convert for Tilt Link V';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiTiltLink
clear TimeTL
clear accTL
clear magTL
clear tempTL
clear DCalTLTot
clear ris_acc
clear ris_mag
% ---In Place Link---
if yesIPL == 1
[TimeIPL,accIPL,magIPL,tempIPL,ErrInPlaceLink] = defDatiIPL(DatiInPlaceLink,...
ErrInPlaceLink,Ndatidespike,rIPL,MEMS,FileName);
% Conversione dei dati grezzi
[accIPL,magIPL,ris_acc_IPL,ris_mag_IPL,tempIPL,ErrInPlaceLink] = conv_grezziIPL(rIPL,...
accIPL,magIPL,tempIPL,DCalIPLTot,tolleranzaAcc,ErrInPlaceLink,NodoInPlaceLink,MEMS,FileName);
% Calcolo medie
[ACCdef_IPL,MAGdef_IPL,ARRAYdateIPL,ACCdefRis_IPL,~,TempDef_IPL]...
= MediaDati_IPL(accIPL,magIPL,TimeIPL,ris_acc_IPL,ris_mag_IPL,tempIPL,tolleranzaAcc,...
tolleranzaMag,NdatiMedia,NodoInPlaceLink,MEMS,FileName);
else
ARRAYdateIPL = [];
text = 'There are not data to convert for In Place Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiInPlaceLink
clear TimeIPL
clear accIPL
clear magIPL
clear tempIPL
clear DCalIPLTot
clear ris_acc_IPL
clear ris_mag_IPL
% ---Tilt Link H---
if yesTLH == 1
% definizione dei dati
[TimeTLH,accTLH,tempTLH,ErrTiltLinkH] = defDatiTLH(DatiTiltLinkH,...
ErrTiltLinkH,Ndatidespike,rTLH,MEMS,FileName);
% Conversione dei dati grezzi
[accTLH,ris_acc_TLH,tempTLH,ErrTiltLinkH] = conv_grezziTLH(rTLH,...
accTLH,tempTLH,DCalTLHTot,tolleranzaAcc,MEMS,ErrTiltLinkH,FileName);
% Calcolo medie
[ACCdef_TLH,ARRAYdateTLH,ACCdefRis_TLH,TempDef_TLH] = MediaDati_TLH...
(accTLH,TimeTLH,ris_acc_TLH,tempTLH,tolleranzaAcc,NdatiMedia,FileName);
else
ARRAYdateTLH = [];
text = 'There are not data to convert for Tilt Link H';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiTiltLinkH
clear TimeTLH
clear accTLH
clear tempTLH
clear DCalTLHTot
clear ris_acc_TLH
% ---Tilt Link HR V---
if yesTLHR == 1 % attiva l'elaborazione dei Tilt Link HR
[TimeTLHR,angTLHR,tempTLHR,ErrTiltLinkHR] = defDatiTLHR(...
DatiTiltLinkHR,ErrTiltLinkHR,Ndatidespike,MEMS,rTLHR,NodoTiltLinkHR,...
NuovoZeroTLHR,IDcentralina,DTcatena,FileName);
% Conversione dei dati grezzi
[angTLHR,tempTLHR] = conv_grezziTLHR(angTLHR,tempTLHR,DCalTLHRTot,...
rTLHR,FileName);
% Calcolo medie
[ANGdef_TLHR,ARRAYdateTLHR,TempDef_TLHR] = MediaDati_TLHR(angTLHR,...
TimeTLHR,tempTLHR,NdatiMedia,FileName);
else
ARRAYdateTLHR = [];
text = 'There are not data to convert for Tilt Link HR V';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiTiltLinkHR
clear TimeTLHR
clear angTLHR
clear tempTLHR
clear DCalTLHRTot
clear tempTLHR
% ---In Place Link HR---
if yesIPLHR == 1
[TimeIPLHR,angIPLHR,tempIPLHR,ErrInPlaceLinkHR] = defDatiIPLHR(...
DatiInPlaceLinkHR,ErrInPlaceLinkHR,Ndatidespike,rIPLHR,NodoInPlaceLinkHR,...
NuovoZeroIPLHR,IDcentralina,DTcatena,FileName);
% Conversione dei dati grezzi
[angIPLHR,tempIPLHR] = conv_grezziIPLHR(angIPLHR,tempIPLHR,DCalIPLHRTot,...
NodoInPlaceLinkHR,rIPLHR,FileName);
% Calcolo medie
[ANGdef_IPLHR,ARRAYdateIPLHR,TempDef_IPLHR] = MediaDati_IPLHR(angIPLHR,...
TimeIPLHR,tempIPLHR,NdatiMedia,FileName);
else
ARRAYdateIPLHR = [];
text = 'There are not data to convert for In Place Link HR';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiInPlaceLinkHR
clear TimeIPLHR
clear angIPLHR
clear tempIPLHR
clear DCalIPLHRTot
clear tempIPLHR
% ---Tilt Link HR H---
if yesTLHRH == 1 % attiva l'elaborazione dei Tilt Link HR H
[TimeTLHRH,angTLHRH,tempTLHRH,ErrTiltLinkHRH] = defDatiTLHRH(...
DatiTiltLinkHRH,ErrTiltLinkHRH,Ndatidespike,MEMS,rTLHRH,NodoTiltLinkHRH,...
NuovoZeroTLHRH,IDcentralina,DTcatena,FileName);
% Conversione dei dati grezzi
[angTLHRH,tempTLHRH] = conv_grezziTLHRH(angTLHRH,tempTLHRH,DCalTLHRHTot,...
rTLHRH,FileName);
% Calcolo medie
[ANGdef_TLHRH,ARRAYdateTLHRH,TempDef_TLHRH] = MediaDati_TLHRH(angTLHRH,...
TimeTLHRH,tempTLHRH,NdatiMedia,FileName);
else
ARRAYdateTLHRH = [];
text = 'There are not data to convert for Tilt Link HR H';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiTiltLinkHRH
clear TimeTLHRH
clear angTLHRH
clear tempTLHRH
clear DCalTLHRHTot
clear tempTLHRH
% ---Piezo Link---
if yesPL == 1 % attiva l'elaborazione dei Piezo Link
[TimePL,ADCPiez,tempPiez,ErrPiezoLink] = defDatiPL(DatiPiezoLink,ErrPiezoLink,rPL,FileName);
% Conversione dei dati grezzi
[DatiPiez,DatiPiezT,RIF_PL] = conv_grezziPL(rPL,ADCPiez,tempPiez,DCalPLTot,...
NodoPiezoLink,NuovoZeroPL,IDcentralina,DTcatena,FileName);
% Calcolo medie
[PiezDef,PiezDefT,ARRAYdatePL] = MediaDati_PL(DatiPiez,DatiPiezT,TimePL,NdatiMediaP,FileName);
else
ARRAYdatePL = [];
text = 'There are not data to convert for Piezo Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiPiezoLink
clear TimePL
clear ADCPiez
clear tempPiez
clear DatiPiez
clear DatiPiezT
% ---Baro Link---
% Attivazione/disattivazione elaborazione e definizione dati
if strcmp(NodoPiezoLink(1,4),'VW kPa') == 1 || strcmp(NodoPiezoLink(1,4),'VW kg/cm2') == 1
BaroDef = [];
ARRAYdateBL = [];
text = 'There are not data to convert for Baro Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
elseif yesBL == 1 || yesPL == 1 % attiva l'elaborazione dei Baro Link
[TimeBL,ADCBaro,tempBaro,ErrBaroLink] = defDatiBL(DatiBaroLink,ErrBaroLink,rBL,FileName);
% Conversione dei dati grezzi
if yesBL == 0 % Recupero il barometro corretto
[rB,~] = size(Barometri);
for b = 1:rB
if strcmp(Barometri(b,1),Barometro(1,1)) == 1
DCalBLTot = DCalBLTot(b,:);
rBL = 1;
break
end
end
end
[DatiBaro,DatiBaroT] = conv_grezziBL(rBL,ADCBaro,tempBaro,DCalBLTot,FileName);
% Calcolo medie
[BaroDef,BaroDefT,ARRAYdateBL] = MediaDati_BL(DatiBaro,DatiBaroT,TimeBL,NdatiMediaP,FileName);
else
BaroDef = [];
ARRAYdateBL = [];
text = 'There are not data to convert for Baro Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiBaroLink
clear TimeBL
clear ADCBaro
clear tempBaro
clear DCalBLTot
clear DatiBaro
clear DatiBaroT
% ---Klino Link---
if yesKL == 1 % attiva l'elaborazione dei Klino Link
[TimeKL,ang_KL,temp_KL,ErrKlinoLink] = defDatiKL(DatiKlinoLink,...
ErrKlinoLink,NodoKlinoLink,MEMS,Ndatidespike,rKL,FileName);
% Conversione dei dati grezzi
[ang_KL,temp_KL,ris_acc,ErrKlinoLink] = conv_grezziKL(ang_KL,temp_KL,...
rKL,DCalKLTot,tolleranzaAcc,NodoKlinoLink,ErrKlinoLink,FileName);
% Medie
[ANGdefKL,TdefKL,ARRAYdateKL] = MediaDati_KL(ang_KL,temp_KL,TimeKL,NdatiMedia,FileName);
else
ANGdefKL = [];
TdefKL = [];
ARRAYdateKL = [];
text = 'There are not data to convert for Klino Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiKlinoLink
clear TimeKL
clear ang_KL
clear temp_KL
clear DCalKLTot
clear ANGoutKL
clear TEMPoutKL
clear TimeRcKL
% ---Klino Link HR---
if yesKLHR == 1 % attiva l'elaborazione dei Klino Link HR
[TimeKLHR,ang_KLHR,temp_KLHR,ErrKlinoLinkHR] = defDatiKLHR(...
DatiKlinoLinkHR,ErrKlinoLinkHR,Ndatidespike,rKLHR,NodoKlinoLinkHR,...
NuovoZeroKLHR,IDcentralina,DTcatena,FileName);
% Conversione dei dati grezzi
[ang_KLHR,temp_KLHR] = conv_grezziKLHR(ang_KLHR,temp_KLHR,rKLHR,...
DCalKLHRTot,FileName);
% Calcolo medie
[ANGdefKLHR,TdefKLHR,ARRAYdateKLHR] = MediaDati_KLHR(ang_KLHR,...
temp_KLHR,TimeKLHR,NdatiMedia,FileName);
else
ANGdefKLHR = [];
TdefKLHR = [];
ARRAYdateKLHR = [];
text = 'There are not data to convert for Klino Link HR';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiKlinoLinkHR
clear TimeKLHR
clear ang_KLHR
clear temp_KLHR
clear DCalKLHRTot
% ---Load Link---
if yesLL == 1 % attiva l'elaborazione dei Load Link
[TimeLL,ADCLoad,ErrLoadLink] = defDatiLL(DatiLoadLink,ErrLoadLink,Ndatidespike,rLL,FileName);
% Conversione dei dati grezzi
DatiLoad = conv_grezziLL(ADCLoad,DCalLLTot,NodoLoadLink,FileName);
% Calcolo medie
[LoadDef,ARRAYdateLL] = MediaDati_LL(DatiLoad,TimeLL,NdatiMedia,FileName);
else
ARRAYdateLL = [];
text = 'There are not data to convert for Load Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiLoadLink
clear TimeLL
clear ADCLoad
clear DCalLLTot
clear DatiLoad
clear TimeLL
% ---Rain Link---
if yesRL == 1 % attiva l'elaborazione dei Klino Link
[TimeRL,val_RL,ErrRainLink] = defDatiRL(DatiRainLink,ErrRainLink,FileName);
% Conversione dei dati grezzi
val_RL = conv_grezziRL(val_RL,rRL,DCalRLTot,NodoRainLink,FileName);
% Calcolo media
[Dati_RL,ARRAYdateRL] = MediaDati_RL(val_RL,TimeRL,FileName);
else
ARRAYdateRL = [];
Rain = [];
RainCum = [];
text = 'There are not data to convert for Rain Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiRainLink
clear TimeRL
clear val_RL
clear DCalRLTot
% ---Therm Link---
if yesThL == 1
[TimeThL,val_ThL,ErrThermLink] = defDatiThL(DatiThermLink,ErrThermLink,rThL,FileName);
% Conversione dei dati grezzi
val_ThL = conv_grezziThL(val_ThL,rThL,DCalThLTot,FileName);
% Calcolo medie
[Dati_ThL,ARRAYdateThL] = MediaDati_ThL(val_ThL,TimeThL,NdatiMedia,FileName);
else
ARRAYdateThL = [];
Dati_ThL = [];
text = 'There are not data to convert for Therm Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiThermLink
clear TimeThL
clear val_ThL
clear DCalThLTot
% ---PT100 Link---
if yesPT100 == 1
[TimePT100,val_PT100,ErrPT100Link] = defDatiPT100(DatiPT100Link,ErrPT100Link,FileName);
% Conversione dei dati grezzi
val_PT100 = conv_grezziPT100(val_PT100,rPT100,DCalPT100Tot,FileName);
% Calcolo medie
[Dati_PT100,ARRAYdatePT100] = MediaDati_PT100(val_PT100,TimePT100,FileName);
else
ARRAYdatePT100 = [];
Dati_PT100 = [];
text = 'There are not data to convert for PT100 Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili che non uso
clear DatiPT100Link
clear TimePT100
clear val_PT100
clear DCalPT100Tot
% ---Weir Link---
if yesWL == 1
[TimeWL,lev_WL,temp_WL,ErrWeirLink] = defDatiWL(DatiWeirLink,...
DatiNTCWeirLink,ErrWeirLink,FileName);
% Conversione dei dati grezzi
[lev_WL,TdefWL,ErrWeirLink] = conv_grezziWL(lev_WL,temp_WL,rWL,...
DCalWLTot,Tmax,Tmin,NodoWeirLink,ErrWeirLink,datainiWL,TimeWL,...
IDcentralina,DTcatena,FileName);
% Media
[Dati_WL,ARRAYdateWL] = MediaDati_WL(lev_WL,TimeWL,FileName);
else
ARRAYdateWL = [];
Dati_WL = [];
TdefWL = [];
text = 'There are not data to convert for Weir Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% ---Pendulum---
if yesPE == 1
[TimePE,Def_PE,ErrPendulum] = defDatiPE(DatiPendulum,ErrPendulum,FileName);
% Conversione dei dati grezzi
Def_PE = conv_grezziPE(Def_PE,rPE,DCalPETot,NodoPendulum,FileName);
% Media
[Dati_PE,ARRAYdatePE] = MediaDati_PE(Def_PE,TimePE,NdatiMedia,FileName);
else
ARRAYdatePE = [];
Dati_PE = [];
text = 'There are not data to convert for Pendulum';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
%% Parte di elaborazione
% --- Analisi Tilt Link V ---
if yesTL == 1
if struct == 1 % Vertical Array Structure
% ......
elseif triax == 1 % Analisi ai Quaternioni
[X,Y,Z,Xlocal,Ylocal,Zlocal,HShift,HShift_local,AlfaX,AlfaY,Azimuth,...
Speed_local,Speed,Acceleration_local,Acceleration,TempDef_TL,ARRAYdateTL,...
ErrTiltLink,MAGdef_TL] = triax_TL(IDcentralina,DTcatena,rTL,ACCdef_TL,...
ACCdefRis_TL,MAGdef_TL,TempDef_TL,SpeTL,PsTL,NodoTiltLink,tolleranzaAcc,...
tolleranzaMag,DatiElabTiltLink,segnoNS,segnoEO,MEMS,Ndevst,Wdevst,ARRAYdateTL,...
Tmax,Tmin,NuovoZeroTL,NdatiMedia,Ndatidespike,ErrTiltLink,margine,datainiTL,FileName);
elseif biax == 1 % Analisi semplificata 2D
[X,Y,Z,Xlocal,Ylocal,Zlocal,HShift,HShift_local,AlfaX,AlfaY,Azimuth,...
Speed_local,Speed,Acceleration_local,Acceleration,TempDef_TL,...
ARRAYdateTL,ErrTiltLink,MAGdef_TL] = biax_TL(IDcentralina,DTcatena,rTL,...
ACCdef_TL,ACCdefRis_TL,MAGdef_TL,TempDef_TL,SpeTL,PsTL,...
NodoTiltLink,tolleranzaAcc,tolleranzaMag,DatiElabTiltLink,segnoNS,segnoEO,...
Ndevst,Wdevst,ARRAYdateTL,Tmax,Tmin,NuovoZeroTL,NdatiMedia,Ndatidespike,...
ErrTiltLink,margine,date,datainiTL,FileName);
end
else
[X,Y,Z,Xlocal,Ylocal,Zlocal,HShift,HShift_local,Azimuth,TempDef_TL,Speed_local,...
Speed,Acceleration_local,Acceleration,AlfaX,AlfaY] = matrici_vuote_TL(FileName);
end
clear ACCdefRis_TL
clear SpeTL
clear PsTL
clear DatiElabTiltLink
clear NuovoZeroTL
% fine elaborazione Tilt Link V
% --- Analisi Tilt Link H ---
if yesTLH == 1
[Y_TLH,Z_TLH,Ylocal_TLH,Zlocal_TLH,AlfaX_TLH,AlfaY_TLH,TempDef_TLH,...
Speed_TLH,Speed_local_TLH,Acceleration_TLH,Acceleration_local_TLH,ARRAYdateTLH,...
ErrTiltLinkH] = biax_TLH(IDcentralina,DTcatena,rTLH,ACCdef_TLH,ACCdefRis_TLH,...
TempDef_TLH,SpeTLH,PsTLH,tolleranzaAcc,DatiElabTiltLinkH,Ndevst,Wdevst,ARRAYdateTLH,...
NuovoZeroTLH,Tmax,Tmin,NodoTiltLinkH,NdatiMedia,Ndatidespike,ErrTiltLinkH,margine,FileName);
else
[Y_TLH,Z_TLH,Ylocal_TLH,Zlocal_TLH,AlfaX_TLH,AlfaY_TLH,TempDef_TLH,...
Speed_TLH,Speed_local_TLH,Acceleration_TLH,Acceleration_local_TLH] = ...
matrici_vuote_TLH(FileName);
end
clear ACCdef_TLH
clear ACCdefRis_TLH
clear SpeTLH
clear PsTLH
clear Ndevst_TLH
clear Wdevst_TLH
clear NuovoZeroTLH
% fine elaborazione Tilt Link H
% --- Analisi In Place Link ---
if yesIPL == 1
[X_IPL,Y_IPL,Z_IPL,Xlocal_IPL,Ylocal_IPL,Zlocal_IPL,HShift_IPL,...
HShift_local_IPL,AlfaX_IPL,AlfaY_IPL,Azimuth_IPL,Speed_local_IPL,...
Speed_IPL,Acceleration_local_IPL,Acceleration_IPL,TempDef_IPL,...
ARRAYdateIPL,ErrInPlaceLink,MAGdef_IPL] = triax_IPL(IDcentralina,...
DTcatena,rIPL,ACCdef_IPL,ACCdefRis_IPL,MAGdef_IPL,TempDef_IPL,SpeIPL,PsIPL,...
NodoInPlaceLink,tolleranzaAcc,tolleranzaMag,DatiElabInPlaceLink,...
segnoNS,segnoEO,MEMS,Ndevst,Wdevst,ARRAYdateIPL,NuovoZeroIPL,Tmax,Tmin,...
NdatiMedia,Ndatidespike,ErrInPlaceLink,margine,datainiIPL,FileName);
else
[X_IPL,Y_IPL,Z_IPL,Xlocal_IPL,Ylocal_IPL,Zlocal_IPL,HShift_IPL,...
HShift_local_IPL,Azimuth_IPL,TempDef_IPL,Speed_local_IPL,Speed_IPL,...
Acceleration_local_IPL,Acceleration_IPL,AlfaX_IPL,AlfaY_IPL,ACCdef_IPL,...
MAGdef_IPL] = matrici_vuote_IPL(FileName);
end
clear segnoNS
clear segnoEO
clear Ndevst
clear Wdevst
clear ACCdefRis_IPL
clear SpeIPL
clear PsIPL
clear DatiElabInPlaceLink
clear NuovoZeroIPL
% fine elaborazione In Place Link
% --- Analisi Tilt Link HR V ---
if yesTLHR == 1
[X_HR,Y_HR,Z_HR,Xlocal_HR,Ylocal_HR,Zlocal_HR,HShift_HR,HShift_local_HR,...
AlfaX_HR,AlfaY_HR,Azimuth_HR,Speed_local_HR,Speed_HR,Acceleration_local_HR,...
Acceleration_HR,TempDef_TLHR,ARRAYdateTLHR,ErrTiltLinkHR] = biax_TLHR(IDcentralina,...
DTcatena,rTLHR,rTL,ANGdef_TLHR,ACCdef_TL,MAGdef_TL,TempDef_TLHR,SpeTLHR,...
PsTLHR,yesTL,yesTLHR3D,NodoTiltLinkHR,NodoTiltLink,NodoTiltLinkHR3D,...
DatiElabTiltLinkHR,segnoNS_HR,segnoEO_HR,Ndevst_HR,Wdevst_HR,ARRAYdateTLHR,...
NuovoZeroTLHR,NdatiMedia,Ndatidespike,allineato,ErrTiltLinkHR,Tmax,Tmin,datainiTLHR,...
margine,date,FileName);
else
[X_HR,Y_HR,Z_HR,Xlocal_HR,Ylocal_HR,Zlocal_HR,AlfaX_HR,AlfaY_HR,...
TempDef_TLHR,HShift_HR,HShift_local_HR,Azimuth_HR,Speed_HR,Speed_local_HR,...
Acceleration_HR,Acceleration_local_HR] = matrici_vuote_TLHR(FileName);
end
% Faccio Pulizia di Variabili
clear ANGdefTLHR
clear ACCdef
clear MAGdef
clear SpeTLHR
clear PsTLHR
clear DatiElabTiltLinkHR
clear DatiElabTiltLink
clear NuovoZeroTLHR
clear ACCdef_TL
clear MAGdef_TL
% fine elaborazione Tilt Link HR V
% --- Analisi Tilt Link HR H ---
if yesTLHRH == 1
[Y_TLHRH,Z_TLHRH,Ylocal_TLHRH,Zlocal_TLHRH,AlfaX_TLHRH,AlfaY_TLHRH,...
TempDef_TLHRH,Speed_TLHRH,Speed_local_TLHRH,Acceleration_TLHRH,...
Acceleration_local_TLHRH,ARRAYdateTLHRH,ErrTiltLinkHRH] = biax_TLHRH(...
IDcentralina,DTcatena,NodoTiltLinkHRH,rTLHRH,ANGdef_TLHRH,TempDef_TLHRH,SpeTLHRH,PsTLHRH,...
DatiElabTiltLinkHRH,Ndevst_HR,Wdevst_HR,ARRAYdateTLHRH,NuovoZeroTLHRH,NdatiMedia,...
Ndatidespike,ErrTiltLinkHRH,Tmax,Tmin,datainiTLHRH,margine,FileName);
else
[Y_TLHRH,Z_TLHRH,Ylocal_TLHRH,Zlocal_TLHRH,AlfaX_TLHRH,AlfaY_TLHRH,TempDef_TLHRH,...
Speed_TLHRH,Speed_local_TLHRH,Acceleration_TLHRH,Acceleration_local_TLHRH] = ...
matrici_vuote_TLHRH(FileName);
end
% Faccio Pulizia di Variabili
% Faccio Pulizia di Variabili
clear ANGdef_TLHRH
clear SpeTLHRH
clear PsTLHRH
clear DatiElabTiltLinkHRH
clear Ndevst_TLHRH
clear Wdevst_TLHRH
clear NuovoZeroTLHRH
% fine elaborazione Tilt Link HR H
% --- Analisi In Place Link HR ---
if yesIPLHR == 1
[X_IPLHR,Y_IPLHR,Z_IPLHR,Xlocal_IPLHR,Ylocal_IPLHR,Zlocal_IPLHR,...
HShift_IPLHR,HShift_local_IPLHR,AlfaX_IPLHR,AlfaY_IPLHR,Azimuth_IPLHR,...
Speed_local_IPLHR,Speed_IPLHR,Acceleration_local_IPLHR,Acceleration_IPLHR,...
TempDef_IPLHR,ARRAYdateIPLHR,ErrInPlaceLinkHR] = biax_IPLHR(IDcentralina,...
DTcatena,rIPLHR,rIPL,ANGdef_IPLHR,ACCdef_IPL,MAGdef_IPL,TempDef_IPLHR,...
SpeIPLHR,PsIPLHR,yesIPL,yesIPLHR3D,NodoInPlaceLinkHR,NodoInPlaceLink,...
NodoInPlaceLinkHR3D,DatiElabInPlaceLinkHR,segnoNS_HR,segnoEO_HR,Ndevst_HR,...
Wdevst_HR,ARRAYdateIPLHR,NuovoZeroIPLHR,NdatiMedia,Ndatidespike,allineato,...
Tmax,Tmin,datainiIPLHR,ErrInPlaceLinkHR,margine,FileName);
else
[X_IPLHR,Y_IPLHR,Z_IPLHR,Xlocal_IPLHR,Ylocal_IPLHR,Zlocal_IPLHR,...
HShift_IPLHR,HShift_local_IPLHR,Azimuth_IPLHR,AlfaX_IPLHR,AlfaY_IPLHR,...
TempDef_IPLHR,Speed_IPLHR,Speed_local_IPLHR,Acceleration_IPLHR,...
Acceleration_local_IPLHR] = matrici_vuote_IPLHR(FileName);
end
% Faccio Pulizia di Variabili
clear ANGdefIPLHR
clear ACCdef_TLHR
clear MAGdef_TLHR
clear SpeIPLHR
clear PsIPLHR
clear tolleranzaMag
clear DatiElabInPlaceLinkHR
clear DatiElabInPlaceLink
clear segnoNS_HR
clear segnoEO_HR
clear Ndevst_HR
clear Wdevst_HR
clear NuovoZeroIPLHR
clear allineato
clear ACCdef_IPL
clear MAGdef_IPL
% fine elaborazione In Place Link HR
% --- Analisi Piezo Link ---
if yesPL == 1
% if strcmp(NodoPiezoLink(1,4),'VW kPa') == 1
% C = DCalPLTot(:,3);
% if C == 0 % Identifica i piezometri di Geosense
% for p=1:rPL
% PiezDef(:,p) = PiezDef(:,p)+RIF_PL(p,1)';
% end
% end
% end
[Livello,PiezDef,PiezDefT,ErrPiezoLink,ARRAYdatePL] = Piezo(PiezDef,PiezDefT,...
BaroDef,ARRAYdatePL,NuovoZeroPL,NdatiMediaP,Ndatidespike,NodoPiezoLink,ErrPiezoLink,rPL,...
Anchor_real,marginePiezo,FileName);
else
[Livello,PiezDef,PiezDefT] = matrici_vuote_PL(FileName);
end
clear NuovoZeroPL
clear NodoPiezoLink
clear Anchor_real
clear DCalPLTot
% --- Analisi Baro Link ---
if yesBL == 1
[BaroDef,BaroDefT,ARRAYdateBL,ErrBaroLink] = Baro(BaroDef,BaroDefT,...
ARRAYdateBL,NuovoZeroBL,NdatiMediaP,Ndatidespike,ErrBaroLink,rBL,...
marginePiezo,FileName);
else
[BaroDef,BaroDefT] = matrici_vuote_BL(FileName);
end
clear NuovoZeroBL
clear NdatiMediaP
clear marginePiezo
clear NodoBaroLink
% --- Analisi Load Link ---
if yesLL == 1
[DatiLoad,ErrLoadLink,ARRAYdateLL] = loadcell(LoadDef,ErrLoadLink,...
ARRAYdateLL,NuovoZeroLL,NdatiMedia,Ndatidespike,margine,FileName);
else
DatiLoad = [];
end
clear LoadDef
clear NuovoZeroLL
clear NodoLoadLink
%--- Analisi Klino Link ---
if yesKL == 1
[ANGdefKL,TdefKL,ErrKlinoLink,ARRAYdateKL] = Klino(ANGdefKL,TdefKL,...
ARRAYdateKL,ErrKlinoLink,NuovoZeroKL,NdatiMedia,Ndatidespike,ris_acc,tolleranzaAcc,...
Tmax,Tmin,datainiKL,rKL,IDcentralina,DTcatena,margine,NodoKlinoLink,FileName);
end
clear NuovoZeroKL
clear ris_acc
clear tolleranzaAcc
%--- Analisi Klino Link HR ---
if yesKLHR == 1
[ANGdefKLHR,TdefKLHR,ErrKlinoLinkHR,ARRAYdateKLHR] = KlinoHR(ANGdefKLHR,...
TdefKLHR,ARRAYdateKLHR,ErrKlinoLinkHR,NuovoZeroKLHR,NodoKlinoLinkHR,NdatiMedia,...
Ndatidespike,Tmax,Tmin,datainiKLHR,rKLHR,IDcentralina,DTcatena,margine,FileName);
end
clear NuovoZeroKLHR
clear NodoKlinoLinkHR
%--- Analisi Rain Link ---
if yesRL == 1
[Rain,RainCum,ARRAYdateRL,ErrRainLink] = CalcoloRain(Dati_RL,ARRAYdateRL,...
DatiElabRainLink,NuovoZeroRL,NdatiMedia,ErrRainLink,rRL,margine,...
IDcentralina,conn,FileName);
end
clear NuovoZeroRL
clear Dati_RL
clear DatiElabRainLink
%--- Analisi Therm Link ---
if yesThL == 1
[Dati_ThL,ARRAYdateThL,ErrThermLink] = Therm(Dati_ThL,ARRAYdateThL,...
NuovoZeroThL,ErrThermLink,NdatiMedia,margine,Tmax,Tmin,datainiThL,...
IDcentralina,DTcatena,FileName);
end
clear NuovoZeroThL
clear NodoThermLink
%--- Analisi PT100 Link ---
if yesPT100 == 1
[Dati_PT100,ARRAYdatePT100,ErrPT100Link] = PT100(Dati_PT100,...
ARRAYdatePT100,NuovoZeroPT100,ErrPT100Link,NdatiMedia,margine,Tmax,Tmin,...
datainiPT100,IDcentralina,DTcatena,FileName);
end
clear NuovoZeroPT100
clear NdatiMedia
clear margine
clear NodoPT100Link
%--- Analisi Weir Link ---
if yesWL == 1
therm = cell2mat(NodoWeirLink(:,6));
for ii = 1:rWL
if therm(ii,1)==1 % è presente il termometro
Dati_WL(:,ii) = Dati_WL(:,ii)./(1-0.0002*TdefWL(:,ii)); % vale solo per correzione LINEARE
end
end
% Calcolo differenziali
NomeFile = ['' IDcentralina '-' DTcatena '-RifWL.csv'];
if NuovoZeroWL == 0 % prima elaborazione
csvwrite(NomeFile,Dati_WL(1,:));
Dati_WL = Dati_WL(1,:) - Dati_WL;
else % Ci sono già dei dati elaborati
RIF = csvread(NomeFile);
Dati_WL = RIF - Dati_WL;
end
end
if strcmp(IDcentralina,'ID0070') == 1 && strcmp(DTcatenaRif,'DT0111 IPI') == 1
DTcatena = 'DT0111 IPI';
end
%% Scrittura Database
database_write(catena,IDcentralina,DTcatena,...
X,Y,Z,Xlocal,Ylocal,Zlocal,HShift,HShift_local,AlfaX,AlfaY,Azimuth,TempDef_TL,...
Speed_local,Speed,Acceleration,Acceleration_local,ErrTiltLink,ARRAYdateTL,...
Y_TLH,Z_TLH,Ylocal_TLH,Zlocal_TLH,AlfaX_TLH,AlfaY_TLH,TempDef_TLH,Speed_TLH,...
Speed_local_TLH,Acceleration_TLH,Acceleration_local_TLH,ErrTiltLinkH,ARRAYdateTLH,...
X_IPL,Y_IPL,Z_IPL,Xlocal_IPL,Ylocal_IPL,Zlocal_IPL,HShift_IPL,...
HShift_local_IPL,Azimuth_IPL,TempDef_IPL,Speed_local_IPL,Speed_IPL,...
Acceleration_local_IPL,Acceleration_IPL,AlfaX_IPL,AlfaY_IPL,ErrInPlaceLink,ARRAYdateIPL,...
X_HR,Y_HR,Z_HR,Xlocal_HR,Ylocal_HR,Zlocal_HR,HShift_HR,HShift_local_HR,...
AlfaX_HR,AlfaY_HR,Azimuth_HR,TempDef_TLHR,Speed_local_HR,Speed_HR,...
Acceleration_HR,Acceleration_local_HR,ErrTiltLinkHR,ARRAYdateTLHR,...
Y_TLHRH,Z_TLHRH,Ylocal_TLHRH,Zlocal_TLHRH,AlfaX_TLHRH,AlfaY_TLHRH,TempDef_TLHRH,Speed_TLHRH,...
Speed_local_TLHRH,Acceleration_TLHRH,Acceleration_local_TLHRH,ErrTiltLinkHRH,ARRAYdateTLHRH,...
X_IPLHR,Y_IPLHR,Z_IPLHR,Xlocal_IPLHR,Ylocal_IPLHR,Zlocal_IPLHR,HShift_IPLHR,...
HShift_local_IPLHR,AlfaX_IPLHR,AlfaY_IPLHR,TempDef_IPLHR,Azimuth_IPLHR,Speed_IPLHR,...
Speed_local_IPLHR,Acceleration_IPLHR,Acceleration_local_IPLHR,ErrInPlaceLinkHR,ARRAYdateIPLHR,...
Livello,PiezDef,PiezDefT,ErrPiezoLink,ARRAYdatePL,BaroDef,BaroDefT,ErrBaroLink,ARRAYdateBL,...
DatiLoad,ErrLoadLink,ARRAYdateLL,Rain,RainCum,ErrRainLink,ARRAYdateRL,...
ANGdefKL,TdefKL,ErrKlinoLink,ARRAYdateKL,NodoKlinoLink,ANGdefKLHR,TdefKLHR,ErrKlinoLinkHR,ARRAYdateKLHR,...
Dati_ThL,ErrThermLink,ARRAYdateThL,Dati_PT100,ErrPT100Link,ARRAYdatePT100,...
Dati_PE,ErrPendulum,ARRAYdatePE,Dati_WL,TdefWL,ErrWeirLink,NodoWeirLink,ARRAYdateWL,...
conn,FileName);
%% Parte di lancio SW complementari
[yesATD,yesRSN,yesMusa] = SWSearch(idTool,conn,FileName);
try
if yesATD == 1
rilancio = ['/usr/local/matlab_func/run_ATD_lnx.sh /usr/local/MATLAB/MATLAB_Runtime/v93 ' IDcentralina ' ' DTcatena ''];
status = system(rilancio);
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'ATD relaunch operation executed with success';
fprintf(fileID,fmt,text);
fprintf(fileID,fmt,status);
fclose(fileID);
end
if yesRSN == 1
rilancio = ['/usr/local/matlab_func/run_RSN_lnx.sh /usr/local/MATLAB/MATLAB_Runtime/v93 ' IDcentralina ' ' DTcatena ''];
status = system(rilancio);
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'RSN relaunch operation executed with success';
fprintf(fileID,fmt,text);
fprintf(fileID,fmt,status);
fclose(fileID);
end
if yesMusa == 1
rilancio = ['/usr/local/matlab_func/run_Musa_lnx.sh /usr/local/MATLAB/MATLAB_Runtime/v93 ' IDcentralina ' ' DTcatena ''];
status = system(rilancio);
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'Musa relaunch operation executed with success';
fprintf(fileID,fmt,text);
fprintf(fileID,fmt,status);
fclose(fileID);
end
catch err
FileErr = ['ErrorFile-' IDcentralina '-' datestr(today) '-' datestr(now,'hhMMss')];
fid = fopen(FileErr,'a+');
fprintf(fid, '%s', err.getReport('extended','hyperlinks','off'));
fclose(fid);
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'relaunch operation FAILED';
fprintf(fileID,fmt,text);
fclose(fileID);
end
end
%% Parte di allertamento
% Determino gli utenti da utilizzare in tutte le funzioni successive
[Mail,Users_Alert,Users_SMS,Users_Report,activeIT,activeEN,sms,siteID,ini_CoV] = ...
Users_Def(IDcentralina,conn,FileName);
% Determino alcune informazioni del sito che mi servono nei passaggi
% successivi
[unitID,chainID,Chain_Scheme,num_nodi,alarms] = Site_Info(siteID,conn,FileName);
% Soglie imposte dal cliente
alert_Levels(ARRAYdateRL,IDcentralina,DTcatena,conn,FileName);
if strcmp(Unit,'Nesa evolution') == 0
% Calcolo con Fukuzono - Inverso della Velocità
Time_Of_Failure(IDcentralina,DTcatena,date,ARRAYdateTL,ARRAYdateIPL,...
yesTL,yesTLHR3D,yesIPL,yesIPLHR3D,rTL,rIPL,NodoTiltLink,NodoTiltLinkHR,...
NodoTiltLinkHR3D,NodoInPlaceLink,NodoInPlaceLinkHR,NodoInPlaceLinkHR3D,...
Mail,Users_Alert,Users_SMS,ini_CoV,activeIT,activeEN,sms,siteID,conn,FileName);
% Attivazione di sistemi di allertamento
Siren(alarms,yesKL,yesKLHR,yesTL,datainiKL,tempoiniKL,datainiKLHR,tempoiniKLHR,...
datainiTL,tempoiniTL,ARRAYdateKL,ARRAYdateKLHR,ARRAYdateTL,conn,date,time,FileName);
end
% Controllo del Livello della Batteria
checkBattery(Batteria,IDcentralina,Unit,Mail,conn,FileName);
% Controllo della data di chiusura piattaforma per una determinata centralina
checkUnit(IDcentralina,conn,FileName);
% Controllo della data di scadenza per una determinata SIM
checkSIM(IDcentralina,conn,FileName)
% Redazione del Report Automatico
Report_ASE(IDcentralina,unitID,chainID,alarms,Chain_Scheme,num_nodi,...
Users_Report,Mail,time,activeEN,siteID,conn,FileName);
close(conn)
toc
text = ['Tilt calculation ended in ' num2str(toc)];
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
RC = 0;
end