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

C++ Discussion :

réponse protocole RS232


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Par défaut réponse protocole RS232
    Bonjour,
    J'utilise le protocole de communication RS232 afin de commander un moteur brushless. Pas de probleme pour l'envoie de message mais je n'arrive pas a avoir la réponse. Voici mon code si quelqu'un voit une erreur .
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    bool CDPVServoDrive::OpenRS232Port() {
    	_tools=new CDPVTools;
    	//Création du fichier COM1 permettant la communication
    	hComm=CreateFile("COM1",GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,0);
    	if(hComm==INVALID_HANDLE_VALUE)
    	{
    		AfxMessageBox("erreur");
    		return false;
    	}
    	//Réglage des paramètres de communication
    	GetCommState(hComm,&car_com);
    	car_com.BaudRate=CBR_9600;
    	car_com.ByteSize=7;
    	car_com.StopBits=TWOSTOPBITS;
    	car_com.Parity=NOPARITY;
    	SetCommState(hComm,&car_com);
    	//Réglage des paramètres moteur permettant le déplacement par soft du moteur
    	char Buf[60]={':','0','1','0','6','0','3','0','6','0','0','1','F','D','1','\r','\n'};
    	error=WriteABuffer(Buf);
                 char* szText;
                 WaitAnswer(200,szText);
    	if(error==FALSE)
    		return false;
    	else
    		return true;
    }
     
    //Fonction permettant l'attende d'une réponse sur le port RS232
    BOOL CDPVServoDrive::WaitAnswer(DWORD dwTime, char* szText)
    {
    	char reponse[256];
    	// tant que le délai n'est pas expiré
    	DWORD dwLastTime = GetTickCount();
    	while(GetTickCount() < dwLastTime+dwTime*1000)
    	{
    		// pause
    		Sleep(100);
    		// lire
    		if(Read(reponse, sizeof(reponse)))
    		{
    			AfxMessageBox(reponse);
    			if(strstr(reponse, szText) != NULL)
    			return TRUE;
    		}
    	}
    	return FALSE;
    }
     
    //Fonction permettant la lecture de données sur le port RS232
    BOOL CDPVServoDrive::Read(LPVOID lpBuffer,DWORD dwSize)
    {
    	DWORD dwRead;
    	ReadFile(hComm, lpBuffer, dwSize, &dwRead, NULL);
    	((LPBYTE)lpBuffer)[dwRead] = '\0';
    	return (dwRead != 0);
    }
    Les données sont bien envoyer mais je n'ai aucune réponse me le confirmant. Je n'arrive pas à trouver le problème dans mon code.
    Merci de me signaler si vous trouvez un problème

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    char* szText;
    WaitAnswer(200,szText);
    C'est sûrement char szText[200]; plutôt

Discussions similaires

  1. RS232 réception fichier protocole XModem
    Par jerem59300 dans le forum C
    Réponses: 2
    Dernier message: 15/05/2015, 09h42
  2. Réponses: 0
    Dernier message: 29/03/2010, 14h12
  3. Réponses: 24
    Dernier message: 16/07/2008, 14h04
  4. aide protocole rs232
    Par makroute dans le forum C++Builder
    Réponses: 0
    Dernier message: 14/05/2008, 14h31
  5. pb pour le protocole RS232
    Par gaetan.tranvouez dans le forum C
    Réponses: 14
    Dernier message: 08/06/2006, 17h14

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