DanieleValsecchi Inserito: 7 ottobre 2004 Segnala Inserito: 7 ottobre 2004 Possiedo delle schede di input/output da inserire direttamente nel bus di qualsiasi PC.Le ho sempre utilizzate con quick basic funzionante in DOS attraverso le istruzioni PEEK e POKE.Ora devo poterle funzionare attraverso VISUAL BASIC, ma le istruzioni (PEEK e POKE) che utilizzavo per accedere direttamente all'area di memoria della mia scheda non esistono più.Come devo fare? Ho qualche speranza di potere continuare ad utlizzare queste mie schede?Le schede, analoghe alle mie, che trovo in commercio, vengono fornite con driver .DLL per poterle utilizzare con visual basic. Posso costruirmi io un driver .DLL per gestire le mie schede?GRAZIE.
Gabriele Corrieri Inserita: 7 ottobre 2004 Segnala Inserita: 7 ottobre 2004 Ciao o ti tieni quickbasic, o visual basic per dos, oppure ... nada de nada ... costa meno rifare tutto da zero e aquistare schede PCI PNPCiao
DanieleValsecchi Inserita: 8 ottobre 2004 Autore Segnala Inserita: 8 ottobre 2004 Ti ringrazio Gabriele per la tua tempestiva risposta alla mia richiesta.Ma, le schede I/O che si possono acquistare hanno la stessa identica architettura delle mie .... hanno solo in più i driver per poterle gestire con Visual Basic per Windows.Qualcuno avrà scritto il codice per i driver!Perchè non posso dover costruire driver su misura per le mie schede?Cosa sono le schede PCI PNP ?Ti prego di aver ancora un po' di pazienza e di rispondermi, la mia rabbia deriva dal fatto che ho lavorato in passato con microprocessori e con software di supervisione scritti con Assembler, quindi la mia impotenza nel gestire le mie schede mi rende .... incazzato!In MS-DOS bastano solo due righe di codice per avere 8 ingressi digitali prelevati dalla mia scheda pronti per l'uso.(progettazione e schema elettronico di mia costruzione).GRAZIE ancora.
dago_ Inserita: 8 ottobre 2004 Segnala Inserita: 8 ottobre 2004 Guarda queste funzioni'Scrive in memoria un valore di qualsiasi tipoSub Poke(ByVal address As Long, value As Variant, Optional ByVal ValueType As _ VbVarType = -1) ' if a data type wasn't provided, use VarType() If ValueType = -1 Then ValueType = VarType(value) Select Case ValueType Case vbByte CopyMemory ByVal address, CByte(value), 1 Case vbInteger CopyMemory ByVal address, CInt(value), 2 Case vbBoolean CopyMemory ByVal address, CBool(value), 2 Case vbLong CopyMemory ByVal address, CLng(value), 4 Case vbSingle CopyMemory ByVal address, CSng(value), 4 Case vbDouble CopyMemory ByVal address, CDbl(value), 8 Case vbCurrency CopyMemory ByVal address, CCur(value), 8 Case vbDate CopyMemory ByVal address, CDate(value), 8 Case vbVariant CopyMemory ByVal address, value, 16 Case Else Err.Raise 1001, , "Unsupported data type" End SelectEnd Sub'Legge dalla memoria un valore di qualsiasi tipoPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _ Any, source As Any, ByVal bytes As Long)' read a value of any type from memoryFunction Peek(ByVal address As Long, ByVal ValueType As VbVarType) As Variant Select Case ValueType Case vbByte Dim valueB As Byte CopyMemory valueB, ByVal address, 1 Peek = valueB Case vbInteger Dim valueI As Integer CopyMemory valueI, ByVal address, 2 Peek = valueI Case vbBoolean Dim valueBool As Boolean CopyMemory valueBool, ByVal address, 2 Peek = valueBool Case vbLong Dim valueL As Long CopyMemory valueL, ByVal address, 4 Peek = valueL Case vbSingle Dim valueS As Single CopyMemory valueS, ByVal address, 4 Peek = valueS Case vbDouble Dim valueD As Double CopyMemory valueD, ByVal address, 8 Peek = valueD Case vbCurrency Dim valueC As Currency CopyMemory valueC, ByVal address, 8 Peek = valueC Case vbDate Dim valueDate As Date CopyMemory valueDate, ByVal address, 8 Peek = valueDate Case vbVariant ' in this case we don't need an intermediate variable CopyMemory Peek, ByVal address, 16 Case Else Err.Raise 1001, , "Unsupported data type" End SelectEnd Function
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora