FIN & solution: Communication automatique avec un modem port…

Top Page

Reply to this message
Author: Arnaud Chiaberge
Date:  
To: guilde
Subject: FIN & solution: Communication automatique avec un modem port serie

----- Original Message -----
From: "Henry-Pascal ELDIN" <Henry-Pascal.Eldin@???>
To: "guilde" <guilde@???>
Sent: Thursday, November 29, 2001 11:29 AM
Subject: Re: Communication automatique avec un modem port serie


> > > il y a aussi chat !
> >
> >
> > D'apres ce que j'ai pu lire du man de "chat", je ne vois pas comment le
> > faire communiquer avec le port serie. J'ai l'impression que le binaire
> > "chat" seul ne peux pas communiquer avec un quelconque port, il se

contente
> > d'envoyer des chaines sur sa sortie standard et de lire en retour des
> > chaines sur son entree standard.
> > C'est la raison pour laquelle je l'ai toujours vu utilise (j'appelle ca
> > "wrapper") *dans* des soft tels que pppd qui, lui, ouvre le port serie,

puis
> > ensuite lance chat pour l'initialisation du modem, les I/O de chat etant
> > dans ce cas redirigees sur le port serie par pppd.
> >
> > Je peux me tromper dans mon interpretation du fonctionnement de "chat",

si
> > c'est le cas, je serai *vraiment* interesse par la methode permettant de

le
> > faire discuter directement avec le port ttyS0...
> >
> > Merci d'avance pour tout information. La methode consistant a utiliser

un
> > script dans minicom est probablement trop lourde pour ce que je veux

faire.
> >
> > Arno.
> >
> > PS: je suis aussi en train de regarder comment faire cela en C, en
> > recuperant les sources de divers softs qui se connectent au port serie.
> >
>
> chat -f script > /dev/ttyS0
>
> sinon plus direct cat script > /dev/ttyS0


Non, cela ne fonctionne pas. En outre, cette communication n'est pas
bi-directionnelle, et elle ne configure pas le port serie (il y a plusieurs
parametres a configurer, en plus de la vitesse...) .
J'ai auparavant teste plusieurs choses infructueuses dans le genre "chat -f
script > /dev/ttyS0 < /dev/ttyS0", mais c'est hautement inefficace...

Mon script (chat ou autre) a besoin de connaitre les valeurs de retour
renvoye par le modem.

J'ai donc finalement ecrit un prog C, en recuperant des bouts de code des
sources de pppd-2.4.1, qui :

1) Ouvre le port modem (/dev/ttyS0 par exemple)
2) Configure le port serie (vitesse, parametres de controle etc...beaucoup
de chose que ne fait PAS "chat" seul)
3) Fork un process externe qui lance un script de type "runscript" (les
memes que pour minicom), en redirigeant les I/O du prog externe sur le port
serie, cette partie etant la copie d'une fonction de pppd. Sur ce point au
moins, j'avais vu juste quand a la maniere de proceder de pppd.

(il faudrait d'ailleur que je pense a gerer un lock sur le port serie, si ca
n'est pas fait automatiquement, et a passer plusieurs parametres,
actuellement en dur dans le source C, via des options de la ligne de
commande...mais bon...)

Cela me permet de changer facilement les parametres dynamiques (numero a
composer, message SMS a envoyer etc...) puisqu'ils sont dans un script
externe au prog C.

Je tiens le source C et le script "runscript" a disposition de ceux que ca
interesse.

Merci a ceux qui m'ont repondu pour leur idees.

Arno.