Re: ^@

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: guilde
Subject: Re: ^@
    Bonjour,

Le 19/02/2017 à 11:45, Michel Karatchentzeff a écrit :
> Bonjour à tous,
>
> J'ai essayé d'appliquer les conseils qui m'ont été donnés, mais je me
> heurte à un autre problème.
> La base de mon programme est
>
> cat /dev/ttyACM0 > toto.txt & PID=$!
> sleep .1m
> kill -HUP $PID
>
> qui me permet de récupérer ce qu'il y a sur le port pendant 6 secondes
> et de le mettre dans le fichier toto.txt. Et ça fonctionne parfaitement.
>
> Mais dès que je veux utiliser ce qu'a proposé Raf, rien ne va plus.
> Que je remplace la première ligne par
>     cat /dev/ttyUSB0 | sed 's/\000//g' >  toto.txt & PID=$!
>     sed 's/\000//' < /dev/ttyUSB0   > toto.txt & PID=$!

>
> ou par d'autres variantes possibles (avec tee), rien ne s'écrit dans
> toto.txt alors que les mêmes commandes fonctionnent avec un fichier
> quelconque remplaçant /dev/ttyUSB0.
>
> Et ce n'est pas non plus à cause du \000 que j'ai remplacé sans succès
> par un caractère standard.
>
> Il semble que ce type de redirection soit incompatible avec le port
> série. Et je ne vois pas pourquoi.
>
> L'un d'entre vous aurait-il une idée ?
>
> Merci.
>
> Michel


    Est-ce normal qu'au début du parle de :
/dev/ttyACM0


    puis après tu parles de :
/dev/ttyUSB0


    ?


    Je pense que "sed" et "cat" sont sensibles au caractère de fin de
fichier, qui peuvent éventuellement être envoyés par ton device.


    Solution : écrire un programme (en C, perl, python, autre) qui lit le
flux de données (en ouvrant le /dev/xxxx ), et le fait les traitements
que tu veux.


    Cordialement,


                            Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!