function [posicao,state,rx,error,errorstr] = ler_pos(handler, scu_id, offset)

%LER_POS   Posição angular da perna das juntas
%   [posicao,state,rx,error,errorstr,tries] = ler_pos(handler, scu_id, perna),
%   devolve a posição angular das juntas normalizadas segundo a orientação:
%       posicao(1) - angulo que a junta 1 faz com a superficie
%       posicao(2) - angulo que a junta 2 faz com a junta 1
%       posicao(3) - angulo que a junta 3 faz com a junta 2
%
% Entradas:
% handler  => Handler para comunicar com o Master
% scu_id   => Identificador do SCU alvo
%
% Saídas:
% posicao => Posição angular de cada junta
% state    => Bits de estado dos servos
% rx       => Mensagem de baixo nível recebida
% error    => Código de erro, se existente
% errorstr => String descritiva do erro
% tries    => Número de tentativas para efectuar a comunicação
    
    % tenta ler 3 vezes
    i = 1;
    error = 1;
    while(error)
        [posicao,state,rx,error,errorstr] = readjoint(handler, scu_id, 0);
        i = i+1;
        if(i>3)
            break;
        end
    end
    
    posicao = posicao-offset;

    switch scu_id
        case 1,
            posicao(1) = posicao(1)/2.5;
            posicao(2) = posicao(2)/2.5;
            posicao(3) = (posicao(3)+70)/2.5;

        case 2,
            return

        case 3,
            posicao(1) = posicao(1)/2.5;
            posicao(2) = posicao(2)/2.5;
            posicao(3) = posicao(3)/2.5;

        otherwise,
            posicao = [0 0 0];
            state = [0 0 0 0 0 0 0 0];
            rx = [0 0 0 0 0 0 0 0];
            error = 1;
            errorstr = 'Perna inválida';
    end

