[ Crazy Mix @ 26.06.2004. 10:17 ] @
Nabavio sam ovu komponentu (rekli su mi da se sa njom moze upravljati paralelnim portom), medjutim, posto nikad nisam radio tako nesto, zeleo bih da mi neko kaze tacno kako se salje binarni broj na LPT port. Takodje me zanima da li moze, i ako moze onda kako, ova komponenta da cita sa LPT porta? Zanima me samo kod.
Ja sam hteo sve ovo da uradimu BASIC-u, jer je lakse (nema komponenti, itd...), medjutim (kao sto mozete videti) imam Windows XP, a (kao sto znate) NT ne daje pristup portu "tek tako"...

P.S. Napravio sam na protobordu... kako se to zove? Stavio sam 8 LED i 8 otpornika i na sve to "prikacio" kabl za paralelni port. Probao sam u skoli (Win9x) iz QBASIC-a i radi, sad jos samo treba da iz Delphija to uradim...

POMOC!
[ hwfanatic @ 26.06.2004. 15:39 ] @
Ja mogu samo da ti kažem kako sam ja to uradio, jer ne znam za tu tvoju komponentu...

Kao što si i sam rekao, direktan pristum portu (recimo koristeći asembler) nije dozvoljen od NT-a pa nadalje. Prvi korak je da skineš inpout32 sa interneta. To je u suštini samo malo bolje zapakovan drajver. Imaš ga u dve verzije, u obliku dinamičke biblioteke, ali možeš od njega napraviti i komponentu tako što ćeš importovati ActiveX kontrolu. Detaljna uputstva, source, kao i gotov proizvod možeš naći na linku gore. Ja sve to ne znam napamet, pa ako baš ne možeš da se snađeš, ti reci, pa da pogledamo...
[ Crazy Mix @ 29.06.2004. 11:46 ] @
E, skidao sam neke spyware programe sa kompa, tako ad sad veliku vecinu sajtova nece da mi otvori, kao ni ovaj, ali sacekaj malo da vidim da li moze ortak sa kojim radim ovo da skine... znaci cekaj :)
[ Night @ 04.07.2004. 00:30 ] @
Koliko je meni poznato, ComPort obicno oznacava serijski port. Treba ti neka za paralelni. Ako imas Win9x onda mozes ovim kodom pisati i citati, ali ne radi na NT/2K/XP, kod njih sistem ne dozvoljava direktno saranje po hardverskim registrima pa treba koristiti neki VXD koji ce to rijesiti.

unit ParalelUnit;

// ne radi pod NT windowsima

interface
// pisanje na port
procedure OutPort( port :word; value :byte );

// citanje s porta
function InPort( port :word ) :byte;

implementation

procedure OutPort( port :word; value :byte );
begin
asm
mov dx,port
mov al,value
out dx,al
end;
end;

function InPort( port :word ) :byte;
begin
asm
mov dx,port
in al,dx
mov result,al
end;
end;


end.
[ Crazy Mix @ 04.07.2004. 05:23 ] @
Problem je sto imam WinXP, a rekoshe da moze i na paralelni da pise...
[ Almedin @ 14.07.2004. 21:22 ] @
Ovo se vrlo lako radi sa WinIo driverom. Isprobano.
[ Crazy Mix @ 06.08.2004. 17:34 ] @
E, skinuo sam inpout32.dll (ortak je skinuo pa mi poslao HyperTerminalom, jer moj je*eni komp nece da otvara 98% sajtova), ali nema napisan unit za delphi kako bih koristio dll u delphi (6) okruzenju. Da li neko mozda ima taj .PAS fajl, i ako ima, da li moze ovde da ga okaci, jer ne mogu da otvaram vecinu sajtova da bih download-ovao sa nekog treceg sajta...

Citat:
Almedin: Ovo se vrlo lako radi sa WinIo driverom. Isprobano.


Gde da nadjem to? (I trebalo bi da radi u D6 :))
[ hwfanatic @ 06.08.2004. 20:26 ] @
A, što nisi samo uveo ActiveX kontrolu? Dobro, može i ovako...
Code:

procedure Out32(PortAddress, Data: ShortInt); external 'inpout32.dll'; stdcall;
function Inp32(PortAddress: ShortInt): ShortInt; external 'inpout32.dll'; stdcall;

Oprosti ako se potkrala neka greška...
[ Crazy Mix @ 07.08.2004. 10:45 ] @
Hvala!

Jos me nesto zanima: Kako u "isto vreme" da cita/pise, jer npr. pravim neki element automatike, i sad to treba da kontrolise neki ulazni signal, i na osnovu njega da salje neki novi izlazni signal...? Jedino da cita/pise naizmenicno, ali to bi bilo malo teze izvesti... Dva port-a? Ili mozda ja lupam pa citanje uopste ne ide na data register, mada bi to bilo nelogicno...?
[ hwfanatic @ 07.08.2004. 11:53 ] @
Što ne proučiš serijski port? Potraži odličnu e-knjigu knjigu "Craig Peacock’s Interfacing the PC". Ako ne možeš da nađeš, poslaću ti ja na mail...
[ Crazy Mix @ 07.08.2004. 12:38 ] @
Ok, posalji na [email protected], ali ja svejedno ovo moram da uspem. I pazi, promenljive su tipa ShortInt, sto je od -127 do 128 (valjda tako), a port je na 0x378 (888) a posto ima 8 data pinova, trebalo bi da moze od 0 do 255, jel' tako?
Ja sam probao da stavim integer, i delphi ne prikazuje gresku, ali ovo o5 ne radi....

Help...
[ hwfanatic @ 07.08.2004. 12:55 ] @
Pazi, biblioteka sigurno radi... Probaj da pošalješ 3 na adresu 61, i sigurno ćeš čuti pc speaker (resetuješ ga sa 0). Možda jedino ako je taj 0x378 podešen da bude ECP, ili ga Windows posesivno čuva, ili tako nešto...

Moguće vrednosti su od 0 pa do 255. Bolje onda stavi tip Byte svuda umesto ShortInt, čini mi se da sam pogrešno rpeveo (u originalu ne piše signed, na primer).
[ Crazy Mix @ 07.08.2004. 14:14 ] @
Ne, nista se ne cuje na adresi 61....
Ok, stavim byte, ali kako 0x378 (u VB test aplikaciji je LPT prikazan kao 888 (verovatno integer))? Nisam probao (jesam probao sa 61 i nece), ali... Da, koliki je opseg kod byte?

I zasto si rekao da proucim Serijski Port? Verovatno je bolji/laksi za rad/...?

I da, gde mogu da nadjem listu svih adresa kod racunara?

P.S. Dobio sam serial.pdf, sad ga downloadujem...
[ Rapaic Rajko @ 07.08.2004. 14:51 ] @
Pogledao sam kod tog dll-a: 'short' je ovde dvobajtni integer. Ti mozes komotno (moras) da stavis 'word' i trebalo bi da proradi.

Rajko
[ hwfanatic @ 07.08.2004. 17:29 ] @
Danas mi nije dan... Verovatno sam skroz progrešio kod prevođenja, te poslušaj čoveka i stavi Word.

Zašto jednostavno, radi probe, ne napraviš programče koje če periodično da čita stanje na nekoj adresi, pa probaj redom adrese. Te pri početku su sigurno značajno aktivne, i ako je to slučaj i kod tebe, onda si siguran da drajver radi. Druga stvar je pokušaj upisivanja u registar, jer ko za kakav kontroler je prikačen taj paralelni port. Nije to više kao ranije, i morao bi malo bolje da proučiš setovanja u bios-u.

Serijski port sam ti preporučio jer može istovremeno i da šalje i da prima. To je ono što si hteo, zar ne? Sa druge strane će ti trebati malo komplikovaniji adapter, ali to imaš opisano u onoj knjizi.

Lista kojih adresa? Ako misliš na korišćene adrese, postoji set rezervisanih adresa koje su uvek korišćene. Sve drugo možeš videti u device manager-u.
[ Crazy Mix @ 08.08.2004. 16:55 ] @
U BIOS-u je port enable-ovan, kao i u DevMgr-u, adresa je 0378, a i stampac radi... To je sve sto mogu da kazem, a sad cu probati bez kabla (imao sam neki stari kabl za LPT port, mozda on nije u redu). Samo cu LED da postavim izmedju data8 (9. pin) i izmedju ground, i poslacu broj 1. Kad smo vec kod toga, od 18. do 25. pina je G, da li to znaci da mogu koristiti bilo koji u tom opsegu?
[ hwfanatic @ 08.08.2004. 18:27 ] @
Da, naravno. Masa je zajednička.
[ Crazy Mix @ 11.08.2004. 10:25 ] @
Ovo neće pa neće... Probao sam sa starim kablom, neće. Probao sam bez kabla, neće. Sad ću još da probam sa drugim kablom, ako i onda neće, odneću na drugi računar, a ako I ONDA ne bude htelo, to jednostavno nije za mene...
[ Crazy Mix @ 17.08.2004. 09:41 ] @
USPEO SAM!
Kupio sam nov kabl za stampac, uzeo sam svoj stari kabl, isekao ga, izvuk'o potrebne zice, prikacio to i poslao 255 na port 888 (?), i radi!

P.S. Broj 888 sam video u nekom primeru koji ide uz inpout32.
P.P.S. Koristio sam sledeci unit (attach).
[ Rapaic Rajko @ 18.08.2004. 10:06 ] @
Prosto, 888 je $378, a to je upravo port za paralelni comport.

Rajko
[ Almedin @ 18.08.2004. 21:18 ] @
Ne znam gdje sam našao. Ako ti treba, saljem ti na mail.
[ Almedin @ 18.08.2004. 21:20 ] @
Ovo gore se odnosi na WinIo
[ Crazy Mix @ 23.08.2004. 14:43 ] @
Pa posalji na [email protected], cisto da imam, iako sam uspeo. A ja sam inace "kolekcionar programa", tako da sve sto mogu, ja stavljam na diskove...

SALJI!