Bonjour,
J'ai réalisé un programme temps reel linux (RTAI) permettant le contrôle (aquisition mesures, calcules, génération signaux) d'une "machine".
Ce programme étant fonctionnel, il me faut maintenant écrire une interface graphique pour permettre à l'utilisateur de la machine de rentrer certains paramètre. Jusque là pas de problèmes, j'ai opté pour Glade et GTK+ (merci aux forums).
Je dois ensuite regrouper les deux progs dans un seul à l'aide de thread (pthread).
Je réalise mon prog:
un thread pour la GUI
un thead temps reel FIFO
La GUI modifie des variables globales et le thread temps reel les lit pour ensuite faire des calculs. Pour tester mon appli j'ai remplacé le thread temps reel FIFO par:
tout ce passe bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 //mes variables globales modifiées par le thread non temps réel static volatile int COMMENCE = 0; static volatile int FIN = 0; . . . pthread_create(&th_test,&attr,test,NULL) . . . void * test (void * arg){ while(!FIN){ if (COMMENCE){ printf("ok\n"); } } pthread_exit(EXIT_SUCCESS); }
Enfin ma question, j'aimerais savoir si je pars dans la bonne direction ou si lorsque je vais passer en temps réel, la tache temps réel ne rendra jamais la main au thread non temps réel (qui est censé modifier des variables globales).
Partager