• T4CH
  • NEWS
  • VIDEO
Forum > Software

Qualcuno è in grado di modificare un programma in visual bsic x gestione lpt affinkè funzioni col mi

Discussione inserita in 'Software' da hereistay, 22 Novembre 2009.

  1. hereistay techNewbie

    Ciao raga!

    Allora, dovrei utilizzare un dispositivo esterno che ho costruito, ma funziona solo tramite lpt e con indirizzo h378.

    Ora, io ho un portatile e mi sta risultando veramnete ostico riuscire a trovre un qualsiasi adattatore che mi crei una lpt1 reale e che riesca a lavorare con programmi in vb.

    Per cui vi chiedo se qualcuno abbastanza esperto sia in grado di modificare il mio programma di gestione lpt affinchè funzioni con il mio adattatore usb/lpt che in realtà una lpt non la crea affatto, ma crea un "supporto stampa usb"!!!

    Vi riporto il programma in visual basic per la gestione della lpt e tutti i dati del mio adattatore usb/lpt, se c'è qualche buon'anima che è in grado di modificare il programma affichè funzioni con il mio adattatore mi faccia sapere!!

    Se proprio non c'è sapreste dirmi almeno se è possibile modificare il programma?





    1-Programma gestione lpt:



    '----------------------------RICHIAMO ALLA LIBRERIA PER LA GESTIONE DELLA PORTA LPT----------------------------

    Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer

    Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)



    '--------------------------COSTANTI PER GLI INDIRIZZI DELLA PORTA LPT1--------------------------------

    Public Const IndirizzoData As String = "&H378" 'REGISTRO DATA: sola scrittura (8 bit)

    'Public Const IndirizzoStatus As String = "&H379" 'REGISTRO STATUS: sola lettura (ultimi 5 bit)

    'Public Const IndirizzoControl As String = "&H37a" 'REGISTRO CONTROL: lettura + scrittura (primi 4 bit)



    Public StatoCubo(1 To 8, 1 To 64) As Integer 'variabile che contiene lo stato attuale di TUTTO il cubo



    Public Function ScriviCubo(NumeroCicli As Integer) 'scrive sul cubo lo stato memorizzato nella matrice StatoCubo

    Dim ByteLpt As Byte

    Dim ContaLivelli As Integer

    Dim ContaLed As Integer

    Dim ContaCicli As Integer



    For ContaCicli = 1 To NumeroCicli



    For ContaLivelli = 1 To 8



    'imposto tutti i bit dello shift register senza clokkare sullo shift reg. dei livelli e disattivando SEMPRE il clear dello shift register (valore=2) (xx 01x _1_)

    For ContaLed = 64 To 1 Step -1 'For ContaLed = 1 To 64

    'SHIFT REG. LIVELLI:

    'MSB = 0 --> clock disattivato

    'CENTRALE = 1 (valore=16)--> clear disattivato

    'LSB = indifferente



    'SHIFT REG. LED:

    'MSB = 0 --> clock disattivato

    'CENTRALE = 1 (valore=2)--> clear disattivato

    'LSB = StatoCubo(ContaLivelli, ContaLed)

    ByteLpt = (0 + 16 + 0) + (0 + 2 + StatoCubo(ContaLivelli, ContaLed))

    Call ClokkaLed(ByteLpt) 'passo il valore alla funzione che dà un colpo di clock allo shift dei led

    Next ContaLed



    'SHIFT REG. LIVELLI:

    'MSB = 0 --> clock disattivato

    'CENTRALE = 1 (valore=16)--> clear disattivato

    'LSB = (se livello = 1--> 1(valore=8); se livello <> 1--> 0) --> metto 1 solo la prima volta



    'SHIFT REG. LED:

    'MSB = 0 --> clock disattivato

    'CENTRALE = 1 (valore=2)--> clear disattivato

    'LSB = indifferente



    If ContaLivelli = 1 Then

    ByteLpt = (0 + 16 + 8) + (0 + 2 + 0)

    Else

    ByteLpt = (0 + 16 + 0) + (0 + 2 + 0)

    End If

    Call ClokkaLivello(ByteLpt) 'passo il valore alla funzione che dà un colpo di clock allo shift dei livelli



    Call Aspetta(60000) 'smette di lampeggiare dai 60000 ai 70000



    Next ContaLivelli



    Call ClearAll 'richiamo la funzione per attivare il clear su entrambi gli shift register



    Next ContaCicli



    End Function



    Public Function ClokkaLed(Valore As Byte) 'dà un colpo di clock modificando SOLAMENTE il bit del clock

    Out Val(IndirizzoData), Val(Valore) 'clock DISATTIVATO

    'aggiungo 4 perchè devo mettere ad 1 il bit del clock dello shift led x dare il colpo di clock

    Out Val(IndirizzoData), Val(Valore + 4) 'clock ATTIVATO

    End Function



    Public Function ClokkaLivello(Valore As Byte) 'dà un colpo di clock modificando SOLAMENTE il bit del clock

    Out Val(IndirizzoData), Val(Valore) 'clock DISATTIVATO

    'aggiungo 32 perchè devo mettere ad 1 il bit del clock dello shift livello x dare il colpo di clock

    Out Val(IndirizzoData), Val(Valore + 32) 'clock ATTIVATO

    End Function



    Public Function ClearAll() 'svuoto tutti gli shift register

    Dim ByteLpt As Byte

    'attivo il clear su entrambi gli shift register (valore=0) così li azzero (xx x0x x0x)

    ByteLpt = 0 '00 000 000

    Out Val(IndirizzoData), Val(ByteLpt)

    End Function



    Public Function Aspetta(Ncicli As Long) 'funzione per ritardare il ciclo di refresh del cubo

    Dim Contatore As Long

    Dim Contato As Long



    For Contatore = 0 To Ncicli

    Contato = Contatore

    Next Contatore

    End Function









    2-Dati riguardanti il mio adattatore:



    Dettagli driver:

    File driver:

    C:\Windows\system32\DRIVER\usbprint.sys



    Versione File:

    6.0.6000.16386 (vista_rtm.061101-2205)





    -DESCRIZIONE DEL DISPOSITIVO:

    VALORE:

    Supporto stampa USB.



    -ID HARDWARE:

    VALORE:

    USB\VID_067B&PID_2305&REV_0202

    USB\VID_067B&PID_2305



    -ID COMPATIBILI:

    VALORE:

    USB\Class_07&SubClass_01&Prot_01

    USB\Class_07&SubClass_01

    USB\Class_07



    -SERVIZIO:

    VALORE:

    usbprint



    -CLASSE DISPOSITIVO:

    VALORE:

    usb



    -GUID CLASSE DISPOSITIVO:

    VALORE:

    {36fc9e60-c465-11cf-8056-444553540000}



    -CHIAVE DRIVER:

    VALORE:

    {36fc9e60-c465-11cf-8056-444553540000}\0058



    -CONFIFLAG:

    VALORE:

    00000000



    -PRODUTTORE:

    VALORE:

    Microsoft



    -INFORMAZIONI SULLA POSIZIONE:

    VALORE:

    Port_#0002.Hub_#0002



    -NOME OGGETTO DISPOSITIVO FISICO:

    VALORE:

    \Device\USBPDO-7



    -CAPACITA':

    VALORE:

    00000084

    CM_DEVCAP_REMOVABLE

    CM_DEVCAP_SURPRISEREMOVALOK



    -GUID TIPO BUS:

    VALORE:

    {9d7debbc-c85d-11d1-9eb4-006008c3a19a}



    -TIPO BUS LEGACY:

    VALORE:

    0000000F



    -NUMERO BUS:

    VALORE:

    00000000



    ENUMERATORE:

    VALORE:

    USB



    -INDIRIZZO:

    VALORE:

    00000002



    -DATI RISPARMIO ENERGIA:

    VALORE:

    Stato alimentazione corrente:

    D0



    Funzionalità alimentazione:

    0000007F

    PDCAP_D0_SUPPORTED

    PDCAP_D1_SUPPORTED

    PDCAP_D2_SUPPORTED

    PDCAP_D3_SUPPORTED

    PDCAP_WAKE_FROM_D0_SUPPORTED

    PDCAP_WAKE_FROM_D1_SUPPORTED

    PDCAP_WAKE_FROM_D2_SUPPORTED



    Mapping stato alimentazione:

    S0 -> D0

    S1 -> D3

    S2 -> D3

    S3 -> D3

    S4 -> D3

    S5 -> D3



    -CRITERI DI RIMOZIONE:

    VALORE:

    00000003



    -IMPOSTAZIONE PREDEFINITA CRITERI DI RIMOZIONE

    VALORE:

    00000003



    -STATO INSTALLAZIONE:

    VALORE:

    00000000



    -NOME VISUALIZZATO:

    VALORE:

    Supporto stampa USB



    -PERCORSO ISTANZA DISPOSITIVO:

    VALORE:

    USB\VID_067B&PID_2305\5&184E262F&0&2



    -STATO DEVNODE:

    VALORE:

    0180600A

    DN_DRIVER_LOADED

    DN_STARTED

    DN_DISABLEABLE

    DN_REMOVABLE

    DN_NT_ENUMERATOR

    DN_NT_DRIVER



    -CODICE PROBLEMA:

    VALORE:

    00000000



    -RELAZIONI BUS:

    VALORE:

    USBPRINT\UnknownPrinter\6&12d04432&0&USB002





    -PADRE:

    VALORE:

    USB\ROOT_HUB\4&1e9b6039&0



    -FIGLI:

    VALORE:

    USBPRINT\UnknownPrinter\6&12d04432&0&USB002



    -NOME SICURO NODO DRIVER:

    VALORE:

    usbprint.inf:Microsoft.NTx86:USBPRINT_Inst:6.0.6000.16386:usb\class_07:generic_usb_printer



    -DATA ASSEMBLY DRIVER:

    VALORE:

    21/06/2006



    -VERSIONE ASSEMBLY DRIVER:

    VALORE:

    6.0.6000.16386



    -DESCRIZIONE ASSEMBLY DRIVER:

    VALORE:

    Supporto stampa USB



    -NOME INF:

    VALORE:

    usbprint.inf



    -SEZIONE INF:

    VALORE:

    USBPRINT_Inst





    -ESTENSIONE SEZIONE INF:

    VALORE:

    .NT



    -ID DISPOSITIVO CORRISPONDENTE:

    VALORE:

    usb\class_07



    -FORNITORE:

    VALORE:

    Microsoft



    -PRIORITA' DEL DRIVER INSTALLATO:

    VALORE:

    0DFF2002



    -NOME LUNGO CLASSE:

    VALORE:

    Controller USB (Universal Serial Bus)



    -NOME BREVE CLASSE:

    VALORE:

    USB



    -NESSUNA CLASSE DI INSTALLAZIONE:

    VALORE:

    <vero>





    -PERCORSO ICONA CLASSE:

    VALORE:

    %systemroot%\system32\setupapi.dll,-20





    -VERSIONE PRECEDENTE LOGO:

    VALORE:

    5.2



    -NOME VISUALIZZATO:

    VALORE:

    Controller USB (Universal Serial Bus)
    hereistay, 22 Novembre 2009
    #1
Password dimenticata?
SU TERMINI DI SERVIZIO CONTATTACI