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

MFC Discussion :

Timeout d'un Handle


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Par défaut Timeout d'un Handle
    Bon alors, je communique avec un SUBD9, en RS232. J'ai créé la communication a l'aide d'un HANDLE. Celui ci est géré avec des CreateFile, et fonctionne avec WriteFile et ReadFile.

    Mon pb est le suivant : Je voudrais savoir quand mon cable serie est debranché a l'arrache, donc je cherche a capter si le timeout de la connexion est depassé. Or je trouve pas... lol

    Le timeout est initialisé lors de la creation du handle.

    D'avance merci

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 755
    Billets dans le blog
    3
    Par défaut
    Une fois le timeout réglé avec SetCommTimeouts, il faut tester le nombre d'octets lu par ReadFile. Si c'est zero / moins que ce qui est attendu c'est qu'il y a eu timeout.

  3. #3
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 25
    Par défaut
    bon j'ai trouvé la reponse sur un site, dont j'ai reperdu l'adresse lol

    en effet il faut bien regler le Timeout du handle, mais il faut donner le temps a la connexion RS232 de respirer de traiter la requete donc entre l'emission et la reception des données, il faut faire un Sleep. Pour calculer le temps necessaire, il y a une regle, qui marche pour la communication SUBD9 en RS232.
    Je vous file le code de la fonction de calcul du temps a donner a la connexion :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    //////////////////////////////////////////////////////////////////////
    // Calculate the transfert time needed for inverter to interpret
    // request (DIN66019-II only)
    DWORD CDIN66019::TransTime(int lg, int write, int BaudRate)
    {
    	// Reading
    	if(write == 0)
    	{
    		if (BaudRate == 1200) return DWORD(((lg+13)*10*5)/6)+7;
    		if (BaudRate == 2400) return DWORD(((lg+13)*10*5)/12)+7;
    		if (BaudRate == 4800) return DWORD(((lg+13)*10*5)/24)+7;
    		if (BaudRate == 9600) return DWORD(((lg+13)*10*5)/48)+7;
    		if (BaudRate == 19200) return DWORD(((lg+13)*10*5)/96)+7;
    		if (BaudRate == 38400) return DWORD(((lg+13)*10*5)/192)+7;
    		if (BaudRate == 57600) return DWORD(((lg+13)*10*5)/288)+7;
     
    	}
    	// Writing
    	else {
    		if (BaudRate == 1200) return DWORD(((lg+3)*10*5)/6)+7;
    		if (BaudRate == 2400) return DWORD(((lg+3)*10*5)/12)+7;
    		if (BaudRate == 4800) return DWORD(((lg+3)*10*5)/24)+7;
    		if (BaudRate == 9600) return DWORD(((lg+3)*10*5)/48)+7;
    		if (BaudRate == 19200) return DWORD(((lg+3)*10*5)/96)+7;
    		if (BaudRate == 38400) return DWORD(((lg+3)*10*5)/192)+7;
    		if (BaudRate == 57600) return DWORD(((lg+3)*10*5)/288)+7;
    	}
    	return DWORD(50);
    }
    Ou lg est le nombre de bytes envoyés, write un bool pour renseigner si l'on ecrit/ lit sur le materiel et baudrate, la vitesse de transfert.

    Voili voilo

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/07/2003, 11h52
  2. Manipulation des handle contexte
    Par rockbiker dans le forum DirectX
    Réponses: 1
    Dernier message: 09/05/2003, 18h51
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. pb de récup de handle à partir d'une dll
    Par yokito dans le forum Langage
    Réponses: 2
    Dernier message: 20/08/2002, 12h29
  5. pb de handle en C
    Par deedje dans le forum C
    Réponses: 3
    Dernier message: 21/06/2002, 16h19

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