function erro = aplicaConf(handler, tipo, valMat)

%APLICACONF   Permite aplicar vários tipos de configurações a todas as
%juntas
%   erro = aplicaConf(handler, tipo, valMat)
%
%   handler é a etiqueta da comunicação RS-232
%   tipo é o parametro que se pretende aplicar
%       0 - posição
%       1 - velocidade
%       2 - parâmetro ki do controlador local
%       3 - parâmetro kp do controlador local
%       4 - ganho do controlador de 1º nível
%       5 - tipo de controlador de 1º nível
%   valMat é a matriz com o valor para todos os servos


scu_max = 8;
erro = 0;


% validação
if(nargin ~= 3)
    disp('numero insuficiente de argumentos');
    return
end

if(tipo<0 || tipo>3)
    disp('tipo não existentes');
    return
end

if((size(valMat,1) ~= scu_max) || (size(valMat,2) ~= 3))
    disp('Matriz com número insuficiente de valores');
    return
end


% actuação
if(tipo < 2)
    for scu=1:scu_max,
        [rx,error,errorstr] = applyjoint(handler, scu, tipo, valMat(scu,:));
        erro = erro + error;
    end
else
    for scu=1:scu_max,
        [rx,error,errorstr] = applycontrol(handler, scu, tipo-2, valMat(scu,:));
        erro = erro + error;
    end
end
