Salve a tutti...
sto impazzendo per fare una lettura sulla porta seriale vincolata ad un timer con un ciclo while.
Il codice che ho usato è:
Codice:
int Timeout = 3;
long endValue = clock()+CLOCKS_PER_SEC* Timeout;
//primo tentativo di lettura
int i = PollComport(Pnum,buffer);
//se non ha letto niente (i==0)
while (clock()<endValue || i>0){
i = PollComport(Pnum,buffer);
sleep(1);
}
La funzione PollComport è una funziona di lettura seriale della libreria che sto usando (in pratica è una read) che restituisce il numero di byte letti (li ritorna in i).
Pertanto a me serve che questo ciclo finisca o perchè ha letto (quindi i è diventata diversa da zero) o perchè è finito il tempo di attesa, impostato a priori cioè 3 secondi.
Perchè non funziona? Rimane bloccato....
Aiutatemi a capire il problema dove sta.
Grazie anticipatamente a tutti quelli che mi risponderanno...