Forums » Course de Véhicules Autonomes »
Problème remote_read(char c) dans la fonction évènement
Ajouté par Anonyme il y a environ 13 ans
Bonjour,
Je me suis aperçu que la fonction remote_read('nom_du_périphérique'); ne fonctionne pas dans la fonction qui gère les évènement. Elle me renvoie toujours la même valeur -1 qui au passage et la valeur traditionnelle de retour pour signaler une erreur. J'aimerai savoir qu'elle est la source du problème : est ce que c'est un bug, est ce que cela est dû à mon PC ? Et est il possible de corriger le problème ? Pour information la fonction remote_write('nom_du_périphérique') fonctionne.
Voici un exemple de la fonction :
- Fonction appelée lorsqu'un évènement est recu */
void f(int v){
*int toto=0, titi=0;
toto = remote_read('U'); //renvoie toujours -1
titi = remote_read('T'); //renvoie toujours -1printf ("!!! Event:%04X !!!\n",v);
/** Detection de la fin de la course **/
fin_course = v & 0x0800;
}
Le reste du programme est strictement le même que celui qui se trouve dans l'onglet "fichiers"
J'attends votre réponse.
Bonne chance à tous le monde.
Vincent GARAVILLON
Réponses (1)
RE: Problème remote_read(char c) dans la fonction évènement - Ajouté par Jacques LAFFONT il y a environ 13 ans
Bonjour,
C'est une limitation, normalement vous devriez avoir le message d'erreur suivant:
"\nAppel remote_read reentrant interdit.\n Verifier votre programme\n"
En fait les évènement sont traités dans un des remote read du programme principal.
Je vais essayer de lever la limitation, mais cela implique que votre fonction d’évènement doit être elle aussi ré entrante et j'ai peur que cela soit difficile de le garantir.
Idéalement vous ne devriez pas faire de telles opérations dans le callback d'évènement.
Merci pour la remontée.
Bonne journée.