Hello,
Comment faire une pause dans le déroulé d'un programme ?
J'envoie des commandes sur le réseau, et d'après de protocole il est précisé que la réponse du serveur est dispo sur le réseau au bout de 2 secondes max. Pour être sur de bien lire la valeur j'aimerais attendre ces 2 secondes.
Comment faire une pause ? (delay ? pause ? sleep ?)
Ceci dit je ne trouve pas franchement ça très "propre"... votre avis ? je ne suis pas un vrai développeur, si quelqu'un à plus d'expérience, comment vous faites dans la "réalité" de votre métier ?
Merci
Hors ligne
Je ne sais pas si l'on peut faire une pause mais tu peux voir du côté ofThread qui te permet de lancer un processus en parallèle de ta boucle ou te servir de ofHttpResponse. Il me semble que cette dernière à une méthode qui te permet d'attendre.
Hors ligne
Salut,
Merci pour l'info mais je ne pense pas que cela me soit utile car je me connecte en TCP et pas en HTTP.
Le thread il va falloir que je le mette en place mais j'ai du mal à comprendre comment ça fonctionne. Du moins je vois le principe, mais il faudrait que je passe des parametres au thread et de ce que j'en comprend, il me faut faire pas mal de modifs pour cela. En gros mettre tout ce qui est accès réseau en thread et pas seulement le "test" de connexion. Le thread est indispensable ici pour éviter de bloquer l'appli, mais en soi cela ne changera rien au probleme de pause.
Hors ligne
Marty a écrit:
Hello,
Comment faire une pause dans le déroulé d'un programme ?
J'envoie des commandes sur le réseau, et d'après de protocole il est précisé que la réponse du serveur est dispo sur le réseau au bout de 2 secondes max. Pour être sur de bien lire la valeur j'aimerais attendre ces 2 secondes.
Comment faire une pause ? (delay ? pause ? sleep ?)
Ceci dit je ne trouve pas franchement ça très "propre"... votre avis ? je ne suis pas un vrai développeur, si quelqu'un à plus d'expérience, comment vous faites dans la "réalité" de votre métier ?
Merci
Bonjour , j'ai exactement le même problème pour mon application www.comparateur-mutuelle-assurance-sante.com/ , avez vous trouvé une solution ?
Hors ligne
Une technique bien utile pour retarder des évènements consiste à lancer un "chrono" puis de déclencher des évènements en fonction de celui-ci.
Je ne connais pas bien OpenFrameworks mais grossièrement:
Au moment ou tu envoie ta requête tu commence à incrémenter un compteur (par exemple en utilisant une fonction qui te donne l'heure de ton ordinateur ou qui te donne le temps écoulé depuis le lancement du programme).
Pour lire la réponse, tu vérifie d'abord que ton compteur a atteint une valeur que tu as préalablement spécifiée, 2000ms dans ton cas.
J'espère que ça t'aidera, sinon tu peux regarder ça: http://arduino.cc/en/Tutorial/BlinkWithoutDelay
C'est le code Arduino qui m'a fait comprendre ce principe, c'est pas openFrameworks mais le code est bien détaillé et ce sera facile à retranscrire.
Hors ligne
Je te conseille de regarder du côté des listener; en programmation Objet, c'est la façon de faire "correcte" et pas forcément la plus compliqué.
1. Tu prépare un listener (un écouteur)
2. Tu envois ta requète qui sera "écoutée" par ton listener
3. Lorsqu'on ton listener reçoit l'événement que tu attends (réponse serveur...) il déclenche une fonction
Avec un delay, tu n'as pas de garantie si il y a un soucis de reception ce qui t'obliges à faire une série de tests.
Hors ligne