begin process at 2012 05 30 01:06:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

ouverture d'un port serie


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ouverture d'un port serie

vendredi 14 juillet 2006 à 16:37:18 | ouverture d'un port serie

KryztL

bonjour tout le monde,

j aurai besoin d aide pour le projet que je suis entrain de programmer.
je souhaite ouvrir un port serie sous visual studio C++, je me suis inspirer des codes presents sur d autre parties du site mais ca ne marche pas... en fait les dialogues box indique que tout fonctionne correctement mais en fait ca serai plus comme si rien n 'etait envoyer sur le port... Quelqu'un a une idee?
merci d avance

void CVersusDlg::OnInitPort()
{
 // TODO: Add your control notification handler code here
 BOOL     fSuccess;
//DWORD    nb;
int      virgule = 0, cpt = 0;
 
  /* Ouverture du fichier du port de communication */
   hCom = CreateFile ( "COM1",
                       GENERIC_READ | GENERIC_WRITE,
                       0,                // comm devices must be opened w/exclusive-access
                       NULL,          // no security attributes
                       OPEN_EXISTING,    // comm devices must use OPEN_EXISTING
                       0,                // not overlapped I/O
                       NULL              // hTemplate must be NULL for comm devices
                     );

   /* Erreur si problèmes d'ouverture du com */
   if ( hCom == INVALID_HANDLE_VALUE )
   {
      MessageBox("Error While Openning","Erreur",MB_OK);
   }

  
   /* Taille des buffers */
   fSuccess = SetupComm ( hCom, INPUT_BUFFER, OUTPUT_BUFFER );
   if ( !fSuccess ) 
   { 
     MessageBox("Error While init of buffers","Erreur",MB_OK);
   }


   /* Allocation de mémoire pour le dcb et initialisation à 0 */
   FillMemory ( &dcb, sizeof ( dcb), 0 );
   dcb.DCBlength = sizeof ( dcb );
  
  
   /* Test de l'état du port com */
   fSuccess = GetCommState ( hCom, &dcb );
   if ( !fSuccess ) 
   { 
     MessageBox("Unabble to receive informaions of the port","Erreur",MB_OK);
   }
   
   /* Paramètres de configuration du port de communication */
   dcb.BaudRate = CBR_4800;      // Vitesse de transmission
   dcb.ByteSize = 7;             // Taille des données reçues et transmises
   dcb.Parity   = EVENPARITY;      // Bit de parité
   dcb.StopBits = TWOSTOPBITS;    // Bit de stop
  
  
   /* Configuration du port de communication */
   fSuccess = SetCommState( hCom, &dcb );
   if ( !fSuccess ) 
   { 
     MessageBox("Unabble to Init the serial port","Erreur",MB_OK);
   }
  
  
   /* Configuration des temps de réponse du port com */
   m_commtimeouts.ReadIntervalTimeout         = 100;
   m_commtimeouts.ReadTotalTimeoutMultiplier  = 100;
   m_commtimeouts.ReadTotalTimeoutConstant    = 3000;
   m_commtimeouts.WriteTotalTimeoutMultiplier = 100;
   m_commtimeouts.WriteTotalTimeoutConstant   = 500;
  
   /* Mise en sevice des temps */
   SetCommTimeouts ( hCom, &m_commtimeouts );

 MessageBox("connexion",MB_OK);

}

CVersusDlg::~CVersusDlg()
{
CloseHandle ( hCom );
}

 

void CVersusDlg::OnInitClock()
{
 // TODO: Add your control notification handler code here
 DWORD nb;
 int i=0;

 trame = "<SET?>";
 nb = trame.GetLength ();
 char * bufferclock = (char *) malloc(sizeof(char)*(nb+2));
 bufferclock[nb] = 0x0A;
 bufferclock[nb+1] = 0x0d;
 for(i=0;i<(long)nb;i++)
  {
  bufferclock[i]=trame[i];
  }
 WriteFile ( hCom, bufferclock, nb+2, &nb, NULL );
 Sleep(1000);

 trame = "<ID?>";
 nb = trame.GetLength ();
 bufferclock = (char *) malloc(sizeof(char)*(nb+2));
 bufferclock[nb] = 0x0A;
 bufferclock[nb+1] = 0x0d;
 for(i=0;i<(long)nb;i++)
  {
  bufferclock[i]=trame[i];
  }
 WriteFile ( hCom, bufferclock, nb+2, &nb, NULL );
 Sleep(1000);

/nb = 42;
ReadFile ( hCom, bufferclock, nb, &nb, NULL );


for(i=0;i<(int)nb;i++)
{
 m_edit_clock += bufferclock[i];
}
UpdateData(TRUE);


//UpdateData(FALSE);


free(bufferclock);
MessageBox("clock set",MB_OK);

}

dimanche 16 juillet 2006 à 17:06:53 | Re : ouverture d'un port serie

KryztL

re bonjour,

je pensai y a t'il un moyen d'inclure un petit morceau de code en visual basic dans un programme en visal c++ comme c possible en C avec de l' asembleur?
( #asm
   Code en asm
   #end asm)
merci d avance
lundi 17 juillet 2006 à 13:22:17 | Re : ouverture d'un port serie

fanch314

Non je crois pas, le mieux c 'est de faire une dll en basic et de réutiliser en c


Cette discussion est classée dans : port, nb, hcom, dcb, bufferclock


Répondre à ce message

Sujets en rapport avec ce message

Reception sur port COM1 sous Builder [ par Ardeje26 ] Bonjour,Je travail sous Borland Builder 5 et j'ai un problème pour récupérer les datas sur mon port COM1 avec le code suivant.Je peut simplement savoi probleme rs232 [ par rhumone ] j'arrive pas a récupérer la totalitée des données sur ma liaison rs232 je dois recevoir environ 7000 octet j'en recois que 4000 octet.voila mon source port serie [ par maurejac ] bonjour, je dois realiser un petit programme de communication avec une carte par port serie, la plupart du temps il marche tres bien mais de temps en SOS reception et affichage sur port serie [ par dgac ] J'ai dévellopé le programme suivant pour recevoir et afficher une chaine de carractére pour un port serie . J'aimerai de l'aide pour recevoir un carra reception et envoi d'une trame sous rs232 [ par fl2010 ] bonjour je suis entrain d'ecrire un programme pour faire la communication entre un PC et un regulateur eurotherm à l'aide du rs232. j'ai fait un progr com. série rs232 config port [ par LaTatadu91 ] Bonjour,Voila je cherche a developer une communication sur un port com (rs232)et je cherche des infos ou de l'aide sur la configuration du port.D'apre transmission de donnees via port serie [ par seignseifer ] Bonjour tout le monde, j'ai fait un petit programme en  C++ sous Borland C++6.0, car je veux envoyer via le port serie, des information a un analyseur C++ communication avec port COM [ par seignseifer ] Bonjour tout le monde, aidez moi s'il vous plait et si vous avez le temps, je vais craquer. JE pense que c'est assez basique, mais je suis debutant, d [mfc]XON/XOff [ par katzemen ] bjr a tous je voudrai savoir si quelqu'un sais lire sur le port serie avec le protocole XON/XOFF. Voici mon code pr l'initialisation du port: ouvertur inclure un thread dans une classe C++ [ par savate83 ] Bonjour a tous, mon probleme est le suivant : je dois realiser une classe qui me permette d'executer un thread de reception a chaque instance car g pl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales