Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/05/2009, à 09:58

Zed973

Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Salut
J'utilise deux programmes avec mon port série.

Le premier programme un microcontroleur.
Le second est "screen" avec lequel j'essaie de communiquer avec la "puce".

Le probléme est qu'aprés avoir utilisé

screen /dev/ttyS0 9600

je ne peux plus utiliser le premier programme (le programmateur) : il me dit que le port est occupé, même si le programme screen est fermée. Il faut carrément un redémarrage, une déconnexion/connexion ne suffit pas a "clarifier" mont port série.

Que puis je faire?

Merci

Dernière modification par Zed973 (Le 01/06/2009, à 10:37)


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#2 Le 25/05/2009, à 16:11

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Pas d'idées???:/


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#3 Le 01/06/2009, à 10:36

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Une autre approche du problémé : d'autres programmes me disent que je n'ai plus le driot d'utiliser le port serie

Achaque fois j'ai utulisé "screen" avant"..:(:(


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#4 Le 01/06/2009, à 11:29

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

J'avance doucement
je découvre le programme setserial

zed@direct:~$ sudo setserial -g /dev/ttyS0
[sudo] password for zed: 
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

Qui a une idée pour le "fermer"?


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#5 Le 01/06/2009, à 14:48

gilbert

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Salut,

essaies de compiler et exécuter ça...

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

int main(int argc, char* argv) {
        int fd;
        fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NONBLOCK);
        if (fd < 0) {
                perror("/dev/ttyS0");
                exit(1);
        }
        close(fd);
        return 0;
}

Simplement moi-même..

Hors ligne

#6 Le 02/06/2009, à 16:37

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Merci
C'est sensé faire quoi, fermer mon port??


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#7 Le 02/06/2009, à 18:46

gilbert

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Salut,

oui ça ne fait rien d'autre que d'ouvrir et fermer le port... si ça ne fonctionne pas.. alors tu as un programme qui maltraite ton port série :-) Sinon c'est simplement un problème de configuration dans ton screen ou ailleurs...


Simplement moi-même..

Hors ligne

#8 Le 02/06/2009, à 18:47

0xdeadbeef

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

On dirait que le programme screen rend la main en laissant le port série dans une mauvaise config matérielle.
Je pense aux lignes de contrôle de flux RTS/CTS/DTR/DSR.

Tu pourrais utiliser des ioctl pour examiner l'état de ces lignes, pour ensuite les forcer à ce qui te convient.

#include <unistd.h>
#include <termios.h>
.
.

int fd = open ("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY | O_NONBLOCK);

int status;
ioctl (fd, TIOCMGET, &status);

.
.

Dans status tu récupéreras l'état des lignes.

Utilise des masques pour récupérer les états individuels (et les visualiser) dans les deux cas distincts:
- un programme utilisant /dev/ttyS0 proprement vient de rendre la main
- le programme screen vient de rendre la main

Ensuite TIOCMSET pour affecter les états..

Tu n'as pas dit si tu avais accès au code du programme screen (et donc à sa modification). Tu peux préciser stp?

#9 Le 18/07/2009, à 15:05

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Salut gilbert

zed@zed-desktop:~/Bureau/c/programmation$ ./testserie
/dev/ttyS0: Device or resource busy

Je ne sias qui bloque.
Je vais essayer le programme d'0xdeadbeef.
Merci les gars...


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#10 Le 19/08/2009, à 23:42

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Tu n'as pas dit si tu avais accès au code du programme screen (et donc à sa modification). Tu peux préciser stp?

Au fait : non. J'execute screen depuis un terminal.


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#11 Le 04/12/2009, à 00:05

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Svp , c'est quoi :

TIOCMSET

Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne

#12 Le 26/01/2023, à 16:45

tuxonrub

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

pkill screen 

dans un terminal (juste tuer ton screen)

tu peux tester et mettre résolu smile
Buno

Hors ligne

#13 Le 26/01/2023, à 16:53

xubu1957

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Bonjour,

Réponse pour une demande de 2009 ! hmm


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

Hors ligne

#14 Le 13/02/2023, à 22:31

Zed973

Re : Port série occupé aprés utilisation de "screen /dev/ttyS0" :(

Poo, vous me faites rajeunir!!!!


Linux depuis 2007.   Ubuntu Mate 23.10
Ravi.

Hors ligne