Bonjour,
Est-ce que quelqu'un aurait déjà codé sous Visual C++ des fonctions permettant l'ouverture + la fermeture + la lecture + l'écriture sur un PORT RS232, et ce sous LINUX ? J'ai déjà ce code sous Windows mais je suis supposé le porter sous LINUX et je ne sais pas du tout comment m'y prendre.
Merci d'avance pour votre aide.
Julien
# Gni ? tty ?
Posté par Obsidian . Évalué à 4.
Bon, si c'est pour écrire du code portable, il faut savoir que les ports série sont gérés par le noyau et qu'à ce titre, on y accède par /dev/ttyS0, /dev/ttyS1, etc.
On les ouvre donc comme des fichiers ordinaires et on manipule éventuellement leur paramètres avec les ioctl adéquats directement sur le handler du fichier. On ne fait pas plus simple ...
Et enfin, "supposé" -> "censé".
[^] # Re: Gni ? tty ?
Posté par julienSOS . Évalué à 2.
PS : cher Obsidian, on peut parler orthographe et grammaire puisque tu le souhaites : "leur paramètre" => "leurS paramètres" ;-)
[^] # Re: Gni ? tty ?
Posté par Obsidian . Évalué à 2.
Il ne fallait pas mal le prendre. Mes commentaires sont loin d'être parfaits, eux non plus.
DLFP étant très référencé, il est d'usage ici de relever discrètement et occasionnellement les fautes d'orthographe, et de français en général. Dans ce cas particulier, "supposé" est un faux-ami en anglais et comme le piège est classique, c'est rendre service à un participant de le relever, bien sûr, mais ça en fait surtout profiter toute la communauté.
Même chose pour "supporter" qui occupe actuellement mes signatures de messages ...
[^] # Re: Gni ? tty ?
Posté par julienSOS . Évalué à 2.
Encore merci !
[^] # Re: Gni ? tty ?
Posté par julienSOS . Évalué à 1.
J'ai, dans un programme, la fonction suivante :
==================================================
long OpenPort(char Port[], char BaudRate[], char DataBit[], char StopBit[], char Parity[])
{
/* File descriptor for the port */
int fd;
/* Open the port */
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
...etc
}
==================================================
Or je voudrais remplacer "/dev/ttyS0" par le port dont le nom est refilé à ma fonction (et qui peut être "/dev/ttyS1" ou "/dev/ttyS2" etc... :
Est-ce que le code suivant est correct ?
fd = open(Port, O_RDWR | O_NOCTTY | O_NDELAY);
J'ai un doute car Port pointe sur l'élément 0 du tableau Port (sur Port[0] je veux dire, sur le "/" finalement). Du coup, j'ai l'impression que je n'aurai pas le comportement souhaité. Est-ce que je me trompe et si oui, comment puis-je m'en sortir ?
Merci d'avance !
Julien
[^] # Re: Gni ? tty ?
Posté par Obsidian . Évalué à 2.
[^] # Re: Gni ? tty ?
Posté par julienSOS . Évalué à 1.
# Quelques urls (en anglais)
Posté par zeanmi . Évalué à 3.
http://digilander.libero.it/robang/rubrica/serial.htm
http://en.wikibooks.org/wiki/Serial_Programming:Serial_Linux
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.