Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4

    Porta parallela: da dove cominciare?

    Ciao a tutti!
    Ho già guardato sul forum se c'è qualche discussione a riguardo, ma mi pare che ci sia penuria, per cui anche io mi rivolgo a Voi, dei della programmazione in C e C++ !!!!!

    A parte gli scherzi, non so da dove cominciare!
    Vorrei creare un software, semplice (fosse vero!) per comunicare con la porta parallela.
    In particolare vorrei scrivere e leggere dati attraverso i canali DATA della parallela...
    Ora, un tempo era così semplice: inport(indirizzo parallela), outport(indirizzo parallela)....questo col paleolitico , ma tanto simpatico e carismatico DOS !!!!!
    Col winzozz XP c'è da mettersi le mani sui capelli (e qua già sn messo male visto che ne restano pochi per quanto mi riguarda!!!).
    La parallela è gestita a livello 0 se nn erro, e l'unico modo per comunicare con tale livello è creare una DLL oppure utilizzarne una già esistente...
    Io nn ne trovo "free"...
    qualcuno di voi sa darmi qualche dritta da dove iniziare?
    Guardavo pure il MSDN online, ma anche qui (quello in italiano!) non è che abbia trovato granchè a livello di implementazione.
    Ho letto molta roba sulla porta parallela, ma a livello di software, non ho trovato molto.
    Ripeto, preferirei creare una DLL da zero e non utilizzarne una esistente.
    Help me, pleeeeaseeeee!!
    Ciaooo,
    Mik

  2. #2

    Re: Porta parallela: da dove cominciare?

    Originariamente inviato da miklux
    Ciao a tutti!
    Ho già guardato sul forum se c'è qualche discussione a riguardo, ma mi pare che ci sia penuria, per cui anche io mi rivolgo a Voi, dei della programmazione in C e C++ !!!!!

    A parte gli scherzi, non so da dove cominciare!
    Vorrei creare un software, semplice (fosse vero!) per comunicare con la porta parallela.
    In particolare vorrei scrivere e leggere dati attraverso i canali DATA della parallela...
    Ora, un tempo era così semplice: inport(indirizzo parallela), outport(indirizzo parallela)....questo col paleolitico , ma tanto simpatico e carismatico DOS !!!!!
    Col winzozz XP c'è da mettersi le mani sui capelli (e qua già sn messo male visto che ne restano pochi per quanto mi riguarda!!!).

    La parallela è gestita a livello 0 se nn erro, e l'unico modo per comunicare con tale livello è creare una DLL oppure utilizzarne una già esistente...
    Io nn ne trovo "free"...
    Secondo me InpOut32 è la migliore.
    Ma anche PortTalk è molto valida.
    qualcuno di voi sa darmi qualche dritta da dove iniziare?
    Guardavo pure il MSDN online, ma anche qui (quello in italiano!) non è che abbia trovato granchè a livello di implementazione.
    Ho letto molta roba sulla porta parallela, ma a livello di software, non ho trovato molto.
    Ripeto, preferirei creare una DLL da zero e non utilizzarne una esistente.
    Help me, pleeeeaseeeee!!
    Ciaooo,
    Mik
    Bè ho provato anche io, ma l'mpresa è ardua il riferimento principale é
    Windows Driver Development Kit
    Purtroppo il DDK non è più liberamente scaricabile ormai da tempo.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Originariamente inviato da miklux
    A parte gli scherzi, non so da dove cominciare!
    Comincia dal Regolamento.

    Aggiungo il linguaggio che non hai specificato nel titolo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Prova a leggere questo articolo

    http://www.visual-basic.it/articoli/agNewInOut.htm

    Alla fine c'e' un progetto sorgente in VB di una DLL da cui puoi partire ...

    Sfrutta un device driver incluso nello zip, che viene registrato facilmente (c'e' un .reg per farlo ...) e con cui il VB puo' facilmente comunicare.

    Con pochissimo sforzo, lo adatti al C/C++ (e altri linguaggi ...).

    Ed e' ovviamente free.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    Inntanto, come prima cosa, ringrazio Oregon e Samuele_70 per le dritte...
    effettivamente, cercando in rete, avevo già trovato soluzioni alternative, ma io sono duretto !!!!
    Per cui preferisco farmi una sudata nel capire come utilizzare il DDK...

    Comunque per ora cercherò di seguire le due strade: quella semplice utilizzando le DLL InpOut32 (che tra l'altro ho già utilizzato..proprio ieri notte... )e l'altra (ardua, vero Samuele_70?!!!!).
    Insomma, voglio riuscire a sbrogliare questa matassa!
    E che cavolo! E' solo un fascio di segnali elettrici di infima potenza, gestiti da un software di infima...ehmmm....
    vabbè, lasciamo perdere!
    Cmq...
    infine...
    SCUUUSAAAAA ALKA !!!!
    E' vero, non ho scritto neanche il linguaggio...effettivamente son tentato di utilizzare Visual Basic 6, ma sn legato sentimentalmente al C e al C++ !!!! Mi pareva troppo lungo da mettere nel titolo!!!
    tra l'altro ho notato che il problema "gestione della parallela" è stato trattato altre volte ma ho sempre l'impressione che non si sia riuscito a concludere il problema della gestione come la intendo io...
    dal punto di vista del driver. right?
    Cmq cercherò di essere più attento le prox volte!
    Ciao e grazie!
    Mik

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    NEWS...

    Allora, vi comunico che ho cominciato a utilizzare la DLL inout32, unitamente a un programmino semplice semplice in VB6 che mi permette di:
    decidere la porta d'uscita (nel mio caso la 378)
    il valore in uscita (da 0 a 255 visto la porta parallela utilizza 8 bit di dati).
    Praticamente piloto 8 led collegati ognuno col la sua resistenza serie che, per sicurezza, ho posto a 2,2k .
    Quando l'uscita della porta è alta, si accende un led...
    fin qui niente di strano no?
    Ora però c'è un dilemma...
    imposto il valore...che ne so? ... 0 (zero) in uscita.
    Tutti i led si spengono...
    aspetto alcuni secondi...e zak!
    Si attiva il led del quinto bit, per cui in input alla parallela vado a leggere 32 (2^4...ricordate che parte da data0 fino a data7).
    uhmmmmm
    Boh...
    riprovo...
    attivo tutti i led: 255 in uscita : tutti i led si accendono...
    Aspetto un tot di secondi e zakketeeee... resta solo il 7° bit attivo...
    ovvero in ingresso alla porta ho 2^7=128!
    Passano altri tot secondi... solo il 5° bit attivo: 2^5=32.
    Ma che è?
    Mi prende in giro???
    Pareri?
    Secondo voi è il driver che fa scherzi o il S.O. (XP professional) che non ammette intrusioni?!!! :master:
    ciao...
    io continuo..
    alla prossima!
    Mik

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Hai installato la NINOUT32.DLL con il driver INOUT32.SYS ?

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    Ciao Oregon...
    si, confermo che ho installato il driver NINOUT.DLL, copiandolo nella stessa cartella in cui era presente MSVBVM60.dll ovvero nel mio caso c:\windows\system32.
    Ho utilizzato il comando RegSvr32 c:\windows\system32\NINOUT32.DLL

    poi ho copiato il driver inout32d.sys nella sottocartella drivers del system32, dopodichè ho unito al registro di configurazione il file inout32d.reg, ho riavviato il computer e il gioco è fatto!!!

    Ora funge benino...
    L'unica cosa da fare è ricordarsi, se si utilizzano gli esempi degli articoli a cui mi avete indirizzato, di adattare i files VB alla nuova libreria e inoltre conviene, secondo me, ricominciare un form dall'inizio, perchè è necessario ricaricare la reference....
    Son stato chiaro? secondo me no...come sempre....

    Cmq il problemuzzo del bit data5 continua a esserci!
    Dopo un po' il sig.Winzozz setta automaticamente tutti i bit data a 0 tranne il data5, che resta a 1...
    come direbbe "il grigio"...
    enigmi nell'oscurità!!!!!!!!!!!!!
    io continuo...
    a presto!
    Mik

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da miklux
    Ciao Oregon...
    si, confermo che ho installato il driver NINOUT.DLL, copiandolo nella stessa cartella in cui era presente MSVBVM60.dll ovvero nel mio caso c:\windows\system32.
    Ho utilizzato il comando RegSvr32 c:\windows\system32\NINOUT32.DLL

    poi ho copiato il driver inout32d.sys nella sottocartella drivers del system32, dopodichè ho unito al registro di configurazione il file inout32d.reg, ho riavviato il computer e il gioco è fatto!!!

    Ora funge benino...
    Perfetto ... la procedura e' corretta ... se sei curioso, ti posso far dare un'occhiata ai sorgenti del driver ...

    Originariamente inviato da miklux
    L'unica cosa da fare è ricordarsi, se si utilizzano gli esempi degli articoli a cui mi avete indirizzato, di adattare i files VB alla nuova libreria e inoltre conviene, secondo me, ricominciare un form dall'inizio, perchè è necessario ricaricare la reference....
    Son stato chiaro? secondo me no...come sempre....
    Sì ... ok

    Originariamente inviato da miklux
    Cmq il problemuzzo del bit data5 continua a esserci!
    Dopo un po' il sig.Winzozz setta automaticamente tutti i bit data a 0 tranne il data5, che resta a 1...
    Questo "problema" puo' essere causato dal fatto che Windows XP (aggiornato) controlla periodicamente lo stato dei device collegati alla parallela (in genere stampanti) per determinare eventuali problemi di comunicazione. Questo "controllo periodico" avviene in scrittura e quindi puo' determinare la presenza di quei dati di cui parli. Il controllo puo' essere disattivato tramite la chiave di registro DisableWarmPoll. Puoi salvare su un file .reg le seguenti righe

    codice:
    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Parameters]
    "DisableWarmPoll"=dword:00000001
    ed eseguirle per unirle al registro. Riavviare e controllare se hai ancora i problemi ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.