begin process at 2012 05 29 17:33:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

problème initialisation port série


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

problème initialisation port série

mercredi 23 mai 2007 à 09:43:28 | problème initialisation port série

totoscill

Bonjour,
J'ai un problème avec mon code lors de l'initilisation du port série. Voici le code:

* *** Constructors *** */

//! Default constructor

TestGPS_Serial::TestGPS_Serial(

char * port, int baudRate, int timeOut, BYTE parity,

BYTE nbBits, BYTE stopBits)

{

//init class name

strcpy(_cn,

"TestGPS_Serial");

// init communication port

strcpy(_comPort.Port, port);

_comPort.BaudRate = baudRate= 4800;

_comPort.idComDev = -1;

_comPort.DataBits = nbBits=8;

_comPort.Parity = parity = NOPARITY;

_comPort.StopBits = stopBits=1;

_comPort.hcom = INVALID_HANDLE_VALUE;

_comPort.TimeOut = timeOut;

// _cerr = cerr;

}



LA FONCTION QUE J'UTILISE POUR INITIALISER LE PORT SERIE:

void

TestGPS_Serial::connect(void)

{

DCB etat_port;

// int RXQUEUE = 1024;

// int TXQUEUE = 1024;

int err;

disconnect();

//déja connecté->on se déconnecte

 

DWORD dwError;

_comPort.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

if (_comPort.hcom==INVALID_HANDLE_VALUE) {

dwError = GetLastError();

printf(

"Probleme d'ouverture du port serie %s: 'CreateFile'", _comPort.Port);

printf(

"code d'erreur : %lu", dwError);

// _cerr->createError(_cn, CAPI_ERROR_SERIAL_O);

return;

}

//configuration du port série

BOOL fSuccess = GetCommState(_comPort.hcom, &etat_port);

if (!fSuccess) { // Handle the error

dwError = GetLastError();

printf(

"Problème de recuperation de l'etat du port serie %s: 'GetCommState'", _comPort.Port);

printf(

"code d'erreur : %lu", dwError);

// _cerr->createError(_cn, CAPI_ERROR_SERIAL_O);

return;

}

//infoConnection(etat_port);

//etat_port.EofChar = 13; //code ascii CR

etat_port.BaudRate = (DWORD)(_comPort.BaudRate);

etat_port.ByteSize = _comPort.DataBits;

etat_port.Parity = _comPort.Parity;

etat_port.StopBits = _comPort.StopBits;

fSuccess = SetCommState(_comPort.hcom, &etat_port);      // le problème est ici

if (!fSuccess) { // Handle the error

dwError = GetLastError();

printf(

"Problème d'initialisation du port série %s: 'SetCommState'", _comPort.Port);

printf(

"code d'erreur : %lu", dwError);

// _cerr->createError(_cn, CAPI_ERROR_SERIAL_O);

return;

}

//gestion des time out

COMMTIMEOUTS comto;

comto.ReadIntervalTimeout = 0;

comto.ReadTotalTimeoutMultiplier = 0;

comto.ReadTotalTimeoutConstant = _comPort.TimeOut;

comto.WriteTotalTimeoutMultiplier = 0;

comto.WriteTotalTimeoutConstant = _comPort.TimeOut;

err = SetCommTimeouts(_comPort.hcom, &comto);

if (err<0) {

printf(

"Erreur en programmation time out");

// _cerr->createError(_cn, CAPI_ERROR_SERIAL_O);

return;

}

resetConnection();

//printf ("Port série ouvert");

}


voilà. La compilation fonctionne parfaitement mais dans l'executable, ma fonction reste bloquer à"fSuccess = SetCommState(_comPort.hcom, &etat_port);"
J'ai à l'écran:

Problème d'initialisation du port série |||||||||||||||||||||||: 'SetCommState' code d'erreur: 87



Visiblement il ne reconnait pas mon port série.

Quelqu'un pourrait m'aider, SVP?

Je vous remercie.






mercredi 23 mai 2007 à 10:55:02 | Re : problème initialisation port série

bobbyantho

Salut,

Il reconnait bien ton port série. Le problème est dans la configuration, apparemment il ne supporte pas les valeurs :

etat_port.BaudRate
etat_port.ByteSize
etat_port.Parity
etat_port.StopBits

que tu essaye de lui donner.

Essaye avec d'autres valeurs.
mercredi 23 mai 2007 à 16:43:41 | Re : problème initialisation port série

totoscill

Merci mais rien à y faire, même en change   nt les valeurs, le code d'erreur reste le même.
mercredi 23 mai 2007 à 18:45:30 | Re : problème initialisation port série

bobbyantho

Si tu veux, j'ai une classe pour l'utilisation du port série qui fonctionne bien et qui est simple d'utilisation.
Donnes-moi ton mail et je te l'enverrai.
jeudi 24 mai 2007 à 12:22:35 | Re : problème initialisation port série
samedi 21 avril 2012 à 14:45:44 | Re : problème initialisation port série

lilight

Bonjour.
Je sais que ce sujet n'est plus actif depuis longtemps mais est il encore possible de recevoir cette classe qui fonctionne ?
Merci


Cette discussion est classée dans : problème, port, etat, serial, comport


Répondre à ce message

Sujets en rapport avec ce message

getch() problème! [ par MySt_Ch ] Salut,j'ai un problème avec la fonction getch(). Voila, j'aimerai que quand une des touches du pad numérique soit enfoncée, une instruction s'exécute problème avec le port COM dans une application mfc [ par gengis69 ] j'ai une application mfc qui me permet d'envoyer des info sur un port COM, je sélectionne celui-ci dans mon ihm, seul problème, quand le port selectio problème de port com sous windows 2000 [ par gengis69 ] bonjour, je suis stagiaire, j'ai un programme fonctionnant sous windows 95 me permettant d'interroger des capteurs via une liaison série rs232, ce pro ouvrir un port COM > à 9 [ par lamalice83 ] Bonjour à tous, je rencontre un problème que j'arrive pas à comprendre:j'utilise un appareil qui me créé un port COM virtuel sur un réseau internet. D Changer le numéro du port COM [ par mathieu_carter ] Slt,Voici mon problème:  J'utilise un logiciel X qui utilise le port COM 1 et 2 et j'ai installé une clé Bluetooth sur mon PC utilisant les ports COM Problème de Port Com dans un ActiveX [ par Ayato ] Bonjour Je cherche en ce moment a développer un ActiveX utilisant les port Com. Celui-ci est développé sous VC++ en MFC (je sais il est plus c Ecouter sur un port [ par aabhanane ] Bonjour à tous, je travaille debuis des semaines sur un problème et jusqu'à ce matin je savais pas de quoi venais l'erreur. Maintenant, je crois que j API windows et port serial [ par sheorogath ] bonjour a tous,pour mon PPE au lycee j'ai besoin de communiquer avec un port serial en envoyant mes bit correctement et en suivant cette dt :http://da Problème pour quitter proprement [ par xineohp37 ] Bonjour à tous,je suis actuellement sur un projet visual cpp 2005, avec les MFC.Mon problème est le suivant :J'ai surchargé le "OnInitialUpdate" de ma serial port dans une dll [ par survcopt ] Bonsoir,Je cherche à utiliser la fonction serial port dans une dll ,mais je ne trouve pas comment la déclarer en effet tous les exemples que je trouve


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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

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