Bonjour,
Les 1ers tests effectués hier sur la machine sont catastrophiques ...
pour pouvoir lire ce que la machine envoie je suis obligé d'ouvrir GKTerm et de le paramétrer:
port: ttyUSB0 vitesse: 1200 bauds parité: paire (even)
nb bits : 7 bit de stop: 1
La seule sauvegarde " correcte " (forme correcte mais caractères inconnus) est celle qui doit être lancé depuis GKTerm.
Les scripts que j'ai fait bloquent le process.
Du coups, est-il possible de faire un script capable de définir les mêmes paramètres que GKterm ?
Récupération de données RS232 par USB
Modérateur : Francois
Re: Récupération de données RS232 par USB
Je viens de voir que "screen" me permet de m'afficher toutes les données venant de la machine sans soucis.
screen /dev/ttyUSB0 1200,cs7,ixon,ixoff,istrip
Est-il possible de sauvegarder dans un fichier texte ce que screen affiche ?
screen /dev/ttyUSB0 1200,cs7,ixon,ixoff,istrip
Est-il possible de sauvegarder dans un fichier texte ce que screen affiche ?
-
- Raspinaute
- Messages : 735
- Enregistré le : lun. 22 déc. 2014 16:50
- Localisation : 67380 LINGOLSHEIM
Re: Récupération de données RS232 par USB
Bonjour,
Peux-tu nous dire (ou donner un lien) quel capteur utilises-tu ?
Si des caractères s'affichent mais ne sont pas lisibles c'est soit que :
- le paramétrage du port série n'est pas le bon (nombre de bits...)
- le capteur envoie des caractères non imprimables (c'est pas du texte).
A 1200 bs, un simple cat du port USB suit sans problème.
Je viens de vérifier en branchant un vieux récepteur GPS (souris) qui envoie ses trames MNEA à 4800 bs, il n'y a aucun problème:
1) dmesg après branchement du périphérique:
je récupère le ttyUSB0 pour faire un simple cat (bien vérifier les droits sur le port):
Je te le redis, 1200 bs c'est une vitesse d'escargot qui ne doit poser aucun problème de lecture, même à un shell.
Nota:
1) pour répondre en partie à ton post suivant, oui il est possible de paramétrer le port série dans un shell. il faut utiliser la commande stty.
2) normalement, toute commande native ou installée après coup a une entrée dans le manuel en ligne qui rapelle sa fonction, des options et, sa syntaxe et donne des exemples. Tu peux tester :
man stty
et
man screen
Sylvain.
Peux-tu nous dire (ou donner un lien) quel capteur utilises-tu ?
Si des caractères s'affichent mais ne sont pas lisibles c'est soit que :
- le paramétrage du port série n'est pas le bon (nombre de bits...)
- le capteur envoie des caractères non imprimables (c'est pas du texte).
A 1200 bs, un simple cat du port USB suit sans problème.
Je viens de vérifier en branchant un vieux récepteur GPS (souris) qui envoie ses trames MNEA à 4800 bs, il n'y a aucun problème:
1) dmesg après branchement du périphérique:
Code : Tout sélectionner
[1463682.343185] usb 1-1.4: new full-speed USB device number 4 using ehci-pci
[1463682.436120] usb 1-1.4: New USB device found, idVendor=067b, idProduct=2303
[1463682.436133] usb 1-1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[1463683.624131] usbcore: registered new interface driver usbserial
[1463683.624151] usbcore: registered new interface driver usbserial_generic
[1463683.624168] usbserial: USB Serial support registered for generic
[1463683.637034] usbcore: registered new interface driver pl2303
[1463683.637056] usbserial: USB Serial support registered for pl2303
[1463683.637082] pl2303 1-1.4:1.0: pl2303 converter detected
[1463683.639774] usb 1-1.4: pl2303 converter now attached to ttyUSB0
Code : Tout sélectionner
sylvain@hpux:~$ cat /dev/ttyUSB0
$GPGGA,000623.976,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*79
$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05
$GPRMC,000623.976,V,0000.0000,N,00000.0000,E,0.000000,,101102,,*06
$GPGGA,000624.976,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0$GPGGA,001650.938,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*76
$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05
$GPRMC,001650.938,V,0000.0000,N,00000.0000,E,0.000000,,101102,,*09
$GPGGA,001651.938,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*77
$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05
$GPGSV,1,1,01,25,00,000,00*4F
$GPRMC,001651.938,V,0000.0000,N,00000.0000,E,0.000000,,101102,,*08
$GPGGA,001652.938,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*74
$GPGSA,A,1,,,,,,,,,,,,,50.0,50.0,50.0*05
$GPRMC,001652.938,V,0000.0000,N,00000.0000,E,0.000000,,101102,,*0B
$GPGGA,001653.937,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,0.0,M,0.0,0000*7A
Nota:
1) pour répondre en partie à ton post suivant, oui il est possible de paramétrer le port série dans un shell. il faut utiliser la commande stty.
2) normalement, toute commande native ou installée après coup a une entrée dans le manuel en ligne qui rapelle sa fonction, des options et, sa syntaxe et donne des exemples. Tu peux tester :
man stty
et
man screen
Sylvain.
Re: Récupération de données RS232 par USB
La machine utilisé est un appareil ayant pour charge de consigner l'état de différents capteur.
Comme vous le dites, la vitesse de transmission ne pause aucun problème, mais lorsque j'utilise la commande cat sur le terminal , il y a réception de caractères spéciaux qui empêchent la bonne lecture .
Du coups quand je copie les données reçues dans un fichier texte, qui par la suite est lue dans l'IHM en tkinter cela pause problème. J'ai essayé de les supprimer ou de les remplacer mais ça ne fonctionne pas.
La meilleure solution que j'ai trouvé pour l'instant est de passer par screen.
il a l'avantage de pouvoir être lancé par un .sh, il est paramétrable pour le nombre de bit et la parité et son plus gros avantage c'est qu'il n'affiche pas les caractères posant problème.
J'ai donc essayé de recopier dans un fichier texte tout ce qui est affiché sur le screen mais mes tentatives ont pour l'instant toutes échoués ...
script -a -t 0 fichier.txt screen /dev/ttyUSB0 1200,cs7,ixon,ixoff,istrip
-a : ajouter le fichier de sortie
-t 0 : temps entre l'écriture de fichier de sortie est de 0 secondes, il est donc mis à jour pour chaque nouveau caractère
fichier.txt : fichier de destination
screen /dev/ttyUSB0 1200,cs7,ixon,ixoff,istrip: source de recopiage
s'il y a d'autres commandes offrant la possibilité de recopier dans un fichier tout ce qui est affiché par screen, je suis preneur
Comme vous le dites, la vitesse de transmission ne pause aucun problème, mais lorsque j'utilise la commande cat sur le terminal , il y a réception de caractères spéciaux qui empêchent la bonne lecture .
Du coups quand je copie les données reçues dans un fichier texte, qui par la suite est lue dans l'IHM en tkinter cela pause problème. J'ai essayé de les supprimer ou de les remplacer mais ça ne fonctionne pas.
La meilleure solution que j'ai trouvé pour l'instant est de passer par screen.
il a l'avantage de pouvoir être lancé par un .sh, il est paramétrable pour le nombre de bit et la parité et son plus gros avantage c'est qu'il n'affiche pas les caractères posant problème.
J'ai donc essayé de recopier dans un fichier texte tout ce qui est affiché sur le screen mais mes tentatives ont pour l'instant toutes échoués ...
script -a -t 0 fichier.txt screen /dev/ttyUSB0 1200,cs7,ixon,ixoff,istrip
-a : ajouter le fichier de sortie
-t 0 : temps entre l'écriture de fichier de sortie est de 0 secondes, il est donc mis à jour pour chaque nouveau caractère
fichier.txt : fichier de destination
screen /dev/ttyUSB0 1200,cs7,ixon,ixoff,istrip: source de recopiage
s'il y a d'autres commandes offrant la possibilité de recopier dans un fichier tout ce qui est affiché par screen, je suis preneur
Re: Récupération de données RS232 par USB
Bonjour,
Je ne sais pas si mon message trouvera quelqu'un mais je travaille sur un sujet similaire ( recuperation de données sur port USB a retranscrire/stocker dans un fichier texte) et je serais interessée de savoir comment vous vous y etes pris? Merci a vous
Je ne sais pas si mon message trouvera quelqu'un mais je travaille sur un sujet similaire ( recuperation de données sur port USB a retranscrire/stocker dans un fichier texte) et je serais interessée de savoir comment vous vous y etes pris? Merci a vous