in serielle Schnittstelle schreiben

15/03/2008 - 12:39 von Richard Müller | Report spam
Guten Tag,
ich finde leider nirgends, wie ich auf die serielle Schnittstelle schreiben
kann. Die serielle Schnittstelle wird ja wie eine Datei behandelt
(/dev/ttyS0 unter Linux).
program display;
var ch: char;
var disp: file of integer; {oder text oder was auch immer}
begin
assign(disp, '/dev/ttyS0');
reset(disp);
ch := 'X';
write(disp, ch);
close(disp);
end.
Mir ist nicht klar, welcher Dateityp hier verlangt wird. (Baudrate etc. sind
im System per stty bereits eingestellt).

Eigentlich eine ganz banale Sache, aber ich kriegs nicht hin.
Richard
Richard Müller - r-dot-mueller-at-oeko-sorpe-dot-de
 

Lesen sie die antworten

#1 Sieghard Schicktanz
15/03/2008 - 20:25 | Warnen spam
Hallo Richard,

Du schriebst am Sat, 15 Mar 2008 12:39:01 +0100:

ich finde leider nirgends, wie ich auf die serielle Schnittstelle
schreiben kann. Die serielle Schnittstelle wird ja wie eine Datei
behandelt (/dev/ttyS0 unter Linux).



Eben - das sollte also implizieren, daß Du auf die serielle Schnittstelle
wie auf eine Datei schreiben kannst.

program display;
var ch: char;
var disp: file of integer; {oder text oder was auch immer}



Naja, der Typ hàngt davon ab, was Du damit machen willst...

begin
assign(disp, '/dev/ttyS0');
reset(disp);
ch := 'X';
write(disp, ch);



... aber _so_ wird das nicht mal durch den Compiler gehen. Dein File ist
vom Typ "FILE OF integer", Du gibst aber eine char-Variable an write - das
passt nicht.
Wenn Du Textzeichen (einzeln oder in Rudeln, genannt "Strings", ausgeben
willst, dann mußt Du einen dafür geeigneten File-Typ benutzen. Ich würde
für Dein gepostetes Programm das simple "Text" (oder neuer "Textfile")
vorschlagen. Das hat den Vorteil, daß write dafür auch formatierte Ausgabe
unterstützt.

close(disp);
end.

Mir ist nicht klar, welcher Dateityp hier verlangt wird.



Ein geeigneter halt - wie gesagt, das hàngt primàr davon ab, was Du damit
machen willst.
Üblicherweise ist ein byte-orientierter File-Typ sinnvoll, weil die Daten
ja auch byte-weise über die Leitung gehen. Umfànglichere Datentypen als
Basis verlangen, daß die Gegenstelle das Format kennt und richtig
verarbeiten kann. Da gibt's u.U. richtig "interessante" Problemchen. ];->

(Baudrate etc.
sind im System per stty bereits eingestellt).



Dann sollte das eigentlich trivial sein.
Falls Du aber doch mal die Schnittstellenparameter in Deinem Programm
einstellen willst, könntest Du Dir evtl. mal meine vor làngerer Zeit hier
gepostete Unit "AsynUnit" anschauen. Die müßte eigentlich noch irgendwo bei
dem datensammelnden Moloch im internet 'rumliegen. Falls nicht, kann ich die
gern nochmal posten, ich möchte das aber nicht einfach ungefragt hier
'reinkippen...

-
(Weitergabe von Adressdaten, Telefonnummern u.à. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder àhnlichem)
Mit freundlichen Grüßen, S. Schicktanz

Ähnliche fragen