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

VB 6 et antérieur Discussion :

Probleme de synchronisation


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de AurelieB
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 91
    Par défaut Probleme de synchronisation
    Bonjour a tous,
    voici mon probleme:

    Mon programme(maitre) pilote une machine(esclave) a l'aide de messages emis et recus sur le port serie.
    Les messages sont envoyes a l'aide d'une fonction Send(), qui se charge egalement de recuperer la reponse de la machine.
    Durant l'attente de la reponse le programme pouvait rester bloque et cela nuisait a la liberte des utilisateurs.
    Pour parer cela j'ai ajoute une instruction DoEvents dans la fonction Send()durant l'attente de la reponse.
    Pour l'instant le resultat est tres mauvais: si 2 envois de messages sont demandes par 2 forms differentes en meme temps, je recupere une erreur pour l'un des deux. Et comme bien sur j'ai non pas 2 mais plusieurs Forms qui envoient des messages il y a des embouteillages!

    Pour info:
    1. protocole = modbus
    2. les messages sont envoyes periodiquement dans des fonctions timer() propres a chaque form....peut etre qu'en ayant 1 seul timer qui synchronise toute l'application ce serait plus simple mais pour ca j'aurai besoin d'aide.

    Merci d'avance a celles/ceux qui voudront bien se pencher sur ce sujet.

  2. #2
    Membre confirmé Avatar de Ndugu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 121
    Par défaut
    Cela parrait logique, que deux messages envoyés simultanément se gènent...

    Apparemment, il n'existe pas de mécanisme de fil d'attente pour tes communications. Envois tes message à une entité qui les enregistres, puis qui les envois un par un. Seule cette entité devra communiquer avec le port.

    Maintenant, a toi de mettre en place ce genre mécanisme!

    a plus!

  3. #3
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    Bonjour,
    Utilise la solution de Ndugu avec un seul timer qui gere une machine à état, en gros une variable statique que tu teste pour savoir ou tu en es (pret, envoi message, attente reponse, traitement réponse,etc)

Discussions similaires

  1. Réponses: 18
    Dernier message: 10/11/2006, 13h33
  2. [Debutant]Probleme de synchronisation
    Par Treuze dans le forum C
    Réponses: 3
    Dernier message: 17/05/2006, 11h21
  3. Probleme de synchronisation ?
    Par Clad3 dans le forum C++
    Réponses: 1
    Dernier message: 24/12/2005, 14h58
  4. [Thread] Problème de synchronisation
    Par Pe04 dans le forum Concurrence et multi-thread
    Réponses: 12
    Dernier message: 13/12/2005, 11h44
  5. [Débutant][Threads] Problème de synchronisation
    Par sephile dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 02/01/2005, 23h29

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