Affichage avec ncurses : clignotement écran

Résolu/Fermé
ebousquie Messages postés 40 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 28 avril 2009 - 20 mars 2009 à 11:54
ebousquie Messages postés 40 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 28 avril 2009 - 23 mars 2009 à 15:06
Bonjour,
Je réalise une interface dans le terminal entre le PC et un outil de tracking de position connecté sur le port série. Je gère les commandes clavier avec la bibliothèque ncurses. Mon programme en C++ ressemble à celui-ci:

while(true)

{
acquérir nouvelle position;
clear();
move(0,0);
printw ("nouvelle position: %f \n", nouvelle_pos);
move(-10,0)
printf("tapez ESPACE pour sortir")

si ESPACE, quitter
}

Affichage obtenu:

######################
nouvelle position: 0.045
tapez ESPACE pour sortir
######################

deux problèmes:
-malgré les refresh() que j'ai tenté de glieer un peu partout, les move() ne sont pas respectés. (pas très grave)
-l'écran clignotte sans arrêt, sûrement à cause du clear() (plus grave). Mais comment mettre à jour l'affichage sans avoir de clignottement?


Merci d'avance pour vos réponses
A voir également:

1 réponse

ebousquie Messages postés 40 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 28 avril 2009
23 mars 2009 à 15:06
J'ai compris le problème:
L'écran est rafraîchi au rythe de l'éxécution de la boucle while, et non à celui de l'arrivée de données sur le port... mon programme était donc doublement faux puisque les positions étaient dupliquées.

Il me faut donc créer une synchronisation entre l'arrivée des données et leur acquisition... au passage, l'écran devrait être rafraîchi moins souvent, donc plus de sensation de clignotement.
0