Pages : 1
#1 Le 29/10/2008, à 18:42
- damien92
traitement donné du port série
bonjour,
je dois réaliser un script qui extrait l'heur provenant d'une liaison série (1 trame de la même forme toutes les secondes)
puis la comparer avec une autre trame provenant d'un autre port série.
je réussi à extraire l'heur avec cut mais cut ne fini jamais puisque que le fichier qui es /dev/ttyS0 est infini.
je veu traiter que la dernier ligne puis enregister le resultat dans une variable et ensuite faire la comparaison afficher et recommencer.
voici le code:
#!/bin/sh
ls /dev | grep ttyUSB
#choix du port
port=$(zenity --list \
--title="Choisier le port USB" --radiolist --column="" --column="port" \
true ttyUSB0 \
false ttyUSB1 );
echo port choisi : $port;
#configuration du port
stty -F /dev/ttyS0 ispeed 4800
stty -F /dev/$port ispeed 9600
echo port serie
stty -F /dev/ttyS0
echo port $port
stty -F /dev/$port
cut -c 2-7 /dev/$port #la ca bloque.
merci
Hors ligne
#2 Le 30/10/2008, à 09:09
- damien92
Re : traitement donné du port série
salut,
j'ai essayer différente méthode mais la derniere ne marche pas le processus est killé et ne renvoie rien a part killed.
#!/bin/sh
ls /dev | grep ttyUSB
offgps=14;
#choix du port
port=$(zenity --list \
--title="Choisier le port USB" --radiolist --column="" --column="port" \
true ttyUSB0 \
false ttyUSB1 );
echo port choisi : $port;
#configuration du port
stty -F /dev/ttyS0 ispeed 9600
#stty -F /dev/$port ispeed 9600
echo port serie
stty -F /dev/ttyS0
echo port $port
#stty -F /dev/$port
on=1
while [ 1 ]; do
#récupération de l'heur de la BT
heurbt=$(cut -c 2-7 /dev/ttyS0 )
pidcut=$(ps -A | grep cut | cut -c 2-5 | sed '1!d');
sleep 0.5;
echo $heurbt;
kill -9 $pidcut
#heurgps=$(cat /dev/$port | grep GPGGA | cut -c 8-13 | sed '1!d') #recupére l'heur depuis gps avec trame GGA
#>tempbt;
echo $heurgps;#>tempgps;
#retard=$(($heurbt-$heurgps));
echo $retard;
sleep 1;
#clear
echo "taper ctrl-C pour quitter"
done
Hors ligne