[C++] Uitlezen LPT poort

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

  • krietjur
  • Registratie: Februari 2001
  • Laatst online: 21:28

krietjur

Where am I?

Topicstarter
Het volgende is het probleem:
Ik wil met behulp van de LPT poort 4 signalen in kunnen lezen in m'n C++ programma. Ik heb al wel wat rond gezocht en een programma gevonden waarmee het mogelijk is om signalen uit de LPT poort te sturen. De bedoeling is dat er 4 sensoren aan de LPT gehangen worden die elk een signaal door moeten kunnen geven aan het programma.
Het gaat puur om een hoog-laag signaal wat binnen moet komen. Hoe kan ik deze input lijnen van de LPT uitlezen??

  • [ti]
  • Registratie: Februari 2000
  • Niet online
onder dos gebruik je daar inportb() en outportb() voor.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:59
Onder windows (dwz als win32 applicatie) zul je iets met een handle moeten doen, dat door createfile(blabla,"\\.\LPT1:") wordt teruggeveven.

(Onder windows moet je bijna alles met handles doen namelijk :) )

Daarna moet je waarschijnlijk control codes sturen (DeviceIoControl(...) oid, maar dat weet ik niet precies. Daar moet je waarschijnlijk de gegevens van het stuurprogramma van de LPT driver voor hebben. ( Of zelf een driver schrijven hahahahahaha :) ).

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:04

Creepy

Tactical Espionage Splatterer

Hebbie al een driver? Zo ja.. die gebruiken en er rekening mee houden dat je de D0-D7 pinnen (de 8 data pinnen dus) standaard niet zomaar kan uitlezen, maar dat je daarvoor andere pinnen hebt.

Hebbie nog geen driver (voor windows dan)? Sorry, maar rag eens op het knopje search en voer LPT1 in. Dan zie je vanzelf dat je bijv. DirectPortI/O kan gebruiken. O.a. te vinden op de site in mijn sig bij de download sectie. Zitten voorbeelden voor VB en C bij.

"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


  • Pino
  • Registratie: Oktober 2001
  • Laatst online: 14-09 13:24
Onder linux gaat het iig zo, ik weet niet of dat onder Windows ook werkt:

(dit gebruik ik om SMS te sturen na alarmmelding van alarmcentrale:
code:
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
28
29
30
     /*
      * alarmdetect.c: Check lp1 port for out of paper, this signal means
      * there's a burglar alarm
      * Compile with `gcc -O2 -o alarmdetect alarmdetect.c',
      */

     #include <stdio.h>
     #include <unistd.h>
     #include <asm/io.h>

     #define BASEPORT 0x378 /* lp1 */

     int main()
     {
       /* Get access to the ports */
       if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}



       /* Read from the status port (BASE+1) and display the result */
       if ((inb(BASEPORT + 1) & 32) != 32) {fprintf(stdout,"ALARM\n");
exit(0);}              
 
       /* We don't need the ports anymore */
       if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}
       exit(1);
     }
     

     /* end of alarmdetect.c */

Als er alarm is genereer ik een 1 op de paper-out lijn.

"If you don't know where you are going, any road will take you there"


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:59
Op donderdag 06 december 2001 15:02 schreef THEF_Pino het volgende:
Onder linux gaat het iig zo, ik weet niet of dat onder Windows ook werkt ...
Ik wel... :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Pino
  • Registratie: Oktober 2001
  • Laatst online: 14-09 13:24
Op donderdag 06 december 2001 15:05 schreef farlane het volgende:

[..]

Ik wel... :)
Ja, en dus? Werkt dat of niet?

"If you don't know where you are going, any road will take you there"


  • Onno
  • Registratie: Juni 1999
  • Niet online
Nee. :)

<off-topic>

Is het trouwens parallelle-poort-aanstuur-week ofzo? PHP, VB, Delphi, C++, het aantal threads erover is groter dan ooit tevoren. :)

</off-topic>

  • Pino
  • Registratie: Oktober 2001
  • Laatst online: 14-09 13:24
Op donderdag 06 december 2001 15:07 schreef Onno het volgende:
Nee. :)

<off-topic>

Is het trouwens parallelle-poort-aanstuur-week ofzo? PHP, VB, Delphi, C++, het aantal threads erover is groter dan ooit tevoren. :)

</off-topic>
Ach, volgens mij wil iedereen een geautomatiseerde kerstboom, en de parallelle poort is erg makkelijk te gebruiken :)

"If you don't know where you are going, any road will take you there"


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23:59
Is het trouwens parallelle-poort-aanstuur-week ofzo?
roflmpo

[edit]

:)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1