Finalement j'ai replacé chaque partie de code l'une après l'autre et testé à chaque ajouts ou modifications.
Pour le moment j'ai mis cette ligne en commentaire :
// moveSteppers(xsteps, ysteps, zsteps, dirx, diry, dirz);
Ceci pour mettre de coté "linear_interpolation.pde".
Dans cette partie j'ai mis la fonction clearBuffer() en commentaire :
Serial.print(ACK,BYTE);//ACK = 006
// clearBuffer(); déplacé à la fin de clearBuffer()
done = true;
J'ai replacé la fonction clearBuffer() à la fin de la fonction parseBuffer() :
...
break;
case 'Z':
zsteps = makeLong(i+1);
if ( zsteps < 0 ){ zsteps = -zsteps; dirz = -1; }
break;
case 10 :
{ clearBuffer();}
break;
}
Maintenant les leds clignotent, apparemment le buffer était vidé avant sa lecture.
La fonction fonction calcCRC() bloque tout, j'en ai mis une partie en commentaire et j'ai gardé le boléen bufferReady :
/*if (calcCRC() == buffer[bufferLength-2]){
done = false;
pause = false;*/
bufferReady = true; // crc ok
/*}else{// uh-oh. wrong crc, send NAK
clearBuffer();
Serial.print(NAK,BYTE);// NAK = 025
}*/
Je n'arrive toujours pas à comprendre comment va cette fonction, j'ai simplement compris qu'elle compare la fin du string et que cela doit correspondre à un certain caractère qui se trouve entre LF et '*' cette valeur CRC peut être LF, STOP, ACK ou Nak.
L'autre problème réside dans le fait que la fonction ChekTemp() qui lit la valeur du capteur de température n'a pas l'air de fonctionner, ce qui n'arrange pas les choses c'est que je ne comprend pas le boléen "sendBack" :
int CheckTemp(boolean sendBack){
// read adc pin and optionally send it back to Processing.
thermistorValue = analogRead( thermistorPin );
if(thermistorValue < MaxTempReading && thermistorValue > MinTempReading){ tempOK = true; }
else{ tempOK = false;}
int t = thermistorValue;
if(sendBack){ // send temp back to processing if true or too hot/cold
Serial.print("UT");
Serial.print(t,DEC);// string représentation
Serial.print("*");
Serial.print(10,BYTE);
}
}
Mais pour l'instant j'avance quand même

.