LPT1 auslesen
-
Sag mal...
Ich gebe erneut Stichworte, diesmal etwas genauer...
Ist Dein LPT im BIOS auf BI-DIREKTIONAL eingestellt???
Mannomann....
-
Ja ist es. Aber was bringt mir das ?
-
OK, da ich mich etwas abgeregt hab, hier ein Tip: SetCommTimeouts().
-
Oki danke dir. Hab vielleicht auch etwas überreagiert. Begraben wir das Kriegsbeil. Ich versuchs mal.zhx
-
http://www.lvr.com/jansfaq.htm http://groups.google.de/groups?q=SetCommTimeouts+Parallel&hl=de&lr=&ie=UTF-8&oe=UTF-8&selm=36add24f.0%40d2o64.telia.com&rnum=3
-
Danke erstmal für die Links.Hier mein aktueller Code...
t_Handle = CreateFile( "\\\\.\\LPT1", READ_CONTROL | GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if( t_Handle == INVALID_HANDLE_VALUE ) { printf( "Verbindung zu LPT1 konnte nicht hergestellt werden." ); _getch(); exit( 1 ); } else { printf( "Verbindung zu LPT1 hergestellt.\n" ); } if( GetCommTimeouts( t_Handle, &t_CommTimeOuts ) == 0 ) { printf( "GetCommTimeouts fehlgeschlagen : %d\n", GetLastError() ); CloseHandle( t_Handle ); } t_CommTimeOuts.WriteTotalTimeoutMultiplier= 50; t_CommTimeOuts.WriteTotalTimeoutConstant= 2000; t_CommTimeOuts.ReadIntervalTimeout= 50; t_CommTimeOuts.ReadTotalTimeoutMultiplier= 50; t_CommTimeOuts.ReadTotalTimeoutConstant= 50; if( SetCommTimeouts( t_Handle, &t_CommTimeOuts ) == 0 ) { CloseHandle( t_Handle ); }
Leider funktioniert das ganze jetzt immernoch nicht. Das Programm liefert bei GetCommTimeouts immer den Wert 1 ( "Incorrect function" ) zurück und ich habe mal wieder keine Ahnung woran das liegen könnte. Momentan habe ich aber auch nur meinen Drucker an dem Port, kann es daran liegen ?
Wieso steht eigentlich nichts von alledem ( CommTimeouts etc. ) in den FAQ ?
-
Original erstellt von <_Stefan_>:
Wieso steht eigentlich nichts von alledem ( CommTimeouts etc. ) in den FAQ?Mach dir klar, was FAQ bedeutet. Dann weißt du auch, warum.
-
Hat nun irgendwer noch ne Ahnung warum das nun nicht funktioniert ?
-
Schau Dir in der MSDN mal die Themen zur Overlapped - Struktur ( Stichwort Serial Communications )an. Die Funktion ReadFile() kann blockieren, wenn Sie externe Schnittstellen ( LPT, COM ) auslesen soll und nicht in einem eigenen Thread läuft. Wäre übrigens mal ein interessantes Thema für die FAQ !?
-
Original erstellt von forAPI:
**Schau Dir in der MSDN mal die Themen zur Overlapped - Struktur ( Stichwort Serial Communications )an.
**
das ändert aber nichts am eigentlichen problem, sondern macht das programm noch schwieriger zu debuggen
**
Die Funktion ReadFile() kann blockieren, wenn Sie externe Schnittstellen ( LPT, COM ) auslesen soll
**
deswegen ja auch CommTimeouts()...**und nicht in einem eigenen Thread läuft.
**
dann ist eben nicht die applikation blockiert, sondern der Thread...who cares?
Wäre übrigens mal ein interessantes Thema für die FAQ !?
[ Dieser Beitrag wurde am 22.04.2003 um 14:31 Uhr von flosko editiert. ]
-
Original erstellt von forAPI:
Wäre übrigens mal ein interessantes Thema für die FAQ !?Nein! Ich wiederhole: FAQ = "Frequently Asked Questions" = "Häufig gefragte Fragen". Sorry, aber für dieses Thema gibt es keine häufigen Fragen.
-
Nochmal was gefunden:
http://www.winapi.net/winapi/tutorials/serial_direkt.html
HUUPS... geht ned. Naja, dann geh halt auf www.winapi.net und da dann auf Tutorials.[ Dieser Beitrag wurde am 22.04.2003 um 23:50 Uhr von WebFritzi editiert. ]
-
Ach ja, und falls es noch nicht gepostet worden ist:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/communications_resources.asp?frame=true
-
So, nun hab ich mir die ganzen Links angesehen und trotzdem bringt das Programm bei GetCommTimeouts einen Fehler. Was mach ich bloß falsch ?