C++ port Com !

araschbab

Nouveau membre
bonjour a tous !

Je fait actuellement un programme qui recoit des donnees sur le port com que le pc doit recuperer et archiver.
J ai donc commencer tous mon code et tous marche nickel, me manque plus que faire la partie ouverture port com (la plus dure pour moi) mon code se presente comme suis :

[cpp]
int open_port(char port[10]) {

int fd;
DCB dcb;


// Parametrages.
dcb.DCBlength = sizeof(DCB);
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;

dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fDsrSensitivity = FALSE;
dcb.fTXContinueOnXoff = TRUE;
dcb.fNull = FALSE;
dcb.fRtsControl = RTS_CONTROL_ENABLE;
dcb.fDtrControl = DTR_CONTROL_ENABLE;
dcb.fAbortOnError = TRUE;

return 1;
}

[/cpp]

Je voudrais que si le port com( 1 ou 2) s ouvre correctement, un message du type "ouverture reussie!" saffiche. J ai pas reussi a le faire car je connais pas des masses le port com et son fonctionnement.Les donnes que le pc recoit doivent etre archivees je pense pouvoir faire mais si quelqun a une idee elle est la bienvenue!

sa Sa fait quelques jours que je planche dessus mais rienn y fait!

Pourriez vous m aider ? merci beaucoup a tous !
 

boub popsyteam

Grand Maître
Ton programme tournes sous quel OS ?


et aussi voir:
 

araschbab

Nouveau membre
Je toune sous windows xp.

POur l URL j aideja ete voir mais je comprend pas grand chose au programme c++.
Je ne saias pas trop comment l incorporer dans le mieux d autant que je pense qu il ne manque pas gransd chose.
 

zeb

Modérateur
Tu as correctement initialisé la variable dcb, c'est bien.

Mais où sont les appels aux fonctions GetCommState ou SetCommState ?
 

araschbab

Nouveau membre
je les ai miten commentaire vut que sa marche pas

[cpp]
if ((sensorHandle=EcSensorNTInitNmea(TTY_DEVICE_NAME)) == NULL)
{}
if( (GetCommState( sensorHandle, &dcb )) == FALSE ) // Not able to get current settings
{

}
[/cpp]

voila ;)

j essaye toujours :)
 

araschbab

Nouveau membre
[cpp]

if(!SetCommState(sensorHandle, &dcb)) // Succesful SetCommState returns 0
{

}

[/cpp]

voila les deux inits! je voudrait renvoyer un message pour voir si ca marche ou pas. j essaye toujours ;)
 

zeb

Modérateur
Ben tu as un test pour vérifier si le handle retourné par EcSensorNTInitNmea est vide ou pas mais tu ne fais rien !!!

Commence par vérifier la validité de sensorHandle.

En plus tu veux vérifier, ben fais-le : utilise MessageBox.
 

zeb

Modérateur
NON.

MessageBox est une fonction de l'API Windows que tu peux utiliser en C pour afficher une boîte de dialogue avec le message de ton choix.
 

araschbab

Nouveau membre
Merci beaucoup! La boite de dialogue s affiche avec les parametres qui m interesse!!merki merki !
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 125
Messages
6 717 777
Membres
1 586 361
Dernier membre
Florian3549
Partager cette page
Haut