Re: Zugriff auf seriellen Port

From: Bernd Walter <ticso(at)cicely5.cicely.de>
Date: Mon, 29 Apr 2002 17:49:40 +0200

On Mon, Apr 29, 2002 at 05:20:56PM +0200, Wittig Christoph wrote:
> Hallo,
>
> gibt es eine Anleitung/HowTo/usw., die (moeglichst
> idiotensicher) beschreibt, wie man (in C) unter FreeBSD
> auf die seriellen Schnittstellen zugreift? Im Programmierhandbuch
> hab ich nichts gefunden, was mir weiterhilft.
> Folgendes Problem: An ein Messgeraet soll ueber die
> serielle Schnittstelle ein Befehl gesendet werden, worauf das
> Geraet einen Wert zuruecksendet, der zu empfangen ist. Meine
> jetzige Loesung unter DOS basiert auf der direkten
> Programmierung des Schnittstellenbausteines und einer zyklischen
> Abfrage nach Senden des Befehls (so lange, bis Antwort da oder
> Zeitlimit ueberschritten), was unter einem Multitasking OS
> vermutlich so nicht machbar ist. Ein Hinweis auf ein Programm,
> welches aehnliches tut, waere auch schon hilfreich.

Im wesentlichen:
open(2) - Device öffnen
tcgetattr(3) - Attribute (BPS, Handshake, ...) hohlen
tcsetattr(3) - veränderte Attribute zurückschreiben.
fcntl(2) - Filedescriptor der Serielen auf nonblocking stellen.
write(2) - Befehl schreiben / bei short write Rest nachlegen.
select(2)/poll(2) - auf Ergebniss mit Timeout warten
read(2) - Ergebniss abhohlen / bei short read evtl nochmal warten.

-- 
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 Mon 29 Apr 2002 - 17:49:51 CEST

search this site