France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
23 592 membres enregistrés - 1 913 482 posts - 99 188 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Script shell + C sur port rs232...
15 connectés(record : 272 le 28 octobre 2008 - 04 h 23)

Vous devez vous connecter pour répondre au topic.
Script shell + C sur port rs232...

Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 05 novembre 2002 - 15 h 51 m 43 s
Je fais un kill dans un script et je veux pas voir l'affichage du kill mais

kill -9 PID > /dev/null

ne marche pas kkn a une idée pour rediriger l'affichage ?




- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 06 novembre 2002 - 12 h 19 m 19 s
essaye

kill -9 $PID >/dev/null 2>&1

ca redirige stdout vers /dev/null, et stderr vers stdout (donc /dev/null)
mais kill -9 c'est gore, utilise plutot le SIGHUP... (kill -15)




Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 06 novembre 2002 - 22 h 11 m 26 s

Le 06/11/2002 à 12h19 , tempo a écrit:
essaye

kill -9 $PID >/dev/null 2>&1

ca redirige stdout vers /dev/null, et stderr vers stdout (donc /dev/null)
mais kill -9 c'est gore, utilise plutot le SIGHUP... (kill -15)


lol vi je sais mais je fais pas dans le detail :)

J'y avais pensé mais pas cumulé avec le /dev/null donc j'ai pas testé la redirection, mais demain promis j'essaye !!



- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 07 novembre 2002 - 16 h 36 m 44 s
Alors, ca kill sec ?




Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 07 novembre 2002 - 19 h 29 m 41 s
nop marche pas je vais devoir fair un prog en C pour chopper les chaines de caracteres à la volée, si qqn a ca (au moins la lecture du port...)

Merci !!!



- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


Novocaine
Novo pour les intimes...

Messages : 3 593
Inscrit le 16/04/02
Ville : Villeurbannne
Non connecté
  Posté le 07 novembre 2002 - 20 h 37 m 53 s
G bien toutes les focntions essentielles de com rs232 .... mais ce sont les fonction de l'api win 32 ...

Or je pense ke tu est sous pingouin ... me trompe-je ?



Comme le dit si bien Eels
Novocaine for the soul

-------------------------------------
Le punch de Dohko, moi j'aime ça :D ! ^_^


mamouth
Hell ain't a bad place to be

Messages : 1 168
Inscrit le 07/01/02
Ville : Echirolles
Non connecté
  Posté le 07 novembre 2002 - 20 h 42 m 59 s
je pense ke oui puisqu'on est dans la section Linux :wink:




Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 07 novembre 2002 - 20 h 52 m 48 s
voui Pingouin :wink: !!



- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 07 novembre 2002 - 21 h 06 m 45 s
J'ai du mal a suivre...

avec la redirection >/dev/null 2>&1 ca ne fonctionne pas ?
ton stdout est un port serie ?
ou alors c'est ton soft qui log sur ce port, en plus du stdout, et qui y transmet des messages qd tu le kill ?


Pour le port serie, tu fais les settings (en shell) avec stty.
egalement setserial
La commande tty te permet de determiner le tty du stdout (de ton shell)

ensuite, les ports serie sont /dev/ttyS0, /dev/ttyS1, ...
tu accedes au port serie en C en ouvrant le device comme un fichier (fopen)
Tjrs en C, la config d'un device (vitesse, parite pour un tty) se fait avec ioctl

j'sais pas si ca va t'aider...
t'as plus qu'a lire les man et regarder aux alentours.





Novocaine
Novo pour les intimes...

Messages : 3 593
Inscrit le 16/04/02
Ville : Villeurbannne
Non connecté
  Posté le 07 novembre 2002 - 21 h 14 m 44 s

Le 07/11/2002 à 20h42 , mamouth a écrit:
je pense ke oui puisqu'on est dans la section Linux :wink:
:x On est aussi ds la partie Programmation !



Comme le dit si bien Eels
Novocaine for the soul

-------------------------------------
Le punch de Dohko, moi j'aime ça :D ! ^_^


Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 07 novembre 2002 - 21 h 34 m 18 s

Le 07/11/2002 à 21h06 , tempo a écrit:
J'ai du mal a suivre...

avec la redirection >/dev/null 2>&1 ca ne fonctionne pas ?
ton stdout est un port serie ?
ou alors c'est ton soft qui log sur ce port, en plus du stdout, et qui y transmet des messages qd tu le kill ?


Pour le port serie, tu fais les settings (en shell) avec stty.
egalement setserial
La commande tty te permet de determiner le tty du stdout (de ton shell)

ensuite, les ports serie sont /dev/ttyS0, /dev/ttyS1, ...
tu accedes au port serie en C en ouvrant le device comme un fichier (fopen)
Tjrs en C, la config d'un device (vitesse, parite pour un tty) se fait avec ioctl

j'sais pas si ca va t'aider...
t'as plus qu'a lire les man et regarder aux alentours.



Je m'explique !!

#en fait j'utilise un facon batarde de lire le port RS232 du type

cat < /dev/ttyS0 > fichier &

#puis ce fichier je le copie

cp fichier fichier2

que j'epure avec sed et tr

car je recois des caracteres sur une ligne avec un formatage type VT100 pour les caracteres de controle

et en fait je voulais killer puis redemarrer le processus de tps en tps dans ma boucle bourrée de if pour detecter des chaines de caracteres precises...

maintenant je pense plus pour l'idee de scanner en permanance en C le RS232 et de recuperer a la volée les chaine qui m'interessent de les stocker dans un fichier texte (donc acces seulement dans ce cas a un fichier et plus en permanence) qui lui sera balayé par un script pour balancer un mail si mes chaines sont trouvées...

c une remontée d'alarme en fait...



- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 07 novembre 2002 - 23 h 29 m 00 s
Ok, C + clair...

tu peux le faire en C, en ouvrant le fichier /dev/ttyS0 (ou le ttySx sur lequel est ton periph) avec fopen, et en lisant char par char le flux via une boucle, et concatener dans une chaine que tu peux ensuite traiter:
while(!feof(..)){... fread( ...) }

en shell, ca risque d'etre difficile, tu peux essayer
read ligne < /dev/ttySx
puis traitement sed/awk sur $ligne
avec une boucle tout autour...

en Perl ca doit etre facilement jouable:

#!/usr/bin/perl -w
use strict;
open SERIAL,"</dev/ttySx";
BOUCLE: while (my $ligne = <SERIAL>){
# mettre ici les traitements sur $ligne
print $ligne;
next BOUCLE if $ligne ...
...
}

Par contre en perl il va falloir maitriser un minimum les regexp


Allez, courage !!!




tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 07 novembre 2002 - 23 h 33 m 43 s

cat < /dev/ttyS0 > fichier &


Oh !!!

cat /dev/ttyS0 > fichier & devrait suffir (sans le "< ")

Autre idee, y'a aussi moyen de "piper"

cat /dev/ttyS0 | sed (expression reguliere avec un match pour detecter l'alarme)




Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 07 novembre 2002 - 23 h 33 m 47 s
Merci :wink:

En fait j'ai deja un script qui marche mais c une usine a gaz !!
et je passe par deux fichier...

Donc jva faire un truc plus propre...



- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 07 novembre 2002 - 23 h 39 m 18 s
je crois pas que le pipe marche j'avais fais des tonnes d'essais et ya des truc bizarres...



- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


tempo
Zen

Messages : 2 177
Inscrit le 14/09/02
Ville : Grenoble (SMH)
Non connecté
  Posté le 07 novembre 2002 - 23 h 51 m 58 s

Le 07/11/2002 à 23h39 , Master a écrit:
je crois pas que le pipe marche j'avais fais des tonnes d'essais et ya des truc bizarres...



si tu recuperes des caracteres de controle ca doit faire un joyeux merdier a traiter dans sed...
de meme, cat doit fonctionner avec un buffer donc tu recevras des donnees que lorsque le buffer sera rempli, ce qui n'est pas evident avec le tty... (a moins de le configurer), et sed fera les traitement ligne par ligne (la aussi, c'est pas gagne et ca va dependre de ce que crache le periph...)




Master
Si si je suis dedans !!

Messages : 1 151
Inscrit le 08/11/01
Ville : Villefontaine
Non connecté
  Posté le 07 novembre 2002 - 23 h 58 m 16 s

Le 07/11/2002 à 23h51 , tempo a écrit:

Le 07/11/2002 à 23h39 , Master a écrit:
je crois pas que le pipe marche j'avais fais des tonnes d'essais et ya des truc bizarres...



si tu recuperes des caracteres de controle ca doit faire un joyeux merdier a traiter dans sed...
de meme, cat doit fonctionner avec un buffer donc tu recevras des donnees que lorsque le buffer sera rempli, ce qui n'est pas evident avec le tty... (a moins de le configurer), et sed fera les traitement ligne par ligne (la aussi, c'est pas gagne et ca va dependre de ce que crache le periph...)



en fait j'ai un TR et 5 sed, le port tty est entierement configuré pour mes besoin (je passe toutes les otion en revue a partir d'un sane...

je recupe les données en permanence et c vrai que c le merdié mais ca marche, si tu veux je t'en enverrais un bout...



- www.master-inside.com -
------------------------------
Un bon sportif est un sportif mort (P. Desproges)


Page genérée en 0.3074 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory