LPT poort aansturen, via command line

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

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Ik ben op zoek naar een progie, om de lpt poort aan te sturen onder win NT/2000/XP. Ik heb dit al aan de gang met een DLL en een progie, maar ik zoek nu een progie waarmee ik pinnen hoog kan maken, door een opdracht op de commandline.


--------------------------------------------------------------------------------
Control program
The following program is an example how to control parallel port LPT1 data pins from your software. This example directly controls the parallel port registers, so it does not work under some multitasking operating system which does not allow that. It works nicely under MSDOS. You can look the Borland Pascal 7.0 code (should compile also with earlier versions also) and then download the compiled program LPTOUT.EXE.


Program lpt1_output;

Uses Dos;

Var
addr:word;
data:byte;
e:integer;

Begin
addr:=MemW[$0040:$0008];
Val(ParamStr(1),data,e);
Port[addr]:=data;
End.

How to use the program
LPTOUT.EXE is very easy to use program. The program takes one parameter, which is the data value to send to the parallel port. That value must be integer in decimal format (for example 255). Hexadecimal numbers can also be used, but they must be preceded by $ mark (for example $FF). The program hoes not have any type of error checking to keep it simple. If your number is not in correct format, the program will send some strange value to the port.


Example how to use the program
LPTOUT 0
Set all datapins to low level.

LPTOUT 255
Set all datapins to high level.

LPTOUT 1
Set datapin D0 to high level and all other datapins to low level.


How to calculate your own values to send to program
You have to think the value you give to the program as a binary number. Every bit of the binary number control one output bit. The following table describes the relation of the bits, parallel port output pins and the value of those bits.

Pin 2 3 4 5 6 7 8 9
Bit D0 D1 D2 D3 D4 D5 D6 D7
Value 1 2 4 8 16 32 64 128

For example if you want to set pins 2 and 3 to logic 1 (led on) then you have to output value 1+2=3. If you want to set on pins 3,5 and 6 then you need to output value 2+8+16=26. In this way you can calculate the value for any bit combination you want to output.
-----------------------------------------------------------------------------

Duz ik bedoel in een command line: lptpoort.exe 3
dat dus zorgt dat pinnen 2 en 3 hoog worden en dat ik ze met bijvoorbeeld lptpoort 0 weer uit zet, zoals op de site staan. Heeeeeel eenvoudig maar ik kan duz niet programeren. In quickbasic was ik vroeger wel bezig, maar die kan niet direct een poort meer aansturen onder alle NT versies van windows. Ik hoop dat iemand hier een progie weet dat ik hiervoor kan gebruiken [linkie?] :)

Zoals je ziet kan dit progie duz niet onder die winnt versies werken. Anders wat ik nu aan het solderen met relais etc... Misschien maak ik nog een site als ik dit aan de gang heb met al de progies!

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


Verwijderd

Volgens mij kan dit heel eenvoudig door een programmaatje te maken dat naar het LPTx device schrijft.

Andere mogelijkheid: maak een binair bestandje waarin de code(s) staan die je wilt sturen, daarna op de command-line:
copy bestandje-met-code lpt1:

Dit moet volgens mij gewoon werken (kan het alleen moeilijk testen zonder lpt device ;)

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Verwijderd schreef op 05 november 2002 @ 15:13:
Volgens mij kan dit heel eenvoudig door een programmaatje te maken dat naar het LPTx device schrijft.

Andere mogelijkheid: maak een binair bestandje waarin de code(s) staan die je wilt sturen, daarna op de command-line:
copy bestandje-met-code lpt1:

Dit moet volgens mij gewoon werken (kan het alleen moeilijk testen zonder lpt device ;)
Ik kan duz niet programmeren in win32. En copy commando's uitvoeren ging ook alleen maar met DOS dach ik. Gwoon wat ik zeg, een win32 prog voor NT/2000/XP dat ik eenvoudig kan oproepen [het gaat samenwerken met een php script. Ik kan dan dingen aan en uit doen op vanaf het internet]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
SCHOP! KICK! ;)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
BOEM SLAG SCHOP KNAL

Niemand info???


edit:

Sorry een kick binnen 24 uur 8)7

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Norckon
  • Registratie: September 2000
  • Laatst online: 16-02 23:21
Ik wou een paar uur geleden posten, maar dat lukte toen niet vanwege een vage fout in React. Hij zei steeds dat ik al gepost had (double_post). Maar goed, niet belangrijk.

Op zich is het aansturen van de printerpoort niet zo moeilijk, een command line prog om bepaalde pinnen 'hoog' te zetten is zo gemaakt. Voor een non-NT OS wel te verstaan.

Ik zou je graag helpen, maar dan moet iemand eerst even vertellen hoe je in een NT based OS de LPT poort aanspreekt. Ik ben er op dit moment zelf mee bezig voor school en heb al enkele DLL's geprobeerd, zonder wenselijk resultaat. De ene keer loopt de boel vast en de andere keer lijkt ie wat te doen maar gebeurd er verder niets...

Zowel drivers die je met b.v. VB aanspreekt als andere programma's die een bestaand prog toegang moet geven tot de poorten heb ik geprobeerd.

Iemand een hint of kant & klaar iets hoe dit in b.v. XP wel moet? Dit zou mij en de topicstarter erg helpen :)

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Norckon schreef op 06 November 2002 @ 22:36:
Ik wou een paar uur geleden posten, maar dat lukte toen niet vanwege een vage fout in React. Hij zei steeds dat ik al gepost had (double_post). Maar goed, niet belangrijk.

Op zich is het aansturen van de printerpoort niet zo moeilijk, een command line prog om bepaalde pinnen 'hoog' te zetten is zo gemaakt. Voor een non-NT OS wel te verstaan.

Ik zou je graag helpen, maar dan moet iemand eerst even vertellen hoe je in een NT based OS de LPT poort aanspreekt. Ik ben er op dit moment zelf mee bezig voor school en heb al enkele DLL's geprobeerd, zonder wenselijk resultaat. De ene keer loopt de boel vast en de andere keer lijkt ie wat te doen maar gebeurd er verder niets...

Zowel drivers die je met b.v. VB aanspreekt als andere programma's die een bestaand prog toegang moet geven tot de poorten heb ik geprobeerd.

Iemand een hint of kant & klaar iets hoe dit in b.v. XP wel moet? Dit zou mij en de topicstarter erg helpen :)
Ik moet zo weg, [school] maar ik heb hier nog een DLL en progie slingeren. Ik zet ze wel ff online als ik thuis ben. ik geef dan wel een schop. Misschien kun je iets met die dll? [ff kijken of ik de officiele website nog kan vinden ook]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Okee ik heb alles in een zipie gezet en geupload naar http://home.wanadoo.nl/pierre.oord/lpt.zip

Daar zit een progie bij met dll's met een setup executable. Die eerst installeren en opnieuw opstarten. Een ander progie [ik dacht geschreven door iemand hier op GoT] bestuurd daadwerkelijk de poorten. De broncode zit daarbij voor zover ik zie. Misschien dat jij iets kan programmeren via de command prompt in de richting van m'n eerste post: Ik geef een getal en bijvoorbeeld pin 2 en 3 worden actief.

Over zo'n 5 minuten staat het bestand op server ik heb trage upload. Bestand is 1,46 MB


edit:

het was een ZIP bestand geen ZIT ff typvout verbeteren ;)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Norckon
  • Registratie: September 2000
  • Laatst online: 16-02 23:21
18:49

Not Found
The requested URL /pierre.oord/lpt.zit was not found on this server.

edit:

Hmm dom, typfoutje van jou :) Ik zal d'r ff naar kijken

  • m-m
  • Registratie: Augustus 2001
  • Niet online

m-m

kan met debug.exe....

E:\>debug.exe
- O 378 FFF

bijvoorbeeld...

  • Norckon
  • Registratie: September 2000
  • Laatst online: 16-02 23:21
Probeer dit eens:

http://www.mobiel-plaza.nl/got/LPTWrite.zip

Hij heet LPTWriteXP maar als die driver geinstalleerd is op het systeem, DLPortIO, dan zou het in elke Windows versie moeten werken. Als je wat meer opties zou willen hebben hoor ik dat graag :)

De ZIP bevat de source welke een beetje snel in elkaar geflanst is, de gecompileerde versie en een aparte class (wel netjes) die je in elk programma kan laden om controle over je printerpoort te krijgen.

Sim-pel.


P.S. Bedankt, je hebt me een stuk verder geholpen met m'n profielwerkstuk :)

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Nou ff een plaatje:
Afbeeldingslocatie: http://home.wanadoo.nl/pierre.oord/lpt.JPG

Nou je progie werkt ECHT SUPER!!! :*) 8) :D
_/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_


Ff een kleine opmerking [maar boeit niet echt]:
Zoals je zit aan m'n plaatje werk je van links naar rechts met pinnen als je ze opgeeft. Makkelijk dat het programma ook ondersteund gwoon een pin naam typen. Ik ga binnenkort zelf een boek lezen over VB6, duz bedankt voor de sourcecode, dan kan ik ff kijken hoe je dat gedaan hebt! Hardstikke bedankt! Ik ga een PHP script maken die ervoor moet zorgen dat ik dingen vanaf internet aan en uit kan zetten. Als het allemaal werkt, krijgt dit topic een schop en jij een mailtje, dat betekend dat ik een website heb opgezet, met jouw progie en zo, natuurlijk met je naam en dank. Misschien moet je er nog ff (C)jenaam inzetten, in een nieuwe release! [o is wel makkelijk; zet er een versie in als je ooit iets aanpast wel makkelijk]

Nou nogmaals bedankt voor het schijven, gaat denk wel aardig wat tijd inzitten. O ja, wat heb je voor profielwerkstuk dan :?

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Norckon schreef op 07 november 2002 @ 18:49:
18:49

Not Found
The requested URL /pierre.oord/lpt.zit was not found on this server.

edit:

Hmm dom, typfoutje van jou :) Ik zal d'r ff naar kijken
gefixed. Het was een ZIP, geen ZIT ;)

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • Norckon
  • Registratie: September 2000
  • Laatst online: 16-02 23:21
Hey,
blij dat het naar wens werkt :)
De pinnen zijn 'verkeerd om' doordat het eigenlijk een binair getal is. Datapin 0 is 2^0, pin 1 is 2^1, enz. Dit zul je ook in de source zien. Ggebruik bij voorkeur de class in je eigen prog, dat werkt wat makkelijker..:

code:
1
2
3
4
5
Set bla = New LPTWrite
bla.Port = 888   'standaard LPT1, hex &H378
bla.WriteAll "01101100" 
bla.WriteOne 4
bla.Reset


Heel simpel zoals je ziet.

Ik zal nog even wat copyrights aanbrengen en misschien bedenk ik nog wat leuke instellingsmogelijkheden of een optie om meerdere pinnen in 1 keer hoog te zetten, met b.v.
bla.WriteSome 1,5,7
wat dan de pinnen 1 5 en 7 hoog zet. Zoiets.

Mijn profielwerkstuk is het aansturen van een extern kastje met 8 LED's. De gebruiker voert een decimaal getal in, dit wordt binair weergegeven. Eerst lukte dit alleen onder 98 in QuickBasic, nu ook onder XP in VB (dank dank).
Het blijkt nu nogal simpel te zijn dus we gaan nog wat extra's verzinnen, geluid, een spelletje wat je aansluit op de LPT of weet ik wat.

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Norckon schreef op 08 november 2002 @ 13:33:
Hey,
blij dat het naar wens werkt :)
De pinnen zijn 'verkeerd om' doordat het eigenlijk een binair getal is. Datapin 0 is 2^0, pin 1 is 2^1, enz. Dit zul je ook in de source zien. Ggebruik bij voorkeur de class in je eigen prog, dat werkt wat makkelijker..:

code:
1
2
3
4
5
Set bla = New LPTWrite
bla.Port = 888   'standaard LPT1, hex &H378
bla.WriteAll "01101100" 
bla.WriteOne 4
bla.Reset


Heel simpel zoals je ziet.

Ik zal nog even wat copyrights aanbrengen en misschien bedenk ik nog wat leuke instellingsmogelijkheden of een optie om meerdere pinnen in 1 keer hoog te zetten, met b.v.
bla.WriteSome 1,5,7
wat dan de pinnen 1 5 en 7 hoog zet. Zoiets.

Mijn profielwerkstuk is het aansturen van een extern kastje met 8 LED's. De gebruiker voert een decimaal getal in, dit wordt binair weergegeven. Eerst lukte dit alleen onder 98 in QuickBasic, nu ook onder XP in VB (dank dank).
Het blijkt nu nogal simpel te zijn dus we gaan nog wat extra's verzinnen, geluid, een spelletje wat je aansluit op de LPT of weet ik wat.
das mooi! Wel goed testen he nieuwe versie's, want het moet evengoed blijven werken als deze!! En ik vind de manier met bijvoorbeeld 01000000 al prima werken! mail ff naar pierre-oord@hetwww.nl als je een nieuwe versie hebt! [en een changelog] ik ben benieuwd. Nou ik moet eerst maar vb gaan leren! Duurt nog wel ff voordat ik weet hoe het werkt. Maar eerst ff iets van php maken. Als dat af is dan post ik het wel! :)

nogmaals: _/-\o_ _/-\o_ _/-\o_ _/-\o_

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Okee,zoals beloofd hier de site, met duidelijke beschrijving. Heeft er iemand nog een plaats waar ik wat ruimte kan krijgen voor m'n site?? Nu moeten jullie het doen met 3kb/sec upload! [ik hoop dat ik vandaag nog een beetje CS kan doen en niet een ping van 4000 heb]

Ik zoek een mirror!

De site: http://pierre-oord.mine.nu/lptpoort

De site voor degene die hem wil mirroren, in RAR:
http://pierre-oord.mine.nu/lptpoort/lptpoort.rar

Ik hoor wel wat jullie gaan aansluiten op je lpt poort!

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


Verwijderd

--SUPER KICK--
Ik vond het niet waard om hiervoor een nieuw topic te openen, dus dan maar op deze manier.

Kan iemand dat programma lptwrite.exe opnieuw compilen en de msgbox weghalen die verschijnt als je een verkeerd commando ingeeft? Als ik het zelf probeer krijg ik de volgende foutmelding: [knip]


Ik heb het programma enkele maanden geleden al opnieuw gecompiled, en het werkt :) Mocht iemand er in geïtresseerd zijn, mail dan even, of kijk op mijn website.

[ Voor 41% gewijzigd door Verwijderd op 01-10-2004 09:00 ]


  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 14:49
Ik heb de site met de scripts/downloads (allemaal erg oud ik raad je nieuwe apache etc aan!) nog even hier gezet, on request:

http://pierre.flexbouncer.com/lptpoort/

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)

Pagina: 1