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