Avatar billede maagen Nybegynder
13. maj 2000 - 01:41 Der er 6 kommentarer og
3 løsninger

C++ og printerporten.

Er der nogen der har erfaring med at programmere mod printerporten?

Jeg skal lave et program der kan tage data fra printerporten og registrere disse. Hvad skal jeg gøre for at programmere mod denne?

Jeg benytter windows, og vil gerne have at programmet kan benyttes af "windows 9x" og af "windows NT/ 2000" brugere.

Håber der er nogen der kan hjælpe
Avatar billede svalgaard Nybegynder
14. maj 2000 - 23:53 #1
Du skal bare bruge funktionerne:
outport(), inport()

Med dem skal du bare skrive eller læse på porten.....

en anden ting er at du skal finde ud hvilke registre pin numrene er på....

f.eks. er pin 10 = 80 hex på min....det er ikke sikkert det er på, så slå det op  i en databog....

Dette virker fint til DOS, WIN 95/98....

Du kan ikke få dette til at virke på NT / 2000, da du skal skrive til en driver, istedet......

Hvis du finder en driver der er til at håndterer, så må du gerne maile mig...det er nemlig ikke altid en sådan driver er freeware.......
Avatar billede soepro Nybegynder
15. maj 2000 - 09:03 #2
I C++Builder er inport() og outport() ikke definerede. Jeg har lavet følgende til at styre noget elektronik via LPT-porten:

int inport(int portAddr = 0x378)
{
  WORD portData = 0x00;
  asm
  {
    mov  dx,portAddr
    in  al,dx
    mov  portData,al
  };
  return portData;
} // inport

void outport(int portAddr, WORD portData = 0x00)
{
  asm
  {
    mov  dx, portAddr
    mov  al, portData
    out  dx, al
  };
} // outport

LPT-portens data registrere (som ligger på i den byte som starter på adresse 378h) er i øvrigt triggerede, forstået på den måde at en sat bit bliver stående indtil du selv "sletter" den - eller den forbunde elektronik gør dette elektrisk.
Hvis du skal til at kommunikere med f.eks. en printer eller en anden PC'er via et FastLynx kabel, tror jeg du skal lede efter en ActiveX komponent på Nettet i stedet - så skal man jo tage højde for timingen mellem karaktererne osv.
Avatar billede svalgaard Nybegynder
15. maj 2000 - 09:42 #3
ja......men du laver det jo i "asm".

Dette vil nok ikke virke i NT.....
Avatar billede soepro Nybegynder
15. maj 2000 - 10:04 #4
Nej, der SKAL man skrive (eller finde) en driver, for at få lov at "pille" direkte.
Avatar billede maagen Nybegynder
20. maj 2000 - 10:20 #5
Jeg har ikke alt for megen tid til at få programmeret - men svarene ser lovende ud!

Jeg uddeler pointene så snart jeg har fået det til at virke!

PS. Jeg har aldrig lavet en driver - hvordan gøres det? Og hvordan programmerer jeg så den udnyttes?

Kan man lave en driver til både win98, WinNT & win2K, så det samme program kan bruges på alle styresystemerne?
Avatar billede tuxen Nybegynder
29. maj 2000 - 17:16 #6
Du skal bruge windows 32 API, SDK hjælpefilen kan hentes på microsofts side. Der kan du kigge under afsnittet I/O. Du skal så foretage nogle initialiseringer af strukturer, og dernæst åbnes porten. Timing kan du også styre via API´et.
Det er det smarteste at bruge API´et da det skriver direkte til windows egen medfølgende driver til styring af dine porte !
Avatar billede soepro Nybegynder
30. maj 2000 - 09:28 #7
tuxen >> lyder fedt, men det har jeg prøvet uden held. Hvilket emne skal man kigge under ???
Avatar billede tuxen Nybegynder
30. maj 2000 - 09:48 #8
Lad mig lige tjekke det. Det er den reneste måde at tilgå det på, og samtidig giver det timingfordelene.
Jeg melder tilbage senere.
Avatar billede maagen Nybegynder
03. august 2000 - 09:31 #9
Tak for svarene...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester