168 lines
7.4 KiB
Matlab
Executable File
168 lines
7.4 KiB
Matlab
Executable File
% Funzione che legge i valori di calibrazione per i vari sensori
|
|
|
|
function [DCalRSNTot,DCalRSNHRTot,DCalLLTot,DCalDLTot,yesRSN,yesRSNHR,yesLL,yesDL]...
|
|
= letturaCal(MEMS,IDcentralina,DTcatena,catena,yesRSN,yesRSNHR,yesLL,yesDL,rRSN,...
|
|
rRSNHR,rLL,rDL,NodoRSNLink,NodoLoadLink,NodoDebrisLink,conn,FileName)
|
|
|
|
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));
|
|
|
|
% RSN
|
|
if isempty(NodoRSNLink) == 1
|
|
DCalRSNTot = [];
|
|
else
|
|
if strcmp(NodoRSNLink(1,4),'ADC') || strcmp(NodoRSNLink(1,4),'null') || isempty(NodoRSNLink(1,4)) == 1
|
|
DCalRSNTot = cell(rRSN,17); % matrice che concatena i dati di calibrazione relativi a ciascun nodo RSN Link
|
|
elseif strcmp(NodoRSNLink(1,4),'Gradi')
|
|
DCalRSNTot = [];
|
|
end
|
|
end
|
|
|
|
% RSN HR
|
|
DCalRSNHRTot = cell(rRSNHR,6); % matrice che concatena i dati relativi a ciascun nodo RSN Link HR
|
|
|
|
% Load 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
|
|
|
|
% Debris LInk
|
|
if isempty(NodoDebrisLink) == 1
|
|
DCalDLTot = [];
|
|
else
|
|
if strcmp(NodoDebrisLink(1,4),'ADC') || strcmp(NodoDebrisLink(1,4),'null') || isempty(NodoDebrisLink(1,4)) == 1
|
|
DCalDLTot = cell(rDL,11); % matrice che concatena i dati di calibrazione relativi a ciascun nodo RSN Link
|
|
elseif strcmp(NodoRSNLink(1,4),'Gradi')
|
|
DCalDLTot = [];
|
|
end
|
|
end
|
|
|
|
% Matrice con testi di conferma lettura o warning di lettura per le varie tipologie di nodi
|
|
RSNL = 1;
|
|
RSNLHR = 1;
|
|
LL = 1;
|
|
DL = 1;
|
|
|
|
for a = 1:rC
|
|
nNodo = mat2str(cell2mat(catena(a,3)));
|
|
if idNodo(a,1) == 38 % RSN Link
|
|
if MEMS == 2
|
|
%% Importazione dei dati di calibrazione per RSN Link
|
|
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5, Cal6, Cal7, Cal8, '...
|
|
'CalA, CalB, CalC, CalD, CalE, CalF, CalG, CalH from CalibrationView where UnitName = '''...
|
|
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''''];
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
DCalRSN = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo RSN Link
|
|
[rr,cc] = size(DCalRSN);
|
|
if rr==1 && cc==1
|
|
w = ['Warning: there was an error reading calibration values of RSN Link node number ' nNodo ''];
|
|
fprintf(fileID,fmt,w);
|
|
yesRSN = 0;
|
|
else
|
|
DCalRSNTot(RSNL,:) = DCalRSN(:,:);
|
|
RSNL = RSNL+1;
|
|
ok = ['Calibration parameters of RSN Link node number ' nNodo ' downloaded correctly'];
|
|
fprintf(fileID,fmt,ok);
|
|
end
|
|
else
|
|
ok = ['Calibration parameters of RSN Link node number ' nNodo ' NOT downloaded because the node is RSN Link 2.0 - Murata MEMS'];
|
|
fprintf(fileID,fmt,ok);
|
|
end
|
|
|
|
elseif idNodo(a,1) == 39 % RSN Link HR
|
|
%% Importazione dei dati di calibrazione per RSN Link HR
|
|
comando = ['select Cal0, Cal1, Cal2, Cal3, Cal4, Cal5 from CalibrationView where UnitName = '''...
|
|
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''''];
|
|
curs = exec(conn,comando);
|
|
curs = fetch(curs);
|
|
DCalRSNHR = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo RSN Link HR
|
|
[rr,cc] = size(DCalRSNHR);
|
|
if rr==1 && cc==1
|
|
w = ['Warning: there was an error reading calibration values of RSN Link HR node number ' nNodo ''];
|
|
fprintf(fileID,fmt,w);
|
|
yesRSNHR = 0;
|
|
else
|
|
DCalRSNHRTot(RSNLHR,:) = DCalRSNHR(:,:);
|
|
RSNLHR = RSNLHR+1;
|
|
ok = ['Calibration parameters of RSN Link HR node 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')
|
|
comando = ['select Cal1, Cal2 from CalibrationView where UnitName = '''...
|
|
IDcentralina ''' and ToolNameID = ''' DTcatena ''' and NodeNum = ''' nNodo ''' '];
|
|
elseif strcmp(NodoLoadLink(1,4),'ADC')
|
|
comando = ['select Cal0, Cal1 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 of node Load Link number ' nNodo ' downloaded correctly'];
|
|
fprintf(fileID,fmt,ok);
|
|
end
|
|
|
|
elseif idNodo(a,1) == 49 % Debris Link
|
|
if MEMS == 2
|
|
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);
|
|
DCalDL = curs.Data; % matrice che raccoglie i dati del nodo numero 'a' di tipo Tunnel Link
|
|
[rr,cc] = size(DCalDL);
|
|
if rr==1 && cc==1
|
|
text = ['Warning: there was an error reading Debris Link node number ' nNodo ''];
|
|
fprintf(fileID,fmt,text);
|
|
yesDL = 0;
|
|
else
|
|
DCalDLTot(DL,:) = DCalDL(:,:);
|
|
DL = DL+1;
|
|
text = ['Calibration of Debris Link node number ' nNodo ' downloaded correctly'];
|
|
fprintf(fileID,fmt,text);
|
|
end
|
|
else
|
|
ok = ['Calibration parameters of Debris Link node number ' nNodo ' NOT downloaded because the node is Murata MEMS'];
|
|
fprintf(fileID,fmt,ok);
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
text = 'NuovaConversione function started';
|
|
fprintf(fileID,fmt,text);
|
|
|
|
% Nuova conversione da fare per il nuovo database
|
|
[DCalRSNTot,DCalRSNHRTot,DCalLLTot,DCalDLTot] = NuovaConversione(DCalRSNTot,...
|
|
DCalRSNHRTot,DCalLLTot,DCalDLTot);
|
|
|
|
text = 'NuovaConversione & letturaCal functions ended';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
|
|
end |