Re: Ansteuerung einer seriellen Schnittstelle

From: Bernd Walter <ticso(at)cicely8.cicely.de>
Date: Sun, 24 Mar 2002 11:35:17 +0100

On Sun, Mar 24, 2002 at 04:45:16AM +0100, Harold Gutch wrote:
> Hi,
>
> ich habe letztens ein serielles Kabel fuer das Nokia 6210 in die
> Haende bekommen und wollte nun ein wenig damit rumspielen. Das
> Telefon versteht AT-Befehle und ist m.W. komplett darueber
> ansteuerbar, das ganze sollte also nicht allzu wild sein. Jetzt
> habe ich also ein kleines C-Programm zusammengehackt, das im
> Prinzip nichts anderes macht als ein "ATI\r" an die Schnittstelle
> an der das Geraet haengt zu schicken, und danach mit einem
> read() Daten von derselben zu lesen - und an dieser Stelle
> blockt das Programm, sprich es scheinen keine Daten zum Lesen
> vorzuliegen. Aendere ich das ganze allerdings leicht so dass ich
> einen zweiten Prozess forke, den zuerst (blockend) read()en lasse,
> dann Daten schreibe, so funktioniert es wie erwartet. Habe ich
> jetzt das Konzept von seriellen Schnittstellen nicht verstanden,
> oder ist da was anderes kaputt?

Die klassischen Programme wie tip und cu starten auch einen eigenen
Prozess für jede Richtung.
Heutzutage kann man das aber mit non-blocking I/O oder pthreads
erledigen.
In deinem Programm fehlt auch die Prüfung auf retval -1 und damit
der Support für EINTR beim read und write.

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso(at)cicely.de         Usergroup           info(at)cosmo-project.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 24 Mar 2002 - 11:41:38 CET

search this site