begin process at 2010 02 10 08:04:41
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > CLASS DE DIALOGUE RS485 / RS232 SOUS LINUX

CLASS DE DIALOGUE RS485 / RS232 SOUS LINUX


 Information sur la source

Note :
5 / 10 - par 1 personne
5,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Classé sous :rs485, rs232, port, rts Niveau :Débutant Date de création :02/06/2007 Vu / téléchargé :9 723 / 613

Auteur : Astalavista

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Voila les deux classes permettent de dialoguer en RS232 ou RS485 sous linux.
- Gestion du RTS
- Sytème bloquant pour atttente de la fin de l'émission de la trame

Source

  • class tRs485 : public tRs232
  • {
  • public:
  • tRs485(char* pPort, int Vitesse, int NbBits, int Parite, int NbStop);
  • tRs485(void);
  • int Envoyer(char* pChaine);
  • void setRTS(bool S);
  • };
  • class tRs232
  • {
  • private:
  • termios Config;
  • char MessageConfigurer[30];
  • int Configurer(char* pPort,int Vitesse,int NbBits,int Parite,int NbStop);
  • protected:
  • int fd; //Descripteur de fichier
  • //------------------------------
  • public:
  • tRs232(void);
  • tRs232(char* pPort,int Vitesse,int NbBits,int Parite,int NbStop);
  • ~tRs232();
  • void AfficherMessageConfigurer();
  • int Envoyer(char* pChaine);
  • int Recevoir(int Nb,char* pChaine);
  • int Recevoir(char Fin, char* pChaine, int Mode);
  • int Recevoir(char Fin, char* pChaine,int Mode, int Attente);
  • int RecevoirCaractere(char* Caractere, int Attente);
  • int RecevoirFichier(char *NomFichier, int AttenteDebut);
  • } ;
class tRs485 : public tRs232
{
public:
tRs485(char* pPort, int Vitesse, int NbBits, int Parite, int NbStop);
tRs485(void);
int Envoyer(char* pChaine);
void setRTS(bool S);
};

class tRs232
	{
	private:
		termios Config;
		char MessageConfigurer[30];
		
		int Configurer(char* pPort,int Vitesse,int NbBits,int Parite,int NbStop);
	protected:
		int fd;	//Descripteur de fichier
   //------------------------------
	public:
		tRs232(void);
		tRs232(char* pPort,int Vitesse,int NbBits,int Parite,int NbStop);
		~tRs232();
		void AfficherMessageConfigurer();
		int Envoyer(char* pChaine);
		int Recevoir(int Nb,char* pChaine);
		int Recevoir(char Fin, char* pChaine, int Mode);
		int Recevoir(char Fin, char* pChaine,int Mode, int Attente);
		int RecevoirCaractere(char* Caractere, int Attente);
		int RecevoirFichier(char *NomFichier, int AttenteDebut);
   } ;


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip TIM_RESEAU, CLASSES POUR RESEAU COMPLET par williamallas
Source avec Zip INTERNET IP FINDER TROUVER VOS ADRESSE IP (INTERNET) par xmustapha
Source avec Zip CLIENT/SERVEUR AVEC TSOCKETSERVER & TCLIENTSOCKET par xmustapha
Source avec Zip REMOTE SHELL GEN par ganjarasta
PROXY IRC SIMPLE (WINDOWS/WINSOCK) par _michel

 Sources en rapport avec celle ci

Source avec Zip CLASSE DE CONTRÔLE DES PORTS COM par gergalp
Source avec Zip Source avec une capture PORT COM ENUM par BruNews
Source avec Zip PORT COM (RS232) SUPER SIMPLE DANS UNE CLASSE par misterzinzin
Source avec Zip Source avec une capture CLASSE DE CONTRÔLE DU PORT SÉRIE RS232 AVEC LES API WINDOWS. par djlex03
Source avec Zip UTILISATION DU PORT COM ENTRE UN PC ET UN POCKET PC par PurpleHeart2

Commentaires et avis

Commentaire de yovotsa le 29/05/2008 17:34:29

C'est du bon boulot, j'apprécie ...

Commentaire de Rou25 le 22/06/2009 11:00:41

salut, j'avais une question.  Comment dois-je faire pour envoyer un 1 ou 0 sur un TX ou RX avec C++ ou un autre langage? En fait, je dois faire un reset sur un module en envoyant un 0 sur le RX pendant un temps assez long pour faire le reset. Mais j'arrive pas.  

Peut tu maider stp.  

Merci a bientot!

Commentaire de Astalavista le 22/06/2009 14:12:08

Tu ne peut pas envoyer sur le RX, c'est la réception, mais tu peut sur le TX (donc le RX au module :) )
Mais pour ton souci, je ne voit pas vraiment là ...
Tu ne doit pas envoyer la donnée 0 plutôt ?

Commentaire de Rou25 le 22/06/2009 14:29:28

Oui, en fait, je dois envoyer un code ASCII representant un NULL ou une donnée 0 directement sur le TX de mon port série.  ensuite le module le recevra sur le RX. T'as raison, je me mal exprimé. Mais l'ennui c'est que je ne sais pas comment le faire par C++.  Par exemple, quand je clique sur un bouton, il envoi un 0 sur le TX et tant que je ne reclique pas, il fait un loop.

Bon voila, je qqun peut maider, ce serai trop gentil!

Merci.

Commentaire de Astalavista le 22/06/2009 16:12:47

Tu devrais déjà apprendre les bases du C++ :)
Si tu les as :
Tu initialise une instance de la classe tRS232 (ou tRS485 suivant ce que tu utilise) dans ton main
et dans l'action du bouton tu envoi ta chaine,
Mais le caractère null va te poser des problèmes avec le miens, vu qu'il est fait pour envoyer une chaine, et le caractère null est définit comme une fin de chaine ...
Je te conseil d'héritier de la classe et de surcharger la méthode (ou de la modifier directement ou d'en ajouter une autre, c'est encore mieux, comme ca tu peut utiliser les deux types):
int tRs232::Envoyer(char* pChaine, unsigned int chaineLen)
{
  int Res = write (fd, pChaine, chaineLen);
  return (Res);
}

Commentaire de pem1664 le 03/09/2009 09:51:21

Bonjour,
merci Astalavista pour cette classe, ca faisait un bail que je cherchait comment utiliser le port série sous linux autrement qu'avec gtkterm..
J'aurais besoin d'envoyer une chaine de caractere comportant SM et le code ascii correspondant a un nombre compris entre 0 et 200.
Quelqu'un pourrait il me donner un coup de main pour m'expliquer comment modifier la classe :
int tRs232::Envoyer(char* pChaine, unsigned int chaineLen)
{
  int Res = write (fd, pChaine, chaineLen);
  return (Res);
}
pour encapsuler dans pChaine la valeur ascii d'un nombre compris entre 0 et 200?
merci :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

modification du RTS du port RS232 [ par yafisab ] Bonjour, quelqu'un a t'il une idée sur la façon de modifier le RTS du port RS232 (Ready To Send) en C++ lorsqu'on est sous li Besoin d'un coup de main dans la rélisation d'une application Win32 en langage C [ par sim_richard286 ]    Je suis actuellement étudiant en GEII 2ième année et je souhaiterais avoir une petite aide pour la réalisation d'une communication rs232 [ par sdisp ] Bonjour,J'ai fait un programme qui envoie des données ( trame de 12 octets ) sur un module de transmition wifi via le port com.Mon probleme est q RS232 [ par th62d ] Bonjour,J'essaie de faire communiquer mon pc via le port serie RS232.....Quand je lance le programme TestCOM.c j'ai l'erreur suivante à la compilation Simulateur de communication RS232 [ par gordon13 ] Bonjour,Je dois réaliser un composant de communication avec un appareil connecté au PC via le port série. Comme j'ai pas l'appareil, je voudrais simul port COM, RS232 ou UART! [ par zenetcalme ] bonjour a tous,je developpe un logiciel qui communique avec le port RS232, et qui est diffusé sur un grand nombre de machine. j'arrive tres bien a com Communication Port serie RS232 [ par freddy766 ] Bonjour, J'ai un petit probleme concernant la communication RS232 (port serie) en c++. Afin de tester mon programme sur des appareils et etablir des c demande d'aide Cherche interception sur RS232 port serie [ par chemins_hermes ] Bonjour tout le monde.je cherche a pouvoir intercepter tout ce qui sort ou rentre par le port RS232 (port serie). et a le mettre dans un fichier log.c USB et RS485 [ par angsthase ] Bonjour à tous! J'espere que je ne vais pas vous effrayer avec mon sujet!!! J'ai chercher sur le site pour savoir comment on communique avec un application en visual c++ pour la communication avec un port RS232 connécté avc un modem [ par ibrahi ] salut tout le monde,j'ai besoin des diffirents fonctions en vc++ pour établir la liaison avec un modem via le port RS232,j'espére avoir la r


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,608 sec (4)

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