LPT poort aanspreken in C++, onder NT

Pagina: 1
Acties:
  • 109 views sinds 30-01-2008
  • Reageer

  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 26-02 09:52
Hallo mensen, ik heb een vraag over hoe je in C++, onder Windows NT/2k/XP een LPT poort aan kan spreken.

In DOS/Windows 9x (was het makkelijk, gewoon naar poort 0x378 (LPT 1, data pins) schrijven, en klaar is Kees! Maar dit zal in Win NT niet werken!
Ik heb gehoord, dat je je LPT poort net zo kan openen als een file, en daar data naar toe kan schrijven en van kan lezen. Maar hoe maak je dan keuze tussen data-pins en status-pins, enz...

Heeft iemand een duidelijk voorbeeld, source sample of een link waar dit wordt uitgelegd?


Alvast bedankt,
DD

  • palloquin
  • Registratie: Juli 2000
  • Laatst online: 29-01-2021
Hoi...

Onder NT kun je idd niet zomaar bij je LPT komen, volgens mij voorkomt de HAL (Hardware Abstraction Layer) dat.

Ik weet dat er progjes zijn die je hierbij kunnen helpen... Maar helaas niet welke... Zoek eens bij www.google.com ofzo...

Goodluck.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 16:25

Creepy

Tactical Espionage Splatterer

Zie mijn sig. Daar kan je ook NTPORTIO downloaden. Dit is een DLL met een driver voor windows NT, zodat je m.bv. de DLL rechtstreekse IO kan doen

Krijg je dus dit soort code:
code:
1
2
port_out(0x0378,1); // pin 1 van de dataport hoog
port_out(0x037a,1); // pin 1 van de controlport LAAG (is inverted dus 0 = hoog en 1 = laag)

:)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 26-02 09:52
...eigenlijk wil ik poorten niet direct aanspreken, want als ik die driver (om poorten/geheugen direct aan te spreken) op het systeem zet, dan kan ieder ander progje daar gebruik van maken en daardoor kan het systeem onstabiel worden!

Ik wil het eigenlijk op een nette manier doen. Met iets van 'fopen("\Device\Paralel0"...' ofzo...

Het moet mogelijk zijn en als het niet anders kan :'(, dan moet het maar direct!


DD

  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Je bent zeker linux gewend? ;)

Verwijderd

Zit er niet in voor je, je kan inderdaad het beste dat NTPORTIO of beter dlportio (constistente api voor 9x en nt based systemen dan) gebruiken, mocht je dit *ECHT* niet willen omdat je bang bent dat andere programma's daar gebruik van gaan maken (al snap ik niet zo waar je bang voor bent) zit er niets anders op dan je eigen kernel mode driver te schrijven die de io voor je afhandeld. mocht je dit willen gaan doen dan is de portio sample in de NT-DDK een aardig vertrek punt denk ik.

  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 26-02 09:52
nee... het is niet zo dat ik linux ben gewend, maar dat is gewoon netter! En ik weet (zeker) dat het mogelijk is, want met seriele poort kan het (dus een object maken die dan van/van je poort leest/schrijft)!

En nog een rede waarom ik geen aparte driver wil installeren om LPT direct aan te spreken is: als iemand anders dit programma wil gaan gebruiken, dan moet die eerst driver installeren en daarna pas dat programma gebruiken!)


DD

Verwijderd

Hmmmz je kan in de NT-DDK kijken hoe een standaard parralelle port driver in elkaar steekt qua IOCTLS en 'm proberen zo te benaderen. Maar ik heb nog nooit een stuk code gezien die dat zo doet en de documentatie is ook vrij karig (buiten de ddk geen) dus je bent pretty much on your own here ;) Ik vind het zelf intresant genoeg om het zo es te proberen omdat je dan inderdaad van die 3th party driver af bent maar maak me een beetje zorgen om de performance dan. Maargoed we zullen zien, een kant en klare korte termijn oplossing heb ik niet voor je sorry :Y)

  • ddofborg
  • Registratie: Augustus 2000
  • Laatst online: 26-02 09:52
ja, i.d.d. je bent niet meer afhankelijk van de drivers van andere... (dus als je een progje maakt voor driver A en iemand anders heeft al driver B op zijn PC staan... en als je drivers A daar installerd werkt het misschien niet meer goed)...

Ik heb een programma dat wel van LPT kan lezen! Maar dat progje is een beetje lomp geprogd en kost wel ff tijd om achter te komen wat er is gedaan...
Als ik niets vind ga ik dat progje bekijken en als daar niets nuttigs in zit ga ik wel met PORTIO driver werken...


Toch bedankt iedereen!


PS: mocht iemand nog iets kunnen vinden daarover, mail dan op ddofborg@yahoo.com

DD
Pagina: 1