[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [linux] [devel] boucle temporelle ?
Oui ca a l'air d'etre la bonne solution et ca rejoint l'idee de Michael.
J'ai jette un (bref) coup d'oeil dans les sources de Flight Gear et il y a
bien un truc faisant appel a SIGALRM.
Je vais d'abord voir si mes equations tiennent la route, si je peux accelerer
leur resolution puis je vais regarder cette histoire de timer.
Je me suis encore lance dans un truc pas possible ;-)
J'avais pense a programmer directement le timer du PC (genre 8254, je crois)
mais sous Linux on n'accede pas directement au materiel. Vu mes talents de
programmeur, c'est pas plus mal ;-)
Philippe
Le Mercredi 30 Mai 2001 17:56, vous avez écrit :
> Cela pourrait te servir :
>
> /* Schedule an alarm. In SECONDS seconds, the process will get a SIGALRM.
> If SECONDS is zero, any currently scheduled alarm will be cancelled.
> The function returns the number of seconds remaining until the last
> alarm scheduled would have signaled, or zero if there wasn't one.
> There is no return value to indicate an error, but you can set `errno'
> to 0 and check its value after calling `alarm', and this might tell
> you. The signal may come late due to processor scheduling. */
>
> extern unsigned int alarm __P ((unsigned int __seconds));
>
> Tu pourrais créer une invocation spécifique suivant le signal a été reçu
> ou pas... C'est assez propre. Je ne sais pas le type d'application que
> tu veux faire mais c'est assez utilisable dans beaucoup de cas
> (peut-être les cas multithreads)
>
> Jette aussi un coup d'oeil sur 'setitimer' et 'getitimer'
>
> hope this helps
>
> alx
>
> CHARLIER Philippe wrote:
> > Le Mercredi 30 Mai 2001 16:52, vous avez écrit :
> >>>En fait, on pourrait prendre comme exemple un jeu qui tourne
> >>>sur des PC de
> >>>puissance differentes. L'affichage sur le moins puissant (en
> >>>simplifiant)
> >>>aura moins d'images par secondes et sera donc saccade mais la
> >>>perception de
> >>>la duree des evenements est identique sur les deux PC.
> >>>Ou, pour eclaircir, dans un simulateur de vol, l'avion se
> >>>deplace de A vers B
> >>>dans le meme temps sur les deux PC mais sur le PC plus lent
> >>>il y aura juste
> >>>un affichage moins fluide du deplacement.
> >>>
> >>>Je me demande comment on fait cela.
> >>
> >>proposition
> >>Tu active une interruption à intervale régulier. (50 ms) (refréchissement
> >> à 20 images/secondes)
> >>Ton code à droit à 10 ms pour caculer l'environnement (position, vitesse)
> >>et 40 ms pour afficher (ou 30 ms pour être sûr (c'est un premier jet), ou
> >>bien jusqu'à la prochaine interruption)
> >>si en 40 ms tu te rend compte que tu n'a pas le temps pour afficher tu
> >>diminue la résolution pour le coups suivant.
> >
> > C'est exactement ca, bon, je vais prendre mon baluchon et partir a la
> > recherche de la maniere d'impementer cela.
> >
> > Philippe
> >
> > [ Soyez précis dans vos sujets svp afin de déterminer directement ]
> > [ le type de demande... ]
> > [ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ]
> > [ http://LinuxBe.org Contact: listmaster@linuxbe.org ]
>
> [ Soyez précis dans vos sujets svp afin de déterminer directement ]
> [ le type de demande... ]
> [ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ]
> [ http://LinuxBe.org Contact: listmaster@linuxbe.org ]
[ Soyez précis dans vos sujets svp afin de déterminer directement ]
[ le type de demande... ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ]
[ http://LinuxBe.org Contact: listmaster@linuxbe.org ]