Sync from remote server: 2025-10-12 18:56:41

This commit is contained in:
2025-10-12 18:56:59 +02:00
commit 7e8ee264aa
553 changed files with 161447 additions and 0 deletions

740
ATD/letturaCal.m Executable file
View File

@@ -0,0 +1,740 @@
% Funzione che legge i valori di calibrazione per i vari sensori
function [DCalTuLTot,DCalRLTot,DCalTLHTot,DCalTLHRHTot,DCalPCLTot,DCalPCLHRTot,...
DCalPLTot,DCalLLTot,DCalELTot,DCalEL3DTot,DCalWELTot,DCalMPBELTot,...
DCalALTot,DCalCrLTot,DCal3DCrLTot,DCal2DCrLTot,DCalSMTot,yesTuL,yesRL,yesTLH,yesTLHRH,...
yesPCL,yesPCLHR,yesPL,yesLL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesCrL,yes3DCrL,yes2DCrL,...
yesAL,yesSM] = letturaCal(IDcentralina,DTcatena,catena,rTuL,rRL,rTLH,rTLHRH,...
rPCL,rPCLHR,rPrL,rLL,rEL,r3DEL,rWEL,rMPBEL,NumBasi,rAL,rCrL,r3DCrL,r2DCrL,rSM,...
NodoTunnelLink,NodoRadialLink,NodoTiltLinkH,NodoPreConvLink,NodoPressureLink,...
NodoLoadLink,NodoExtensometerLink,Nodo3DExtensometerLink,...
NodoWireExtensometerLink,NodoMultiPointRodExtensometer,NodoAnalogLink,...
NodoCrackLink,Nodo3DCrackLink,Nodo2DCrackLink,NodoStressMeter,yesTuL,yesRL,yesTLH,yesTLHRH,...
yesPCL,yesPCLHR,yesPL,yesLL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesAL,yesCrL,yes3DCrL,yes2DCrL,...
yesSM,conn,FileName)
% Apro file di testo
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'letturaCal function started';
fprintf(fileID,fmt,text);
% Inizializzo le matrici
[rC,~] = size(catena);
idNodo = cell2mat(catena(:,1));
% Tunnel Link
if isempty(NodoTunnelLink) == 1
DCalTuLTot = [];
else
if strcmp(NodoTunnelLink(1,4),'ADC') || strcmp(NodoTunnelLink{1,4},'null') || isempty(NodoTunnelLink{1,4}) == 1
DCalTuLTot = cell(rTuL,11);
elseif strcmp(NodoTunnelLink(1,4),'g')
DCalTuLTot = [];
end
end
% Radial Link
if isempty(NodoRadialLink) == 1
DCalRLTot = [];
else
if strcmp(NodoRadialLink(1,4),'ADC') || strcmp(NodoRadialLink{1,4},'null') || isempty(NodoRadialLink{1,4}) == 1
DCalRLTot = cell(rRL,11);
elseif strcmp(NodoRadialLink(1,4),'g')
DCalRLTot = [];
end
end
% Tilt Link H
if isempty(NodoTiltLinkH) == 1
DCalTLHTot = [];
else
if strcmp(NodoTiltLinkH(1,4),'ADC') || strcmp(NodoTiltLinkH{1,4},'null') || isempty(NodoTiltLinkH{1,4}) == 1
DCalTLHTot = cell(rTLH,11);
elseif strcmp(NodoTiltLinkH(1,4),'Gradi') || strcmp(NodoTiltLinkH(1,4),'g')
DCalTLHTot = [];
end
end
% Tilt Link HR H
DCalTLHRHTot = cell(rTLHRH,4); % matrice che concatena i dati di calibrazione relativi a ciascun nodo Tilt Link HR H
% PreConv Link
if isempty(NodoPreConvLink) == 1
DCalPCLTot = [];
else
if strcmp(NodoPreConvLink(1,4),'ADC') || strcmp(NodoPreConvLink{1,4},'null') || isempty(NodoPreConvLink{1,4}) == 1
DCalPCLTot = cell(rPCL,11);
elseif strcmp(NodoPreConvLink(1,4),'g')
DCalPCLTot = [];
end
end
% PreConv Link HR
DCalPCLHRTot = cell(rPCLHR,4); % matrice che concatena i dati di calibrazione relativi a ciascun nodo PreConv Link HR
% Pressure Link
x = isempty(NodoPressureLink);
if x == 0
for P = 1:rPrL
if strcmp(NodoPressureLink(P,3),'4-20 mA')
DCalPLTot = cell(rPrL,3); % matrice che concatena i dati relativi a ciascun nodo Pressure Link
break
elseif strcmp(NodoPressureLink(P,3),'mV/V')
DCalPLTot = cell(rPrL,2); % matrice che concatena i dati relativi a ciascun nodo Pressure Link
end
end
else
DCalPLTot = [];
end
% Load Link
x = isempty(NodoLoadLink);
if x == 0
for P = 1:rLL
if strcmp(NodoLoadLink(P,3),'4-20 mA')
DCalLLTot = cell(rLL,3); % matrice che concatena i dati relativi a ciascun nodo Load Link
break
elseif strcmp(NodoLoadLink(P,3),'mV/V') || strcmp(NodoLoadLink(P,3),'ADC')
DCalLLTot = cell(rLL,2); % matrice che concatena i dati relativi a ciascun nodo Load Link
end
end
else
DCalLLTot = [];
end
% Extensometer Link
x = isempty(NodoExtensometerLink);
if x == 0
for P = 1:rEL
if strcmp(NodoExtensometerLink(P,3),'4-20 mA')
DCalELTot = cell(rEL,4);
break
elseif strcmp(NodoExtensometerLink(P,3),'mV/V') || strcmp(NodoExtensometerLink(P,3),'Hz')
DCalELTot = cell(rEL,3);
end
end
else
DCalELTot = [];
end
% 3D Extensometer Link
x = isempty(Nodo3DExtensometerLink);
if x == 0
for P = 1:r3DEL
if strcmp(Nodo3DExtensometerLink(P,3),'4-20 mA')
DCalEL3DTot = cell(rEL,9);
break
elseif strcmp(Nodo3DExtensometerLink(P,3),'mV/V') || strcmp(Nodo3DExtensometerLink(P,3),'Hz')
DCalEL3DTot = cell(r3DEL,6);
end
end
else
DCalEL3DTot = [];
end
% Wire Extensometer Link
x = isempty(NodoWireExtensometerLink);
if x == 0
for P = 1:rWEL
if strcmp(NodoWireExtensometerLink(P,3),'4-20 mA')
DCalWELTot = cell(rWEL,3);
break
elseif strcmp(NodoWireExtensometerLink(P,3),'mV/V') || strcmp(NodoWireExtensometerLink(P,3),'Hz')
DCalWELTot = cell(rWEL,2);
end
end
else
DCalWELTot = [];
end
% Estensimetri multibase
x = isempty(NodoMultiPointRodExtensometer);
if x == 0
for P = 1:rMPBEL
if strcmp(NodoMultiPointRodExtensometer(P,3),'mV/V')
DCalMPBELTot = cell(rMPBEL,NumBasi); % matrice che concatena i dati relativi a ciascun nodo Multi Point Borehole Extensometer Link
break
end
end
else
DCalMPBELTot = [];
end
% Analog Link
DCalALTot = cell(rAL,3); % matrice che concatena i dati relativi a ciascun nodo Analog Link
% Crack Link
x = isempty(NodoCrackLink);
if x == 0
for P = 1:rCrL
if strcmp(NodoCrackLink(P,3),'Hz') || strcmp(NodoCrackLink(P,3),'4-20 mA')||strcmp(NodoCrackLink(P,3),'Hz mm')
DCalCrLTot = cell(rCrL,3); % matrice che concatena i dati relativi a ciascun nodo Crack Link
elseif strcmp(NodoCrackLink(P,3),'mV/V')
DCalCrLTot = cell(rCrL,2); % matrice che concatena i dati relativi a ciascun nodo Crack Link
end
end
else
DCalCrLTot = [];
end
% 3D Crack Link
x = isempty(Nodo3DCrackLink);
if x == 0
for P = 1:r3DCrL
if strcmp(Nodo3DCrackLink(P,3),'Hz') || strcmp(Nodo3DCrackLink(P,3),'4-20 mA')
DCal3DCrLTot = cell(r3DCrL,9); % matrice che concatena i dati relativi a ciascun nodo 3D Crack Link
elseif strcmp(Nodo3DCrackLink(P,3),'mV/V')
DCal3DCrLTot = cell(r3DCrL,6); % matrice che concatena i dati relativi a ciascun nodo 3D Crack Link
end
end
else
DCal3DCrLTot = [];
end
% 2D Crack Link
x = isempty(Nodo2DCrackLink);
if x == 0
for P = 1:r2DCrL
if strcmp(Nodo2DCrackLink(P,3),'Hz') || strcmp(Nodo2DCrackLink(P,3),'4-20 mA')
DCal2DCrLTot = cell(r2DCrL,6); % matrice che concatena i dati relativi a ciascun nodo 2D Crack Link
elseif strcmp(Nodo2DCrackLink(P,3),'mV/V')
DCal2DCrLTot = cell(r2DCrL,4); % matrice che concatena i dati relativi a ciascun nodo 2D Crack Link
end
end
else
DCal2DCrLTot = [];
end
% Stress Meter
x = isempty(NodoStressMeter);
if x == 0
for P = 1:rSM
if strcmp(NodoStressMeter(P,3),'Hz')
DCalSMTot = cell(rSM,1); % matrice che concatena i dati relativi a ciascun nodo Stress Meter
end
end
else
DCalSMTot = [];
end
%% Contatori
% Matrice con testi di conferma lettura o warning di lettura per le varie tipologie di nodi
TuL = 1; % Tunnel Link
RL = 1; % Radial Link
TLH = 1; % Tilt Link H
TLHRH = 1; % Tilt Link HR H
PCL = 1; % PreConv Link
PCLHR = 1; % PreConv Link HR
PL = 1; % Pressure Link
LL = 1; % Load Link
EL = 1; % Extensometer Link
EL3D = 1; % 3D Extensometer Link
WEL = 1; % Wire Extensometer Link
MPBEL = 1; % Multi Point Borehole Extensometer Link
AL = 1; % Analog Link
CrL = 1; % Crack Link
CrL3D = 1; % 3D Crack Link
CrL2D = 1; % 2D Crack Link
SM = 1; % Stress Meter
for a = 1:rC
nNodo = mat2str(cell2mat(catena(a,3)));
if idNodo(a,1) == 17 % Tunnel Link
if strcmp(NodoTunnelLink(1,4),'ADC') || strcmp(NodoTunnelLink{1,4},'null') || isempty(NodoTunnelLink{1,4}) == 1
%% Tunnel link
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8, CalA, CalB from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''''];
curs = exec(conn,comando);
curs = fetch(curs);
DCalTuL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Tunnel Link
[rr,cc] = size(DCalTuL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Tunnel Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesTuL = 0;
else
DCalTuLTot(TuL,:) = DCalTuL(:,:);
TuL = TuL+1;
text = ['Calibration of node Tunnel Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
else
ok = ['Calibration parameters of node Tunnel Link number ' nNodo ' unnecessary'];
fprintf(fileID,fmt,ok);
end
elseif idNodo(a,1) == 18 % Radial Link
if strcmp(NodoRadialLink(1,4),'ADC') || strcmp(NodoRadialLink{1,4},'null') || isempty(NodoRadialLink{1,4}) == 1
%% Radial Link
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8, CalA, CalB from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''''];
curs = exec(conn,comando);
curs = fetch(curs);
DCalRL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Radial Link
[rr,cc] = size(DCalRL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Radial Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesRL = 0;
else
DCalRLTot(RL,:) = DCalRL(:,:);
RL = RL+1;
text = ['Calibration of node Radial Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
else
ok = ['Calibration parameters of node Radial Link number ' nNodo ' unnecessary'];
fprintf(fileID,fmt,ok);
end
elseif idNodo(a,1) == 11 % Tilt Link H
%% Tilt Link H
if strcmp(NodoTiltLinkH(1,4),'ADC') || strcmp(NodoTiltLinkH{1,4},'null') || isempty(NodoTiltLinkH{1,4}) == 1
%% Importazione dei dati di calibrazione per Tilt link H
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8, CalA, CalB from CalibrationView where UnitName = '''...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''''];
curs = exec(conn,comando);
curs = fetch(curs);
DCalTLH = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Tilt Link H
[rr,cc] = size(DCalTLH);
if rr==1 && cc==1
w = ['Warning: there was an error reading calibration values of node Tilt Link H number ' nNodo ''];
fprintf(fileID,fmt,w);
yesTLH = 0;
else
DCalTLHTot(TLH,:) = DCalTLH;
TLH = TLH+1;
ok = ['Calibration parameters of node Tilt Link H number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,ok);
end
else
ok = ['Calibration parameters of node Tilt Link H number ' nNodo ' unnecessary'];
fprintf(fileID,fmt,ok);
end
elseif idNodo(a,1) == 12 % Tilt Link HR H
%% Tilt Link HR H
comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''''];
curs = exec(conn,comando);
curs = fetch(curs);
DCalTLHRH = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Tilt Link HR H
[rr,cc] = size(DCalTLHRH);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Tilt Link HR H number ' nNodo ''];
fprintf(fileID,fmt,text);
yesTLHRH = 0;
else
DCalTLHRHTot(TLHRH,:) = DCalTLHRH(:,:);
TLHRH = TLHRH+1;
text = ['Calibration of node Tilt Link HR H number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 23 % PreConv Link
if strcmp(NodoPreConvLink(1,4),'ADC') || strcmp(NodoPreConvLink{1,4},'null') || isempty(NodoPreConvLink{1,4}) == 1
%% PreConv Link
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8, CalA, CalB from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''''];
curs = exec(conn,comando);
curs = fetch(curs);
DCalPCL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo PreConv Link
[rr,cc] = size(DCalPCL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node PreConv Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesPCL = 0;
else
DCalPCLTot(PCL,:) = DCalPCL(:,:);
PCL = PCL+1;
text = ['Calibration of node PreConv Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
else
ok = ['Calibration parameters of node PreConv Link number ' nNodo ' unnecessary'];
fprintf(fileID,fmt,ok);
end
elseif idNodo(a,1) == 24 % PreConv Link HR
%% PreConv Link HR
comando = ['select Cal0, Cal1, CalA, CalB from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''''];
curs = exec(conn,comando);
curs = fetch(curs);
DCalPCLHR = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo PreConv Link HR
[rr,cc] = size(DCalPCLHR);
if rr==1 && cc==1
text = ['Warning: there was an error reading node PreConv Link HR number ' nNodo ''];
fprintf(fileID,fmt,text);
yesPCLHR = 0;
else
DCalPCLHRTot(PCLHR,:) = DCalPCLHR(:,:);
PCLHR = PCLHR+1;
text = ['Calibration of node PreConv Link HR number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 21 % Pressure Link
%% Pressure Link
if strcmp(NodoPressureLink(PL,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(NodoPressureLink(PL,3),'mV/V')
comando = ['select Cal0 from CalibrationView where UnitName = ''' ...
IDcentralina ''' andToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalPL = curs.Data; % matrice che raccoglie i dati del nodo numero 'nNodo' di tipo Pressure Link
[rr,cc] = size(DCalPL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Pressure Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesPL = 0;
else
if strcmp(NodoPressureLink(PL,3),'mV/V')
DCalPLTot(PL,1) = DCalPL(:,:);
elseif strcmp(NodoPressureLink(PL,3),'4-20 mA')
DCalPLTot(PL,1:3) = DCalPL(:,:);
end
PL = PL+1;
text = ['Calibration of node Pressure Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 15 % Load Link
%% Importazione dei dati di calibrazione per Load Link
if strcmp(NodoLoadLink(LL,3),'mV/V') || strcmp(NodoLoadLink(a,3),'ADC')
comando = ['select Cal0, Cal1 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(NodoLoadLink(LL,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalLL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Load Link
[rr,cc] = size(DCalLL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Load Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesLL = 0;
else
if strcmp(NodoLoadLink(LL,3),'mV/V') || strcmp(NodoLoadLink(LL,3),'ADC')
DCalLLTot(LL,1:2) = DCalLL(:,:);
elseif strcmp(NodoLoadLink(LL,3),'4-20 mA')
DCalLLTot(LL,1:3) = DCalLL(:,:);
end
LL = LL+1;
text = ['Calibration of node Load Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 16 % Extensometer Link
%% Importazione dei dati di calibrazione per Extensometer Link
if strcmp(NodoExtensometerLink(EL,3),'Hz') || strcmp(NodoExtensometerLink(EL,3),'mV/V')
comando = ['select Cal0, Cal1, carico_iniziale from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(NodoExtensometerLink(EL,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2, carico_iniziale from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalEL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Extensometer Link
[rr,cc] = size(DCalEL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Extensometer Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesEL = 0;
else
if strcmp(NodoExtensometerLink(EL,3),'Hz') || strcmp(NodoExtensometerLink(EL,3),'mV/V')
DCalELTot(EL,1:3) = DCalEL(:,:);
elseif strcmp(NodoExtensometerLink(EL,3),'4-20 mA')
DCalELTot(EL,1:4) = DCalEL(:,:);
end
EL = EL+1;
text = ['Calibration of node Extensometer Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 19 % 3D Extensometer Link
%% Importazione dei dati di calibrazione per 3D Extensometer Link
if strcmp(Nodo3DExtensometerLink(EL3D,3),'Hz') || strcmp(Nodo3DExtensometerLink(EL3D,3),'mV/V')
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(Nodo3DExtensometerLink(EL3D,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalEL3D = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Extensometer Link
[rr,cc] = size(DCalEL3D);
if rr==1 && cc==1
text = ['Warning: there was an error reading node 3D Extensometer Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yes3DEL = 0;
else
if strcmp(Nodo3DExtensometerLink(EL3D,3),'Hz') || strcmp(Nodo3DExtensometerLink(EL3D,3),'mV/V')
DCalEL3DTot(EL3D,1:6) = DCalEL3D(:,:);
elseif strcmp(Nodo3DExtensometerLink(EL3D,3),'4-20 mA')
DCalEL3DTot(EL3D,1:9) = DCalEL3D(:,:);
end
EL3D = EL3D+1;
text = ['Calibration of node 3D Extensometer Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 22 % Wire Extensometer Link
%% Importazione dei dati di calibrazione per Wire Extensometer Link
if strcmp(NodoWireExtensometerLink(WEL,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(NodoWireExtensometerLink(WEL,3),'mV/V')
comando = ['select Cal0, Cal1 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalWEL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Wire Extensometer Link
[rr,cc] = size(DCalWEL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Wire Extensometer Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesWEL = 0;
else
if strcmp(NodoWireExtensometerLink(WEL,3),'4-20 mA')
DCalWELTot(WEL,1:3) = DCalWEL(:,:);
elseif strcmp(NodoWireExtensometerLink(WEL,3),'mV/V')
DCalWELTot(WEL,1:2) = DCalWEL(:,:);
end
WEL = WEL+1;
text = ['Calibration of node Wire Extensometer Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 25 % Multi Point Borehole Extensometer Link
%% Importazione dei dati di calibrazione per Multi Point Borehole Extensometer Link
if strcmp(NodoMultiPointRodExtensometer(MPBEL,3),'mV/V')
if NumBasi == 1
comando = ['select Cal0 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif NumBasi == 2
comando = ['select Cal0, Cal1 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif NumBasi == 3
comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif NumBasi == 4
comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif NumBasi == 5
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalMPBEL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Multi Point Borehole Extensometer Link
[rr,cc] = size(DCalMPBEL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node MultiPoint Borehole Extensometer Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesMPBEL = 0;
else
if strcmp(NodoMultiPointRodExtensometer(MPBEL,3),'mV/V')
if NumBasi == 1
DCalMPBELTot(MPBEL,1) = DCalMPBEL(:,:);
elseif NumBasi == 2
DCalMPBELTot(MPBEL,1:2) = DCalMPBEL(:,:);
elseif NumBasi == 3
DCalMPBELTot(MPBEL,1:3) = DCalMPBEL(:,:);
elseif NumBasi == 4
DCalMPBELTot(MPBEL,1:4) = DCalMPBEL(:,:);
elseif NumBasi == 5
DCalMPBELTot(MPBEL,1:5) = DCalMPBEL(:,:);
elseif NumBasi == 6
DCalMPBELTot(MPBEL,1:6) = DCalMPBEL(:,:);
end
end
MPBEL = MPBEL+1;
text = ['Calibration of node MultiPoint Borehole Extensometer Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 8 % Analog Link
%% Importazione dei dati di calibrazione per Analog Link
if strcmp(NodoAnalogLink(AL,3),'mV/V')
comando = ['select Cal0, Cal1 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(NodoAnalogLink(a,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(NodoAnalogLink(a,3),'Hz')
comando = ['select Cal0, Cal1 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' ...
DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalAL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Analog Link
[rr,cc] = size(DCalAL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Analog Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesAL = 0;
else
if strcmp(NodoAnalogLink(AL,3),'mV/V')
DCalALTot(AL,1:2) = DCalAL(:,:);
elseif strcmp(NodoAnalogLink(AL,3),'4-20 mA')
DCalALTot(AL,1:3) = DCalAL(:,:);
elseif strcmp(NodoAnalogLink(AL,3),'Hz')
DCalALTot(AL,1:2) = DCalAL(:,:);
end
AL = AL+1;
text = ['Calibration of node Analog Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 36 % Crack Link
%% Importazione dei dati di calibrazione per Crack Link
if strcmp(NodoCrackLink(CrL,3),'mV/V')
comando = ['select Cal0, Cal1 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(NodoCrackLink(CrL,3),'Hz')||strcmp(NodoCrackLink(CrL,3),'Hz mm')
comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalCrL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Crack Link
[rr,cc] = size(DCalCrL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Crack Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yesCrL = 0;
else
if strcmp(NodoCrackLink(CrL,3),'mV/V')
DCalCrLTot(CrL,1:2) = DCalCrL(:,:);
elseif strcmp(NodoCrackLink(CrL,3),'Hz')||strcmp(NodoCrackLink(CrL,3),'Hz mm')
DCalCrLTot(CrL,1:3) = DCalCrL(:,:);
end
CrL = CrL+1;
text = ['Calibration of node Crack Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 37 % 3D Crack Link
%% Importazione dei dati di calibrazione per 3D Crack Link
if strcmp(Nodo3DCrackLink(CrL3D,3),'mV/V')
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(Nodo3DCrackLink(CrL3D,3),'Hz') || strcmp(Nodo3DCrackLink(CrL3D,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCal3DCrL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo 3D Crack Link
[rr,cc] = size(DCal3DCrL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node 3D Crack Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yes3DCrL = 0;
else
if strcmp(Nodo3DCrackLink(CrL3D,3),'mV/V')
DCal3DCrLTot(CrL3D,1:6) = DCal3DCrL(:,:);
elseif strcmp(Nodo3DCrackLink(CrL3D,3),'Hz') || strcmp(Nodo3DCrackLink(CrL3D,3),'4-20 mA')
DCal3DCrLTot(CrL3D,1:9) = DCal3DCrL(:,:);
end
CrL3D = CrL3D+1;
text = ['Calibration of node 3D Crack Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 51 % 2D Crack Link
%% Importazione dei dati di calibrazione per 2D Crack Link
if strcmp(Nodo2DCrackLink(CrL2D,3),'Hz') || strcmp(Nodo3DCrackLink(CrL3D,3),'4-20 mA')
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
elseif strcmp(Nodo2DCrackLink(CrL2D,3),'mV/V')
comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCal2DCrL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo 2D Crack Link
[rr,cc] = size(DCal2DCrL);
if rr==1 && cc==1
text = ['Warning: there was an error reading node 2D Crack Link number ' nNodo ''];
fprintf(fileID,fmt,text);
yes2DCrL = 0;
else
if strcmp(Nodo2DCrackLink(CrL2D,3),'Hz') || strcmp(Nodo3DCrackLink(CrL3D,3),'4-20 mA')
DCal2DCrLTot(CrL2D,1:6) = DCal2DCrL(:,:);
elseif strcmp(Nodo2DCrackLink(CrL2D,3),'mV/V')
DCal2DCrLTot(CrL2D,1:4) = DCal2DCrL(:,:);
end
CrL2D = CrL2D+1;
text = ['Calibration of node 2D Crack Link number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 47 % Stress Meter
%% Importazione dei dati di calibrazione per Stress Meter
if strcmp(NodoStressMeter(SM,3),'Hz')
comando = ['select Cal0, Cal1 from CalibrationView where UnitName = ''' ...
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
end
curs = exec(conn,comando);
curs = fetch(curs);
DCalSM = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo 3D Crack Link
[rr,cc] = size(DCalSM);
if rr==1 && cc==1
text = ['Warning: there was an error reading node Stress Meter number ' nNodo ''];
fprintf(fileID,fmt,text);
yesSM = 0;
else
if strcmp(NodoStressMeter(SM,3),'Hz')
DCalSMTot(SM,1) = DCalSM(:,1);
end
SM = SM+1;
text = ['Calibration of node Stress Meter number ' nNodo ' downloaded correctly'];
fprintf(fileID,fmt,text);
end
elseif idNodo(a,1) == 9 % Ancora
text = 'Anchor';
fprintf(fileID,fmt,text);
end
end
text = 'NuovaConversione function started';
fprintf(fileID,fmt,text);
% Nuova conversione da fare per il nuovo database
[DCalTuLTot,DCalRLTot,DCalTLHTot,DCalTLHRHTot,DCalPCLTot,DCalPCLHRTot,...
DCalPLTot,DCalLLTot,DCalELTot,DCalEL3DTot,DCalWELTot,DCalMPBELTot,DCalALTot,...
DCalCrLTot,DCal3DCrLTot,DCal2DCrLTot] = NuovaConversione(DCalTuLTot,yesTuL,DCalRLTot,yesRL,...
DCalTLHTot,yesTLH,DCalTLHRHTot,yesTLHRH,DCalPCLTot,yesPCL,DCalPCLHRTot,yesPCLHR,...
DCalPLTot,yesPL,DCalLLTot,yesLL,DCalELTot,yesEL,DCalEL3DTot,yes3DEL,DCalWELTot,yesWEL,...
DCalMPBELTot,yesMPBEL,DCalALTot,yesAL,DCalCrLTot,yesCrL,DCal3DCrLTot,yes3DCrL,...
DCal2DCrLTot,yes2DCrL,FileName);
%% Chiudo Testo
text = 'NuovaConversione & letturaCal functions ended';
fprintf(fileID,fmt,text);
fclose(fileID);
end