Recupération données rs232 en C sous linux
Résolu
ebousquie
Messages postés
40
Date d'inscription
Statut
Membre
Dernière intervention
-
loupius -
loupius -
Bonjour,
Je cherche à récupérer les données provenant d'un port rs232 sous linux, en langage C/C++.
Quelqu'un aurait-il une idée de bibliothèque existante pour ce genre d'application?
Merci d'avance pour vos réponses!
Je cherche à récupérer les données provenant d'un port rs232 sous linux, en langage C/C++.
Quelqu'un aurait-il une idée de bibliothèque existante pour ce genre d'application?
Merci d'avance pour vos réponses!
A voir également:
- Recupération données rs232 en C sous linux
- Fuite données maif - Guide
- Linux reader - Télécharger - Stockage
- Supprimer les données de navigation - Guide
- Logiciel de récupération de données - Guide
- Trier des données excel - Guide
2 réponses
Il n'y a pas besoin de bibliothèque particulière.
Le port 'Com' est un périphérique, et, dans la philosophie Unix, un périphérique est rattaché au système de fichier; ce périphérique a donc un entrée correspondante dans le système: '/dev/ttyS0' pour 'Com1', '/dev/ttyS1' pour 'Com2', ...
On va donc pourvoir l'utiliser comme n'importe quel autre fichier: un descripteur de fichier et les fonctions open, read, write, close.
La seule différence sera pour le paramétrage; celui-ci se fera par l'intermédiaire d'une structure 'termios' (fais un 'man termios' pour en savoir plus). Un petit point de détail: en général il faut avoir certains droits pour pouvoir modifier cette structure.
Voilà donc pour les grandes lignes.
Le port 'Com' est un périphérique, et, dans la philosophie Unix, un périphérique est rattaché au système de fichier; ce périphérique a donc un entrée correspondante dans le système: '/dev/ttyS0' pour 'Com1', '/dev/ttyS1' pour 'Com2', ...
On va donc pourvoir l'utiliser comme n'importe quel autre fichier: un descripteur de fichier et les fonctions open, read, write, close.
La seule différence sera pour le paramétrage; celui-ci se fera par l'intermédiaire d'une structure 'termios' (fais un 'man termios' pour en savoir plus). Un petit point de détail: en général il faut avoir certains droits pour pouvoir modifier cette structure.
Voilà donc pour les grandes lignes.
Ok, merci pour ces explications...
J'ai vu qu'il pouvait exister un danger de surtension pour la carte mère... y a-t-il des précautions à prendre si l'on veut effectuer des manipulations sur le port série?
J'ai vu qu'il pouvait exister un danger de surtension pour la carte mère... y a-t-il des précautions à prendre si l'on veut effectuer des manipulations sur le port série?
C'est sûr qu'il y a quelques précautions à prendre.
Normalement, une mauvaise manip ne doit pas détruire la carte mère (sauf peut-être à injecter directement du 220V), mais seulement rendre le port Com inutilisable.Matériellement; il y a deux choses à savoir:
- Les tensions sont +12V ("0" logique) et -12V ("1" logique),
- Les pins sont soit IN, soit OUT.
A partir de là il faut faire attention à ne pas relier deux 'OUT' car, en général, ça ne se termine pas très bien (Jadis les anciens drivers (MC1488) 'tenaient' le court-circuit pendant environ 1 seconde.... c'est court!).
Il faut donc repérer les tensions; avec un multimètre c'est assez facile; il y a des normes et il suffit de savoir si on est en présence d'une configuration 'émetteur' ou 'récepteur'. Pour cela, il faut trouver le pin 'TX' qui au repos est à -12V (à 3 volt près), à partir de là (pour un connecteur 9 broches):
- si 3 -> configuration 'émetteur', c'est normalement celle d'un PC,
- si 2 -> configuration 'récepteur', c'est parfois celle de périphérique.
De là on en déduit les autres 'pins'; ce qui n'exclut pas de les vérifier.
Normalement, une mauvaise manip ne doit pas détruire la carte mère (sauf peut-être à injecter directement du 220V), mais seulement rendre le port Com inutilisable.Matériellement; il y a deux choses à savoir:
- Les tensions sont +12V ("0" logique) et -12V ("1" logique),
- Les pins sont soit IN, soit OUT.
A partir de là il faut faire attention à ne pas relier deux 'OUT' car, en général, ça ne se termine pas très bien (Jadis les anciens drivers (MC1488) 'tenaient' le court-circuit pendant environ 1 seconde.... c'est court!).
Il faut donc repérer les tensions; avec un multimètre c'est assez facile; il y a des normes et il suffit de savoir si on est en présence d'une configuration 'émetteur' ou 'récepteur'. Pour cela, il faut trouver le pin 'TX' qui au repos est à -12V (à 3 volt près), à partir de là (pour un connecteur 9 broches):
- si 3 -> configuration 'émetteur', c'est normalement celle d'un PC,
- si 2 -> configuration 'récepteur', c'est parfois celle de périphérique.
De là on en déduit les autres 'pins'; ce qui n'exclut pas de les vérifier.