mikrocontroller.net

Forum: PC-Programmierung Freepascal: Serial Port


Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von Turbo Pascal DOS kommend, steige ich gerade auf Freepascal Windows 
um. Mein Problem ist nun, daß ich keine Unit für die serielle 
Schnittstelle habe. Hat jemand eine entsprechende Unit oder einen Link. 
Das Internet gibt erstaunlicherweise nichts her?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiere es doch einfach mal mal mittels Datei-Zugriffen auf die 
Filenamen "COM1", "COM2", "LPT1" etc...

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wuerd ich mir genau nicht antun. Dafuer gibt es Libraries. Probier 
mal die TPApro, zu finden auf sourceforge.net.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das wuerd ich mir genau nicht antun.

Wiese nicht! Es ist doch elegant, mit Dateizugriffs-Funktionen auch auf 
Schnitstellen zuzugreifen! Schnittstelle öffnen, schliessen, schreiben, 
lesen...

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Von der Zeischrift 'Toolbox' gibt es eine sehr umfangreiche Lib. ist 
eigentlich für Delphi. Sollte aber auch für Freepascal gehen.

MfG Spess

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für eure Beiträge und Hinweise. TPApro & Toolbox werde ich 
suchen & testen. Der Zugriff über die Datei gefällt mir gut. Das Problem 
ist nur, daß ich die Parameter nicht einstellen kann.

Autor: Dirk Fellenberg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SynaSer

http://synapse.ararat.cz

This is library for blocking communication on serial ports. It is 
non-visual class.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Dirk für den Link.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Serialport als Blockdevice (Datei) ist etwas das Duemmste, das man 
sich vorstellen kann. Aber Streamdevices gab es damals noch nicht.

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mini Troll schrieb:
> Ein Serialport als Blockdevice (Datei) ist etwas das Duemmste, das man
> sich vorstellen kann. Aber Streamdevices gab es damals noch nicht.

was in aller Welt ist damals? vor dem 2. Weltkrieg?

Schon CP/M hat zwischen Char und Block-Devices unterschieden und MSDOS 
sowieso. Und ein Dateizugriff hat auch ganz und garnichts damit zu tun. 
Oder kümmerst du dich etwa darum, ob die Sektoren auf einer Platte 512 
oder 1024 Bytes haben? Man kann eine beliebige Anzahl Bytes sowohl auf 
die Platte schreiben als auch auf COMx oder LPTx, und das schon sehr 
sehr lange.

Gruss Reinhard

Autor: Sebastian Günther (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab die serial-Unit von Free Pascal für Unix vor einiger Zeit für 
ein Projekt schon auf Win32 portiert, wenn ein synchroner Zugriff reicht 
(z.B. über einen Thread)... Wir haben's nur immer noch nicht geschafft, 
die Windoof-Version mal offiziell zur RTL zu packen, v.a. weil die 
Implementierung nicht 100% vollständig ist, verglichen mit der 
Unix-Version.
Bei Bedarf kurz melden (sg@areca.de)
Die ist halt wesentlich leichtgewichtiger als Synapse & Co.


Gruß,
Sebastian
(Original-Autor der Unix-Version)

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk Fellenberg schrieb:
> SynaSer
>
> http://synapse.ararat.cz
>
> This is library for blocking communication on serial ports. It is
> non-visual class.

Mini Troll schrieb:
> Ein Serialport als Blockdevice (Datei) ist etwas das Duemmste, das man
> sich vorstellen kann. Aber Streamdevices gab es damals noch nicht.

äh, "blocking" mit "block" verwechselt?

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>äh, "blocking" mit "block" verwechselt?

Nein. Dateien sind doch immer Block devices. Nein ?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein
Dateien sind keine Devices, also auch keine block devices.
Vielmehr liegen Dateien in einem Dateisystem, das wiederum
auf einem block device untergebracht ist.

Ein block device ist eines, welches nicht byteweise, sondern
nur in Form von Sektoren, Clustern etc. angesprochen werden kann.
Dateien dagegen können auch zeichenweise gelesen und geschrieben
werden. Die Umsetzung dazwischen macht dann das Dateisystem bzw.
dessen Treiber im OS, soweit es sich tatsächlich um reale Dateien
handelt. Um die geht es hier aber doch eh nicht, sondern es geht
um einen COM-Port, der nie auf einem block device liegt und nur
wie eine Datei (zeichenweise) angesprochen wird.
Mit Blöcken hat das irgendwie nichts zu tun, oder habe ich etwas
übersehen?

Autor: Gerry E. (micky01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Blocking meint in diesem Kontext lediglich, dass ein lesender Prozess 
angehalten wird, bis Daten an der Schnittstelle angekommen sind.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.