Entwickler-Ecke

Windows API - Paralellport


linux-freak-gf - Di 09.09.03 18:16
Titel: Paralellport
Hi Leute
Wie kann ich unter Delphi den Paralellport ansprechen und auf jeden einzelnen Pin zugreifen??????




Linux


MSCH - Di 09.09.03 19:11

Imho geht das unter windows nur mit CreateDC(). Ob du da allerdings einzelne Pins ansprechen kannst, weiss ich nicht.
grez
msch


digi_c - Mi 10.09.03 11:49

Es gab auch noch nen Aufruf da konntest du gezielt Bytes schreiben und somit die Pins ansprechen (Byte=8 dann Pin1 , Byte=16 dann P1+P2)...
Ich gug nochma nach wie der hieß...


Andreas Pfau - Mi 10.09.03 17:49

Hallo,

mein Spezialgebiet.

1) Du brauchst eien spezielle Datei, denn unter NT geht das NICHT. Ich empfehle: SaDirectPort, findest du irgendwo bei Torry's.

2) Jeden Pin? NEIN!!!!! Du hast:
- Eingänge
- Daten-Ausgänge
- Steuer-Ausgänge

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
Buchse außen
--------------------------------------------------------
\  13  12  11  10  9   8   7   6   5   4   3   2   1   /
 \                                                    /
  \  25  24  23  22  21  20  19  18  17  16  15  14  /
   --------------------------------------------------

 Funktion       | E/A | Pin   | Bit | Register | Inv
 ---------------+-----+-------+-----+----------+-----
 Strobe         | A   | 1     | 0   | Control  | *
 Datenbit 0     | A   | 2     | 0   | Daten    |
 Datenbit 1     | A   | 3     | 1   | Daten    |
 Datenbit 2     | A   | 4     | 2   | Daten    |
 Datenbit 3     | A   | 5     | 3   | Daten    |
 Datenbit 4     | A   | 6     | 4   | Daten    |
 Datenbit 5     | A   | 7     | 5   | Daten    |
 Datenbit 6     | A   | 8     | 6   | Daten    |
 Datenbit 7     | A   | 9     | 7   | Daten    |
 Acknowledge    | E   | 10    | 6   | Status   |
 Busy           | E   | 11    | 7   | Status   | *
 Paper Out      | E   | 12    | 5   | Status   |
 Select         | E   | 13    | 4   | Status   |
 Auto Linefeed  | A   | 14    | 1   | Control  | *
 Error          | E   | 15    | 3   | Status   |
 Reset          | A   | 16    | 2   | Control  |
 Select Printer | A   | 17    | 3   | Control  | *
 Masse          | -   | 18-25 |

Die mit stern sind invertiert.

Der Port LPT1 hat normalerweise die Adresse 888. Wenn das bei dir nicht geht, googeln, die andere Adresse weiß ich nicht mehr.

OK, du kannst also nur auf BESTIMMTE Pins zugreifen. Und die einen geben aus, die anderen lesen ein.

Fragen...?


Adrian - Do 11.09.03 02:05

Servus!

Der LPT-Port ist auch ein von mir bevorzugtes Gebiet. Unter XP verwende ich die IO.dll und habe keine schlechten Erfahrungen gemacht, unter 9x brauchst Du nicht mal das. Im Forum habe ich schon mal was darüber geantwortet, das findest Du mit der Suchfunktion. Weitere Infos sind im Internet bei Jan Axelson (->Google) zu finden, gerade was das bidirektionale Einlesen/Ausgeben bei EPP und ECP betrifft. Falls noch Fragen da sind - einfach posten.

Gruß,

Adrian