close all

eof='\r\n';

% Inicialização da comunicação
h=initcom(1,115200);

fprintf('Communication established!\n');

fprintf('Waiting for the # key...\n');
str='';
while (length(str)==0 || sum(str=='#')==0)
    cportreset(h);
    str=cportgetline(h,-1,eof,-1);
end

% Inicialização do array que conterá os dados
array=[];

input('Pressione ENTER...');
    
% Envio do caracter 'C' pela porta série
% Este comando indicará ao PIC que pode aplicar o degrau
nc=cportwrite(h,'C');
% Verificação do envio com sucesso
if (nc~=1)
    error('myfunction:teste','Error sending character to PIC');
end

while (1)
    str=cportgetline(h,-1,eof,-1);
    
    if (sum(str=='&')>0)
        fprintf('%s',str);
        break
    end

    pos=[0 find(str==' ')];
    
    val=[];
    for i=2:length(pos)
        val=[val str2num(str(pos(i-1)+1:pos(i)-1))];
    end
    array=[array; val];
    
    array(end,:)
end

% Encerramento das comunicações
killcom(h);

fprintf('Done!\n');

% Salvaguarda dos resultados em ficheiro
save calib.txt array -ASCII -TABS
