Page 2 sur 2

Re: Récupération de données RS232 par USB

Posté : ven. 29 avr. 2016 09:00
par Le_Marius
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 ?

Re: Récupération de données RS232 par USB

Posté : ven. 29 avr. 2016 10:27
par Le_Marius
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 ?

Re: Récupération de données RS232 par USB

Posté : ven. 29 avr. 2016 11:31
par spourre
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:

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
je récupère le ttyUSB0 pour faire un simple cat (bien vérifier les droits sur le port):

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
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.

Re: Récupération de données RS232 par USB

Posté : ven. 29 avr. 2016 12:56
par Le_Marius
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 :)

Re: Récupération de données RS232 par USB

Posté : lun. 10 mai 2021 12:29
par Noudini
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