begin process at 2012 05 29 23:14:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

lecture port série


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

lecture port série

lundi 24 mai 2004 à 11:46:59 | lecture port série

biscot19

Bonjour voici mon code et je souhaiteras récupérer ce que je lis sur le port dans la variable retour en chaine de caractère mais là ça renvoi n'importe quoi.

BOOL Test_Imprimante()
{
// Variables de COM
HANDLE hComm;
CString portname = "//./COM1";
char test1[3];
DWORD lp ;
DWORD error;
DCB dcb;
BOOL fSuccess;
char retour ;


//========== Ouverture du Port =====================================================
hComm = CreateFile(portname,GENERIC_WRITE,0,0,OPEN_EXISTING,0,0);
fSuccess = GetCommState(hComm,&dcb);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
fSuccess = SetCommState(hComm, &dcb);
// ecriture sur le port

test1[0] = 0x01;
test1[1] = 'A';
test1[2] = NULL;
BOOL etat = WriteFile(hComm,&test1,4,&lp,NULL);

// lecture du port
BOOL etat2 = ReadFile(hComm,&retour,50,&lp,NULL);
error = GetLastError();

return TRUE;
// Fermeture du port
CloseHandle(hComm);

}

lundi 24 mai 2004 à 12:41:03 | Re : lecture port série

ymca2003

retour est un simple octet et tu demande d(aller en stocker 50 => ca va aller ecarser ce qui suit, il faut déclarer char[50] dans ce cas. Ton port n'est pas ouvert en lecture. Pour le nom du port "COM1" devrait suffir. Ne pas oublier d'affecter les COMMTIMEOUTS pour gérer le temps d'attente des données sur le port.

tu peut jeter un oeil la si tu veux :
http://www.cppfrance.com/code.aspx?ID=22441
lundi 24 mai 2004 à 13:38:08 | Re : lecture port série
lundi 24 mai 2004 à 13:39:09 | Re : lecture port série

biscot19


pour faire une ecriture et une lecture l'une apres l'autre faut que je géré obligatoirement le timeout?
lundi 24 mai 2004 à 13:39:59 | Re : lecture port série

biscot19


pour faire une ecriture et une lecture l'une apres l'autre faut que je géré obligatoirement le timeout?
lundi 24 mai 2004 à 16:20:28 | Re : lecture port série

ymca2003

la structure COMMTIMEOUTS permet de gérer principalement la fonction de lecture. En effet, lorsque tu appel ReadFile, tu ne sait pas s'il y a des données reçus (y'a un moyen, mais faisons simple). Selon les paramètres de cette structure, ReadFile peut attendre indéfiniement que le nombre d'octets spécifié arrive. Par défaut, si tu demmande de lire 50 octets, ReadFile ne retournera pas tant que 50 octets n'auront pas été reçu (pendant ce temps la, l'appli est bloquée). Tu peut donc spécifié le temps max à attendre pour l'arrivée du premier octet (ReadTotalTimeoutConstant) puis le temps max entre 2 octets consécutifs (ReadIntervalTimeout).

En ce qui concerne l'écriture, c'est moins grave, tu peut attendre que tous les octets spécifiés soient envoyés avant de poursuivre (à moins que tu en ai une foultitude mais dans ce cas, il y a d'autres technique plus compliquées pour ne pas bloquer l'appli pendant ce temps).
lundi 24 mai 2004 à 16:23:23 | Re : lecture port série
lundi 21 mars 2011 à 14:42:42 | Re : lecture port série
lundi 21 mars 2011 à 14:43:21 | Re : lecture port série
lundi 21 mars 2011 à 16:50:35 | Re : lecture port série

1 2

Cette discussion est classée dans : port, bool, test1, dcb, hcomm


Répondre à ce message

Sujets en rapport avec ce message

Ecriture sur port série [ par biscot19 ] voila mon prog et ceci envoi 80 80 sur le port au lieu de AB // Variables de COM HANDLE hComm; CString portname = "//./COM1"; char test1[3]; DW [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 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 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 RS232 sous vb.net 2005 [ par dragonfly95 ] bonjour, je cherche à ouvrir un port RS232 sur un PC sous vb.net 2005 en MFC mais il ne veut jamais l'ouvrir. J'utilise la fonction CreateFile(,,,,) m ouverture d'un port serie [ par 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++, port serie probleme [ par gaah ] Salut tout le monde la je pense que c mon premier poste sur le forum j'aimerai lire des informations sur le port serie de ma machine j'ai utlisé les d 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 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 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


Nos sponsors


Sondage...

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 : 1,685 sec (3)

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