Posté(e) le 2 février 200619 a Salut Je modifie donc complétement mo post... config de départ : Je fais des essais sous un outil de test d'automates indus... Cet outil me permet de créer des composants de test (pattes d'entrées, pattes de sorties + code du composant) Le language de programmation de ces composants est le C (pas de C++) le but : Simuler le déplacement d'un chariot, ce chariot avance d'un pas toutes les 5ms... Arrivé à 90% de sa prorgression, celui-ci ralentit : 10ms/pas Arrivé à 100%, il met une patte de sortie à 1 pour signaler l'arrivée en butée... mon prob : générer un compteur +1 ayant un pas de 5ms puis de 10ms... Ca me semblait tout simple et pourtant... Modifié le 6 février 200619 a par yuyugs84
Posté(e) le 2 février 200619 a Ce que tu demande s'appelle des threads... (ie: faire deux choses en même temps). Je ne sais pas ce que tu veux faire exactement, ceci dit, et pour les threads & C/C++ tu m'oubliera :) la libpthread m'en souviens plus trop, et le truc à Windows... aie.
Posté(e) le 3 février 200619 a Auteur ben en gros je cherche a faire ca : code blabla code blablabla ... ... si var_sponge_bob=True pause de 10 seconde mon_compteur=mon_compteur+1 fsi code blabla les threads ca me semble un peu lourd pour faire ca... Un select avec un timeout ???
Posté(e) le 3 février 200619 a Ba sans threadé ton algo tu risque de figer ton interface graphique pendant le sleep. Apres si c'est du tout console c'est pas un soucis (normalement) ..
Posté(e) le 3 février 200619 a Yep, surtout que c'est pas si compliqué les threads :) faut juste faire gaffe aux trucs partagés
Posté(e) le 3 février 200619 a Comme je l'ai dis, je ne touche plus à la libpthread, mais ça se trouve assez aisément sur le Net, et avec un cours : http://www-igm.univ-mlv.fr/%7Edr/NCS/ (c'est celui d'un de mes profs, plein de faute, mais c'est normal )
Posté(e) le 5 février 200619 a Une solution serait de faire un timer (j'utilise wxwidgets pour faire mes fenêtre et elle contient toutes les classes nécessaire pour les tacheck, semaphore, time....)
Posté(e) le 6 février 200619 a Un select avec un timeout ??? Le select te permet de reprendre la main si tu as une activité sur un file descriptor (un fichier en gros), donc ca peut être utile si ce que tu "attends" est un fichier (ou un socket), pour les interfaces graphiques on peut aussi utiliser les 2 a la fois (le select qui a dans sa liste un file descriptor de l'interface pour qu'elle puisse faire son "boulot" ) J'ai été assez clair? (j'ai pas pris mon café encore, donc bon... ) Sinon le threads c'esr bien aussi, mais attention aux resources partagés, perso, au moment où je peux faire avec un select j'évite les threads (trop galère à débugguer les threads ), sauf quand c'est un besoin de perf ou vraiment une appli distribuée (là bon c'est pas pareil )
Posté(e) le 6 février 200619 a Le problèmes des threads c'est leur implantation surtout... fait du Java ! :)
Posté(e) le 6 février 200619 a C'est vrai que le Java gère très bien cela "tout seul" (bon il faut un peu l'aider sur les objets distribués, mais bon c'est normal) question mutex and co. mais bon j'aime bien que mes applis avancent.. , désolé, j'ai pas pu m'empécher :-)
Posté(e) le 6 février 200619 a Java + JNI roh (moi j'aime bien que mes applis soient portables, et qu'on me parle pas de GTK)
Posté(e) le 7 février 200619 a Java + JNI roh (moi j'aime bien que mes applis soient portables, et qu'on me parle pas de GTK) <HS> Héhé, perso mes applis n'on pas souvent des interfaces Sinon, JNI c'est bien alors? </HS> Sinon pour en revenir au sujet (qui a changé ) tu as une structure timeval NAME sys/time.h - time types SYNOPSIS #include <sys/time.h> DESCRIPTION The <sys/time.h> header defines the timeval structure that includes at least the following members: time_t tv_sec seconds suseconds_t tv_usec microseconds (time_t c'est u32 ou u64 déjà?), enfin bref, un printf te le dira , donc tu fais un gettimeofday(struct timeval *tv, struct timezone *tz); (tz tu mets NULL, tu t'en fiches un peu ici), ca rempli ton tv. Ensuite tu créé un autre tv pour ton futur interval (alors je ne sais plus si le select prend un diff de tv ou le tv auquel il doit se reveiller, à tester donc.. ), sinon sleep (mais je sais pas s'il prends un tv). Ensuite, pour la boucle, à toi de jouer J'ai été assez clair ? Pour une réponse avec thread, je laisse la main (5ms ca va pas être tendu à respecter en Java? déjà qu'en C ca va être chaud...) c'était pas un , juste une demande
Posté(e) le 7 février 200619 a ms = milliseconde, non? Sachant qu'un ordi fait je sais plus combien d'instructions en une milliseconde, ça devrait aller? puis bon le temps réel dans un ordinateur...
Posté(e) le 7 février 200619 a java... utilisez des vrais langages (python, perl, ruby, ...). Pour le sleep précis, il y a usleep et nanosleep. Pour les processus : fork, vfork, clone. Pour les threads : pthread_create, pthread_join, pthread_exit etc. Si tu as la chance d'avoir un BSD (ou un autre Unix comme Linux ou Mac), regarde les manpages (en français). Sinon tu en a en ligne (en anglais) : http://linux.ctyme.com/man/man3694.htm http://linux.ctyme.com/man/man2128.htm etc... http://linux.ctyme.com/cgi-swish/linuxdoc.cgi
Posté(e) le 8 février 200619 a tu parle de python quand celui-ci permet de faire du code java? de perl quand celui-ci est lié à la raison social de ses utilisateurs? :) (et puis, pour une application durable (ie: autre que web), le reference counting (= garbage collector de python & perl) c'est performant mais bonjour la perte de mémoire dans les cycles. (ensuite, pas fait ni l'un ni l'autre, et pas édutier Ruby) (mais Java c'est Eclipse surtout ) Modifié le 8 février 200619 a par Baldurien
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.