% Funzione che legge i valori di calibrazione per i vari sensori function [DCalTLTot,DCalHDTot,DCalHDVRTot,DCalTLHRTot,DCalTLHTot,DCalTLHRHTot,DCalPLTot,DCalBLTot,... DCalALTot,DCalLLTot,DCalKLTot,DCalKLHRTot,DCalRLTot,DCalThLTot,DCalPT100Tot,... DCalIPLTot,DCalIPLHRTot,DCalWLTot,DCalPETot,Barometri,yesTL,yesHD,yesHDVR,yesTLHR,yesTLH,... yesTLHRH,yesPL,yesBL,yesAL,yesLL,yesKL,yesKLHR,yesThL,yesPT100,yesIPL,yesIPLHR,yesWL] = ... letturaCal(IDcentralina,DTcatena,catena,yesTL,yesHD,yesHDVR,yesTLHR,yesTLH,yesTLHRH,... yesPL,yesBL,yesAL,yesLL,yesKL,yesKLHR,yesThL,yesPT100,yesIPL,yesIPLHR,yesWL,... rTL,rHD,rHDVR,rPL,rBL,rTLHR,rAL,rTLH,rTLHRH,rLL,rThL,rKL,rKLHR,rRL,rPT100,rIPL,rIPLHR,... rWL,rPE,NodoTiltLink,NodoTiltLinkHD,NodoTiltLinkHDVR,NodoTiltLinkH,NodoPiezoLink,NodoBaroLink,... NodoLoadLink,NodoKlinoLink,NodoKlinoLinkHR,NodoInPlaceLink,NodoInPlaceLinkHR,NodoWeirLink,... NodoPendulum,NodoRainLink,NodoThermLink,conn,FileName) fileID = fopen(FileName,'a'); fmt = '%s \r'; text = 'letturaCal function started'; fprintf(fileID,fmt,text); [rC,~] = size(catena); idNodo = cell2mat(catena(:,1)); if isempty(NodoTiltLink) == 1 DCalTLTot = []; else if strcmp(NodoTiltLink(1,4),'ADC') || strcmp(NodoTiltLink(1,4),'null') || isempty(NodoTiltLink(1,4)) == 1 DCalTLTot = cell(rTL,14); elseif strcmp(NodoTiltLink(1,4),'g') DCalTLTot = cell(rTL,3); end end if isempty(NodoTiltLinkHD) == 1 DCalHDTot = []; else DCalHDTot = cell(rHD,3); end if isempty(NodoTiltLinkHDVR) == 1 DCalHDVRTot = []; else DCalHDVRTot = cell(rHDVR,3); end DCalTLHRTot = cell(rTLHR,4); % matrice che concatena i dati relativi a ciascun nodo Tilt Link HR V 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 DCalTLHRHTot = cell(rTLHRH,4); % matrice che concatena i dati relativi a ciascun nodo Tilt Link HR H if isempty(NodoPiezoLink) == 1 DCalPLTot = []; else if strcmp(NodoPiezoLink(1,4),'VW kg/cm2') == 1 DCalPLTot = cell(rPL,3); % matrice che concatena i dati relativi a ciascun nodo Piezo Link [VW] elseif strcmp(NodoPiezoLink(1,4),'VW kPa') == 1 DCalPLTot = cell(rPL,4); % matrice che concatena i dati relativi a ciascun nodo Piezo Link MUMS else DCalPLTot = cell(rPL,5); % matrice che concatena i dati relativi a ciascun nodo Piezo Link MUMS end end if isempty(NodoBaroLink) == 1 DCalBLTot = []; elseif strcmp(NodoBaroLink(1,4),'hPa') == 1 DCalBLTot = []; elseif strcmp(NodoBaroLink{1,4},'null') || isempty(NodoBaroLink{1,4}) == 1 || strcmp(NodoBaroLink(1,4),'ADC') == 1 DCalBLTot = cell(rBL,4); % matrice che concatena i dati relativi a ciascun nodo Baro Link end DCalALTot = cell(rAL,4); % matrice che concatena i dati relativi a ciascun nodo Analog Link if isempty(NodoLoadLink) == 1 DCalLLTot = []; else if strcmp(NodoLoadLink(1,4),'4-20 mA') DCalLLTot = cell(rLL,3); % matrice che concatena i dati relativi a ciascun nodo Load Link [4-20mA] elseif strcmp(NodoLoadLink(1,4),'mV/V') || strcmp(NodoLoadLink(1,4),'ADC') DCalLLTot = cell(rLL,2); % matrice che concatena i dati relativi a ciascun nodo Load Link [mV/V] end end if isempty(NodoThermLink) == 1 DCalThLTot = []; elseif strcmp(NodoThermLink{1,4},'null') || isempty(NodoThermLink{1,4}) == 1 || strcmp(NodoThermLink(1,4),'ADC') == 1 DCalThLTot = cell(rThL,2); % matrice che concatena i dati relativi a ciascun nodo Therm Link elseif strcmp(NodoThermLink{1,4},'°C') DCalThLTot = []; end if isempty(NodoKlinoLink) == 1 DCalKLTot = []; else if strcmp(NodoKlinoLink(1,4),'ADC') || strcmp(NodoKlinoLink{1,4},'null') || isempty(NodoKlinoLink{1,4}) == 1 DCalKLTot = cell(rKL,11); % matrice che concatena i dati relativi a ciascun nodo Klino Link elseif strcmp(NodoKlinoLink(1,4),'digit') DCalKLTot = cell(rKL,6); % matrice che concatena i dati relativi a ciascun nodo Klino Link elseif strcmp(NodoKlinoLink(1,4),'Gradi') DCalKLTot = []; elseif strcmp(NodoKlinoLink(1,4),'g') DCalKLTot = []; end end if isempty(NodoKlinoLinkHR) == 1 DCalKLHRTot = []; else if strcmp(NodoKlinoLinkHR(1,4),'ADC') || strcmp(NodoKlinoLinkHR{1,4},'null') || isempty(NodoKlinoLinkHR{1,4}) == 1 DCalKLHRTot = cell(rKLHR,6); % matrice che concatena i dati relativi a ciascun nodo Klino Link elseif strcmp(NodoKlinoLinkHR(1,4),'digit') DCalKLHRTot = cell(rKLHR,6); % matrice che concatena i dati relativi a ciascun nodo Klino Link end end DCalRLTot = cell(rRL,1); % matrice che concatena i dati relativi a ciascun nodo Rain Link DCalPT100Tot = cell(rPT100,2); % matrice che concatena i dati relativi a ciascun nodo PT100 Link if isempty(NodoInPlaceLink) == 1 DCalIPLTot = []; else if strcmp(NodoInPlaceLink(1,4),'ADC') || strcmp(NodoInPlaceLink{1,4},'null') || isempty(NodoInPlaceLink{1,4}) == 1 DCalIPLTot = cell(rIPL,14); elseif strcmp(NodoInPlaceLink(1,4),'digit') DCalIPLTot = cell(rIPL,6); elseif strcmp(NodoInPlaceLink(1,4),'0-10 V') DCalIPLTot = cell(rIPL,9); elseif strcmp(NodoInPlaceLink(1,4),'g') || strcmp(NodoInPlaceLink(1,4),'Gradi') DCalIPLTot = []; end end if isempty(NodoInPlaceLinkHR) == 1 DCalIPLHRTot = []; else if strcmp(NodoInPlaceLinkHR(1,4),'ADC') || strcmp(NodoInPlaceLinkHR{1,4},'null') || isempty(NodoInPlaceLinkHR{1,4}) == 1 DCalIPLHRTot = cell(rIPLHR,4); % matrice che concatena i dati relativi a ciascun nodo In Place Link HR elseif strcmp(NodoInPlaceLinkHR(1,4),'digit') DCalIPLHRTot = cell(rIPLHR,6); % matrice che concatena i dati relativi a ciascun nodo Klino Link end end if isempty(NodoWeirLink) == 1 DCalWLTot = []; else if strcmp(NodoWeirLink(1,4),'Hz') == 1 DCalWLTot = cell(rWL,3); else DCalWLTot = cell(rWL,2); end end if isempty(NodoPendulum) == 1 DCalPETot = []; else if strcmp(NodoPendulum(1,4),'4-20 mA') == 1 DCalPETot = cell(rPE,1); else DCalPETot = []; end end % Matrice con testi di conferma lettura o warning di lettura per le varie tipologie di nodi TL = 1; HD = 1; HDVR = 1; TLHR = 1; PL = 1; BL = 1; TLH = 1; TLHRH = 1; AL = 1; LL = 1; ThL = 1; KL = 1; KLHR = 1; RL = 1; PT100 = 1; IPL = 1; IPLHR = 1; WL = 1; PE = 1; for a = 1:rC nNodo = mat2str(cell2mat(catena(a,3))); if idNodo(a,1) == 1 % Tilt Link V if strcmp(NodoTiltLink(1,4),'ADC') || strcmp(NodoTiltLink{1,4},'null') || isempty(NodoTiltLink{1,4}) == 1 %% Importazione dei dati di calibrazione per Tilt Link V comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8, CalA, CalB, CalC, CalD, CalE '... 'from CalibrationView where UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; elseif strcmp(NodoTiltLink(1,4),'g') comando = ['select CalC, CalD, CalE from CalibrationView where UnitName = ''' IDcentralina ''' and ToolNameID = ''' ... DTcatena ''' and NodeNum = ''' nNodo '''']; end curs = exec(conn,comando); curs = fetch(curs); DCalTL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Tilt Link V [rr,cc] = size(DCalTL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Tilt Link V number ' nNodo '']; fprintf(fileID,fmt,w); yesTL = 0; else DCalTLTot(TL,:) = DCalTL; TL = TL+1; ok = ['Calibration parameters of node Tilt Link V number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 67 % Tilt Link HD if cell2mat(NodoTiltLinkHD(HD,5)) == 1 comando = ['select CalC, CalD, CalE from CalibrationView where UnitName = ''' ... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; curs = exec(conn,comando); curs = fetch(curs); DCalHD = curs.Data; [rr,cc] = size(DCalHD); if rr==1 && cc==1 || isnan(cell2mat(DCalHD(1))) == 1 w = ['Warning: there was an error reading calibration values of node Tilt Link HD number ' nNodo '']; fprintf(fileID,fmt,w); DCalHDTot(HD,:) = num2cell(0); else DCalHDTot(HD,:) = DCalHD; ok = ['Calibration parameters of node Tilt Link HD number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end HD = HD+1; end elseif idNodo(a,1) == 61 % Tilt Link HD VR if cell2mat(NodoTiltLinkHDVR(HDVR,5)) == 1 comando = ['select CalC, CalD, CalE from CalibrationView where UnitName = ''' ... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; curs = exec(conn,comando); curs = fetch(curs); DCalHDVR = curs.Data; [rr,cc] = size(DCalHDVR); if rr==1 && cc==1 || isnan(cell2mat(DCalHDVR(1))) == 1 w = ['Warning: there was an error reading calibration values of node Tilt Link HD VR number ' nNodo '']; fprintf(fileID,fmt,w); DCalHDVRTot(HDVR,:) = num2cell(0); else DCalHDVRTot(HDVR,:) = DCalHDVR; ok = ['Calibration parameters of node Tilt Link HD VR number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end HDVR = HDVR+1; end elseif idNodo(a,1) == 11 % 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) == 2 % Piezo Link %% Importazione dei dati di calibrazione per Piezo Link if strcmp(NodoPiezoLink(1,4),'VW kPa') == 1 || strcmp(NodoPiezoLink(1,4),'VW kg/cm2') == 1 comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; colonne = 3; else comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; colonne = 4; end curs = exec(conn,comando); curs = fetch(curs); DCalPL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Piezo Link [rr,cc] = size(DCalPL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Piezo Link number ' nNodo '']; fprintf(fileID,fmt,w); yesPL = 0; else if strcmp(NodoPiezoLink(1,4),'VW kPa') == 1 if cell2mat(DCalPL(1,3)) == 0 comando = ['select Cal3 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; curs = exec(conn,comando); curs = fetch(curs); DCalPL_T = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Piezo Link DCalPL = [DCalPL DCalPL_T]; colonne = 4; end end if colonne == 3 DCalPLTot(PL,1:3) = DCalPL; DCalPLTot(PL,4) = num2cell(0); else DCalPLTot(PL,:) = DCalPL; end PL = PL+1; ok = ['Calibration parameters of node Piezo Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 3 % Baro Link if strcmp(NodoBaroLink(1,4),'hPa') == 1 else %% Importazione dei dati di calibrazione per Baro link comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; curs = exec(conn,comando); curs = fetch(curs); DCalBL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Baro Link [rr,cc] = size(DCalBL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Baro Link number ' nNodo '']; fprintf(fileID,fmt,w); yesBL = 0; else DCalBLTot(BL,:) = DCalBL; BL = BL+1; ok = ['Calibration parameters of node Baro Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end end elseif idNodo(a,1) == 4 % Therm Link if strcmp(NodoThermLink{1,4},'°C') else %% Importazione dei dati di calibrazione per Therm link comando = ['select Cal0, Cal1 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; curs = exec(conn,comando); curs = fetch(curs); DCalThL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Therm Link [rr,cc] = size(DCalThL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Therm Link number ' nNodo '']; fprintf(fileID,fmt,w); yesThL = 0; else DCalThLTot(ThL,:) = DCalThL; ThL = ThL+1; ok = ['Calibration parameters of node Therm Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end end elseif idNodo(a,1) == 5 % Tilt Link HR V %% Importazione dei dati di calibrazione per Tilt Link HR V comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; curs = exec(conn,comando); curs = fetch(curs); DCalTLHR = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Tilt Link HR [rr,cc] = size(DCalTLHR); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Tilt Link HR V number ' nNodo '']; fprintf(fileID,fmt,w); yesTLHR = 0; else if isnan(cell2mat(DCalTLHR(1,4))) == 1 % Ampolle con guadagno unico per asse X e asse Y DCalTLHRTot(TLHR,1:4) = [DCalTLHR(1,1:3) 0]; else DCalTLHRTot(TLHR,:) = DCalTLHR; end TLHR = TLHR+1; ok = ['Calibration parameters of node Tilt Link HR V number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 12 % Tilt Link HR H %% Importazione dei dati di calibrazione per 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 w = ['Warning: there was an error reading calibration values of node Tilt Link HR H number ' nNodo '']; fprintf(fileID,fmt,w); yesTLHRH = 0; else DCalTLHRHTot(TLHRH,:) = DCalTLHRH; TLHRH = TLHRH+1; ok = ['Calibration parameters of node Tilt Link HR H number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 8 % Analog Link %% Importazione dei dati di calibrazione per Analog Link comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' ']; 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 w = ['Warning: there was an error reading calibration values of node Analog Link number ' nNodo '']; fprintf(fileID,fmt,w); yesAL = 0; else DCalALTot(AL,:) = DCalAL; AL = AL+1; ok = ['Calibration parameters of node Analog Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 15 % Load Link %% Importazione dei dati di calibrazione per Load Link if strcmp(NodoLoadLink(1,4),'4-20 mA') comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' ']; elseif strcmp(NodoLoadLink(1,4),'mV/V') || strcmp(NodoLoadLink(1,4),'ADC') comando = ['select 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 w = ['Warning: there was an error reading calibration values of node Load Link number ' nNodo '']; fprintf(fileID,fmt,w); yesLL = 0; else DCalLLTot(LL,:) = DCalLL; LL = LL+1; ok = ['Calibration parameters of node Load Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 44 % Klino Link HR %% Importazione dei dati di calibrazione per Klino Link HR if strcmp(NodoKlinoLinkHR(1,4),'ADC') || strcmp(NodoKlinoLinkHR{1,4} ,'null') || isempty(NodoKlinoLinkHR{1,4}) == 1 comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; elseif strcmp(NodoKlinoLinkHR{1,4} ,'digit') comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; end curs = exec(conn,comando); curs = fetch(curs); DCalKLHR = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Klino Link [rr,cc] = size(DCalKLHR); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Klino Link HR number ' nNodo '']; fprintf(fileID,fmt,w); yesKLHR = 0; else DCalKLHRTot(KLHR,:) = DCalKLHR; KLHR = KLHR+1; ok = ['Calibration of node Klino Link HR number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 26 % Klino Link %% Importazione dei dati di calibrazione per Klino Link if strcmp(NodoKlinoLink(1,4),'ADC') || strcmp(NodoKlinoLink{1,4} ,'null') || isempty(NodoKlinoLink{1,4}) == 1 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); DCalKL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Klino Link [rr,cc] = size(DCalKL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Klino Link number ' nNodo '']; fprintf(fileID,fmt,w); yesKL = 0; else DCalKLTot(KL,:) = DCalKL; KL = KL+1; ok = ['Calibration of node Klino Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end else ok = ['Calibration parameters of node Klino Link number ' nNodo ' unnecessary']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 27 % Rain Link if strcmp(NodoRainLink(1,4),'mm') DCalRLTot = []; else %% Importazione dei dati di calibrazione per Rain Link comando = ['select Cal0 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 Rain Link DCalRLTot(RL,:) = DCalRL; RL = RL+1; ok = ['Calibration parameters of node Rain Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 28 % PT100 Link %% Importazione dei dati di calibrazione per PT100 Link comando = ['select Cal0, Cal1 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; curs = exec(conn,comando); curs = fetch(curs); DCalPT100 = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo PT100 Link [rr,cc] = size(DCalPT100); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node PT100 Link number ' nNodo '']; fprintf(fileID,fmt,w); yesPT100 = 0; else DCalPT100Tot(PT100,:) = DCalPT100; PT100 = PT100+1; ok = ['Calibration parameters of node PT100 Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 42 % In Place Link %% Importazione dei dati di calibrazione per In Place Link if strcmp(NodoInPlaceLink(1,4),'ADC') || strcmp(NodoInPlaceLink{1,4} ,'null') || isempty(NodoInPlaceLink{1,4}) == 1 comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8, CalA, CalB, CalC, CalD, CalE '... 'from CalibrationView where UnitName = ''' IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; esci = 0; elseif strcmp(NodoInPlaceLink{1,4} ,'digit') comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; esci = 0; elseif strcmp(NodoInPlaceLink(1,4),'0-10 V') == 1 comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8 '... 'from CalibrationView where UnitName = ''' IDcentralina ''' and ToolNameID = ''' ... DTcatena ''' and NodeNum = ''' nNodo '''']; esci = 0; else ok = ['Calibration parameters of node In Place Link number ' nNodo ' unnecessary']; fprintf(fileID,fmt,ok); esci = 1; end if esci == 0 curs = exec(conn,comando); curs = fetch(curs); DCalIPL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo In Place Link [rr,cc] = size(DCalIPL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node In Place Link number ' nNodo '']; fprintf(fileID,fmt,w); yesIPL = 0; else DCalIPLTot(IPL,:) = DCalIPL; IPL = IPL+1; ok = ['Calibration parameters of node In Place Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end end elseif idNodo(a,1) == 43 % In Place Link HR %% Importazione dei dati di calibrazione per In Place Link HR if strcmp(NodoInPlaceLinkHR(1,4),'ADC') || strcmp(NodoInPlaceLinkHR{1,4} ,'null') || isempty(NodoInPlaceLinkHR{1,4}) == 1 comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; elseif strcmp(NodoInPlaceLinkHR{1,4} ,'digit') comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo '''']; end curs = exec(conn,comando); curs = fetch(curs); DCalIPLHR = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo In Place Link HR [rr,cc] = size(DCalIPLHR); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node In Place Link HR number ' nNodo '']; fprintf(fileID,fmt,w); yesIPLHR = 0; else DCalIPLHRTot(IPLHR,:) = DCalIPLHR; IPLHR = IPLHR+1; ok = ['Calibration of node In Place Link HR number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 53 % Weir Link %% Importazione dei dati di calibrazione per Weir Link if strcmp(NodoWeirLink(1,4),'Hz') comando = ['select Cal0, Cal1, Cal2 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' ']; end curs = exec(conn,comando); curs = fetch(curs); DCalWL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Weir Link [rr,cc] = size(DCalWL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Weir Link number ' nNodo '']; fprintf(fileID,fmt,w); yesWL = 0; else DCalWLTot(WL,:) = DCalWL; WL = WL+1; ok = ['Calibration parameters of node Weir Link number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end elseif idNodo(a,1) == 52 % Pendulum %% Importazione dei dati di calibrazione per Pendulum if strcmp(NodoPendulum(1,4),'4-20 mA') comando = ['select Cal0 from CalibrationView where UnitName = '''... IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' ']; end curs = exec(conn,comando); curs = fetch(curs); DCalPETot(PE,:) = curs.Data; % non è possibile fare il controllo dei dati di calibrazione nei Pendulum PE = PE+1; ok = ['Calibration parameters of node Pendulum number ' nNodo ' downloaded correctly']; fprintf(fileID,fmt,ok); end end %% Occorre considerare anche le installazioni che non hanno nodo Barometro % ma lo devono prendere da un'altra catena nello stesso sito if yesBL == 0 if yesPL == 1 && strcmp(NodoPiezoLink(1,4),'VW kPa') == 0 && strcmp(NodoPiezoLink(1,4),'VW kg/cm2') == 0 % Cerco tutte le centraline presenti in quel sito comando = ['select site_id from units where name = ''' IDcentralina ''' ']; % il rapporto centralina sito è di 1 a 1 curs = exec(conn,comando); curs = fetch(curs); siteID = curs.Data; comando = ['select id, name from units where site_id = ''' num2str(cell2mat(siteID)) ''' ']; % il rapporto centralina sito è di 1 a 1 curs = exec(conn,comando); curs = fetch(curs); unitID = curs.Data; col = size(unitID); chainID = cell(1,3); ini = 1; for c = 1:col(1,1) % dalle centraline presenti, risalgo alle catene disponibili comando = ['select id, unit_id, name from tools where unit_id = ''' num2str(cell2mat(unitID(c,1))) ''' ']; curs = exec(conn,comando); curs = fetch(curs); chainID_down = curs.Data; % id tool, id centralina [fin,~] = size(chainID_down); fin = fin+ini-1; chainID(ini:fin,:) = chainID_down; ini = fin+1; end % seleziono solo le catene che hanno barometro [col,~] = size(chainID); BaroID = cell(1,2); row = 1; for c = 1:col(1,1) % dalle centraline presenti, risalgo alle catene disponibili (ID % catena e numero del nodo barometrico) comando = ['select tool_id, num from nodes where tool_id = ''' num2str(cell2mat(chainID(c,1))) ''' and nodetype_id = 3 ']; curs = exec(conn,comando); curs = fetch(curs); BaroID_down = curs.Data; [x,y] = size(BaroID_down); if x == 1 && y == 1 else BaroID(row,:) = BaroID_down; row = row+1; end end [r,~] = size(BaroID); % Numero di catene con barometro DCalBLTot = cell(r,4); Barometri = cell(r,2); row = 1; for n = 1:r % Trovo la catena con il barometro Baro = cell2mat(BaroID(n,1)); MUMS = cell2mat(chainID(:,1)); index = find(ismember(MUMS,Baro)); DTcatenaBaro = char(chainID(index,3)); Barometri(n,1) = cellstr(DTcatenaBaro); % trovo la centralina con il barometro DL = cell2mat(chainID(index,2)); index2 = find(ismember(cell2mat(unitID(:,1)),DL)); IDunitBaro = char(unitID(index2,2)); Barometri(n,2) = cellstr(IDunitBaro); % trovo il numero del nodo index3 = find(ismember(cell2mat(BaroID),Baro)); nNodoBaro = num2str(cell2mat(BaroID(index3,2))); % scarico i dati di calibrazione comando = ['select Cal0, Cal1, Cal2, Cal3 from CalibrationView where UnitName = '''... IDunitBaro ''' and ToolNameID = ''' DTcatenaBaro ''' and NodeNum = ''' nNodoBaro '''']; curs = exec(conn,comando); curs = fetch(curs); DCalBL = curs.Data; [rr,cc] = size(DCalBL); if rr==1 && cc==1 w = ['Warning: there was an error reading calibration values of node Baro Link number ' nNodoBaro ' for the ' DTcatenaBaro ' chain and ' IDunitBaro ' unit!']; fprintf(fileID,fmt,w); else DCalBLTot(row,:) = DCalBL; ok = ['Calibration of node BaroLink number ' nNodoBaro ' for chain ' DTcatenaBaro ' and ' IDunitBaro ' unit chain downloaded correctly']; fprintf(fileID,fmt,ok); row = row+1; end end else Barometri = []; end else Barometri = []; end % Nuova conversione da fare per il nuovo database [DCalTLTot,DCalTLHTot,DCalPLTot,DCalBLTot,DCalTLHRTot,DCalTLHRHTot,... DCalALTot,DCalLLTot,DCalThLTot,DCalKLTot,DCalKLHRTot,DCalRLTot,DCalPT100Tot,... DCalIPLTot,DCalIPLHRTot,DCalWLTot,DCalPETot] = NuovaConversione(DCalTLTot,... DCalTLHTot,DCalPLTot,DCalBLTot,DCalTLHRTot,DCalTLHRHTot,DCalALTot,DCalLLTot,... DCalThLTot,DCalKLTot,DCalKLHRTot,DCalRLTot,DCalPT100Tot,DCalIPLTot,DCalIPLHRTot,... DCalWLTot,DCalPETot,FileName); text = 'letturaCal function closed'; fprintf(fileID,fmt,text); fclose(fileID); end