Port com (rs232) super simple dans une classe

Soyez le premier à donner votre avis sur cette source.

Vue 25 652 fois - Téléchargée 4 800 fois

Description

ce code n'est en fait qu'une reprise d'un code fait en c par ymca2003
http://www.cppfrance.com/code.aspx?id=22441

remis sauce c++ (dans une classe)

avec qq option en plus comme choisir la vitesse du port et un debut (je l'ai ecrit en une soirée) de gestion des erreur par exeception
j'ai aussi ajoute un fonction membre qui renvoit le nombre d'octets en attente dans le buffer
cf commentaire de ymca2003
tout en modifiant le code pour qu'il prenne en compte les port comm>9 (cf http://www.cppfrance.com/forum.v2.aspx?id=510518 resolu par sylwae

Source / Exemple :


dans le zip (com.h et com.cpp + un exemple...)

Conclusion :


je n'ai pas eu le temps de tester(rien a brancher sur le port com)... mais je fait confiance aux personnes qui ont codé ces lignes de code (j'ai fait bcp de copier coller...)

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
samedi 13 mars 2010
Statut
Membre
Dernière intervention
20 octobre 2011

bonjour
j'ai rencontré un prblemme lors de la compilation. le probleme se manifiste dans la reception.lors de la compilation je reçois toujour 0 octets .
s'il vous plait une aidée pour resourdre le probleme .
merci d'avance
Messages postés
1
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
23 mars 2009

Salut !

J'ai téléchargé ton code, mais je n'arrive pas à le compiler... Mon compilateur (Visual Studio 2008 sous Vista 32 bits) ne trouve pas le fichier fstream.h.

J'ai essayé pendant deux heures de le faire compiler, mais ça ne fonctionne pas.
Messages postés
12
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
27 février 2008

Bonjour,
Va jeter un coup d'oeil sur mon source. J'ai fait ma propre class pour la gestion serie, mais en plus il y une fonction pour decodage de trame pour mon application. Peut etre que cela peut te donner une idee. Je recoi toute sorte de caractere y compris commencant par 0. Pour l'envoyer c'est normalement pareil mais je n'ai pas fait de test. sinon envoie moi ton prog j'y jeterai un coup d'oeil ce week end.
Explique ce que tu veux faire avec ton prog.
Mon source http://www.codes-sources.com/code.aspx?ID=37844
Messages postés
3
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
9 juin 2006

Bonjour,
Merci du conseil je vais essayer de changer ce paramètre.
Mais mon problème ne vient pas que des zéros, il y a aussi d'autres octets que je ne peut pas envoyer sous peine de fermer la liaison série. Par exemple Ox0A, ou la plus part des octets commençant par 0. Je voudrais pouvoir envoyer n'importe quel octet sans qu'il soit interprété comme une fin de tramme, ou un caractère spécial.
Messages postés
12
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
27 février 2008

Bonjour,
Veuillez m'exuser je n'ai pas pris le temps de lire cette source (il est 18h10 en chine). J'essaierai de prendre le temps demain. J'ai fait une source egalement pour la liaison serie avec un decodage de trame (dedie a mon application carte PIC18f452 + logiciel en c++ builder 6, mais j'ai mis en ligne uniquement la classe RS232 avec un exemple de decodage asaiement modifiable). Sans doute que le source est moi propre que celui ci car je suis debutant.
Pour repondre a BEN_34 je trouve ca bizarre car avec mon prog je n'ai aucun probleme pour recevoir des 0 (pas fait de test en emission). Normallement c'est le parametre g_dcb.fNull=FALSE; false veut dire que l'on accepte les caracteres 0. Par contre je voit dans ce source que l'on gere le RTS et le DTR. Explique plus en detail ton probleme et je t'aiderai si je peux.
Pour repondre a KHACHINE je crois que c'est 0x0A ou 0x0D (un est retour a la ligne et l'autre est saut de ligne) je ne me souviens plus de memoire. Mais regarde sur internet la table ACII et tu auras la reponse.
Mon source http://www.codes-sources.com/code.aspx?ID=37844
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.