% Pedido de envio de uma sequencia de teste por parte do master.
%
% calibcom(handler)
%
% Entradas:
%  handler -> ID da linha série.
%
% (c) Milton Ruas da Silva, 2006

function calibcom(handler)

data;

% ===== CALIBRAÇÃO DAS COMUNICAÇÕES =======================================
rx=MESSAGE_ERROR;
err=0;
while (err==0 || rx==MESSAGE_ERROR)
    % Envio de um pacote para calibração
    n=0; while (n~=1), n=cportwrite(handler,uint8(MESSAGE_TEST)); end

    % Recepção byte a byte
    for i=1:USART_RECV_LENGTH
        rx=MESSAGE_ERROR;
        while (rx~=MESSAGE_TEST+1-i)
            [rx,err]=cportgetint(handler,1,1);
            % Conversão para unsigned int (8 bits)
            rx=intunsigned(rx,8);
            % Caso tenha ocorrido um erro na recepção, repetir processo
            if (err==0 || rx==MESSAGE_ERROR), break, end
        end
        % Caso tenha ocorrido erro, sair deste loop
        if (err==0 || rx==MESSAGE_ERROR), break, end
    end
end
