% Funzione che definisce le attivazioni di fine corsa per i nodi di tipo Trigger Link
function [ARRAYdateSS,val_SS,ErrShockSensor] = defDatiSS(DatiShockSensor,...
    ErrShockSensor,rSS,FileName)

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

[r,c]=size(DatiShockSensor);
Ncorr = 0;
% Elimino gli eventuali Not a Number
for a = 2:r
    for b = 1:c
        check = isnan(DatiShockSensor(a,b));
        if check == 1
            DatiShockSensor(a,b) = DatiShockSensor(a-1,b);
            ErrShockSensor(a,b) = 1;
            Ncorr = Ncorr+1;
        end
    end
end

text = ['' num2str(Ncorr) ' NaN of Shock Sensor corrected by defDatiSS function'];
fprintf(fileID,fmt,text);

[r,~] = size(DatiShockSensor);
TimeSS = DatiShockSensor(:,1); % data
val_SS = zeros(r,rSS); % dati shock sensor
i = 1;
while i <= rSS
    for j = 1:r
        if DatiShockSensor(j,1+i) == 1 || DatiShockSensor(j,1+i) == 2 || DatiShockSensor(j,1+i) == 3
            if DatiShockSensor(j,1+i) == 1
                val_SS(j,i) = 1;
            elseif j > 1 && DatiShockSensor(j,1+i) == 2 && DatiShockSensor(j-1,1+i) ~= 1
                val_SS(j,i) = 1;
            elseif j > 1 && DatiShockSensor(j,1+i) == 3 && DatiShockSensor(j-1,1+i) ~= 1 && DatiShockSensor(j-1,1+i) ~= 2
                val_SS(j,i) = 1;
            end
        else
            val_SS(j,i) = 0;
        end
    end
    i = i+1;
end

ARRAYdateSS = TimeSS;

text = 'Data of Shock Sensor defined correctly';
fprintf(fileID,fmt,text);
fclose(fileID);

end
