% Funzione che converte i dati in mV/V della cella di carico in dati di 
% forza mediante i valori di calibrazione.
% Il risultato è la matrico DatiLoad

function DatiAnalog = conv_grezziAL(ADCAnalog,DCalALTot,NodoAnalogLink,FileName)

fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'conv_grezziAL function started';
fprintf(fileID,fmt,text);

numAL = size(NodoAnalogLink); % numero di Analog Link
[rA,cA] = size(ADCAnalog);
DatiAnalog = zeros(rA,cA);

for jj=1:numAL
    if strcmp(NodoAnalogLink(jj,3),'4-20 mA')  
        %% Conversione da 4-20 mA parabolica
        % Spacchetto i parametri di calibrazione
        a = DCalALTot(:,1);
        b = DCalALTot(:,2);
        c = DCalALTot(:,3);
        DatiAnalog(:,jj) = a(jj,1)*(ADCAnalog(:,jj).^2)+b(jj,1)*ADCAnalog(:,jj)+c(jj,1); % conversione
    elseif strcmp(NodoAnalogLink(jj,3),'mV/V')  
            %% Conversione da mV/V lineare
            % Spacchetto i parametri di calibrazione
            a = DCalALTot(:,1);
            DatiAnalog(:,jj) = a(jj,1)*ADCAnalog(:,jj); % conversione
    elseif strcmp(NodoAnalogLink(jj,3),'Hertz')  
            %% Conversione da Hertz lineare
            % Spacchetto i parametri di calibrazione
            GF = DCalALTot(:,1);
            BF = DCalALTot(:,2);
            digit = (ADCAnalog(:,jj).^2)*0.001; % Freq. ^2 *E-3
            DatiAnalog(:,jj) = GF(jj,1)*BF(jj,1)*digit(:,1); % conversione in microEpsilon
    end
end

text29 = 'Calibrations of Analog Link defined correctly. conv_grezziAL function closed';
fprintf(fileID,fmt,text29);
fclose(fileID);
end