IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Utilisation d'un Timer ou autre


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Par défaut Utilisation d'un Timer ou autre
    Bonjour à tous

    Je vais essayer d'exposer clairement mon problème et mon attente.

    j'ai créé une application Applet qui permet au travers du TCP/IP de paramétrer des appareils qui sont en RS232. Pour cela, j'ai un serveur web qui se voit affecté des ports coms.

    Mon soucis est les temps d'accès, en effet, il se peut que je sois amené à me connecter en RTC sur des appareils à 2400 bauds. Entre l'envoi des requêtes et les réponses, le temps peut alors prendre plusieurs secondes.

    J'aimerai pendant que l'application tourne pouvoir afficher un état d'activité, sous forme de points par exemple qui défileraient dans un JLabel.

    Je pensais pouvoir mettre un timer en start dès l'envoi de ma requête pour l'arrêter à la fin des réceptions, mais je n'arrive pas à le mettre en place.

    Voila comment j'ai essayé:
    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
     
    import javax.swing.Timer;
    ....
    timer = new Timer(500, this);
    ....
    private Timer timer;
    ....
    public void actionPerformed(ActionEvent ev) {
      Object source = ev.getSource();
      ....
      if( source == timer ){...}
      if( source == boutonStby ){
        timer.start();
        ....
        timer.stop();
      }
    ....
    Mais je sais que ça ne fonctionne pas. Comment dois-je faire pour exécuter des instructions toutes les 500ms alors que j'ai déjà une tache en cours?

    Merci par avance.

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Par défaut
    Regarde peu être du côté du l'utilisation des Threads, car ce que tu décris là me semble être un besoin de traitement parallèle...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Par défaut
    Bonjour Michon

    Est-ce qu'un thread peut exécuter une routine à intervalle de temps régulier?

    A+
    Zygoat

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Le timer fonctionne... mais je crains que tu ne fasses ton traitement lourd dans le thread de l'EDT ce qui te bloque toute l'interface graphique.

    La meilleure solution pour tout cela serait de passer par un SwingWorker

    a++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Par défaut
    Bonjour et merci adiGuba

    je viens de me créer une petite application avec un SwingWorker.

    Est-ce qu'il est possible de faire une animation ( signe de vie ) lorsque que l'on crée un socket?

    Je débranche mon câble réseau et passe par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    socket = new java.net.Socket(IP_adress, 23);
    est-ce que le temps entre de début d'exécution de la ligne et l'erreur de connexion peut être occupé par une routine d'"animation" graphique grace au SwingWorker?

    Merci par avance si vous comprendre langage moi.

    Zygoat

  6. #6
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut
    Bonjour Zygoat,

    je serai de savoir comment tu fais pour envoyer et recevoir des commandes à un appareil via le cable rs232.
    J'ai essayé de coder quelque chose pour communiquer avec un appareil en rs232, j'arrive à lui envoyer des commande mais je ne reçois rien en réponse de l'appareil.

    salut

Discussions similaires

  1. Utilisation d'un timer de la MFC
    Par bobirem dans le forum MFC
    Réponses: 5
    Dernier message: 09/05/2006, 00h11
  2. utilisation d'un timer
    Par jiraya43 dans le forum MFC
    Réponses: 2
    Dernier message: 04/05/2006, 16h52
  3. utiliser un programme d'une autre partition
    Par WELCOMSMAIL dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 22/04/2006, 22h48
  4. [Débutant] Utilisation d'un timer
    Par mickael777 dans le forum MFC
    Réponses: 7
    Dernier message: 28/10/2005, 11h40
  5. réseau : utiliser les ressource d'un autre pc
    Par Cornejito dans le forum MFC
    Réponses: 7
    Dernier message: 04/08/2005, 10h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo