Sida 1 av 1
Visual Basic, kommunisera med parallellporten
Postat: 6 juni 2006, 13:35:06
av larsboy
Jag skulle vilja göra ett litet EXE program i Visual Basic som kan ta ett eller flera argument så att jag kan slå på och av pinnar i parallellporten på en dator med WinXP.
Tanken är att jag ska kunna använda mig av denna exe-fil från ett annat program för att kunna styra paralellporten genom att sända en "kör" kommando med argument som styr vad jag vill göra.
Om någon har någon vet hur man gör en exe fil för att styra parallellporten, och till och med kan klistra in hur denna kod skulle se ut, vore jag ytterst tacksam.
Postat: 6 juni 2006, 13:38:12
av rehnmaak
Du behöver en driver för att kunna skriva direkt till parallellporten tex dlportio som finns att hämta på internet. Det finns ett antal exempel i dokumentationen bla för VisualC. Om det finns stöd för Visual Basic vet jag inte.
Postat: 6 juni 2006, 14:28:16
av sodjan
KOlla :
http://www.maxim-ic.com/appnotes.cfm/ap ... umber/1142
Där används dlportio och VB för att snacka med parr-porten.
I och för sig till en speciell Maxim krest, men de delarna av källkoden
får du väl blunda för...
EDIT : Om du är nyfiken så ser VB deklarationerna ut så här:
Kod: Markera allt
'****************************************************************************
'* DriverLINX Port I/O Driver Interface
'* <cp> Copyright 1996-1999 Scientific Software Tools, Inc.<nl>
'* DriverLINX is a registered trademark of Scientific Software Tools, Inc.
'* Win32 Prototypes for DriverLINX Port I/O
'****************************************************************************
'
Public Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte
Public Declare Function DlPortReadPortUshort Lib "dlportio.dll" (ByVal Port As Long) As Integer
Public Declare Function DlPortReadPortUlong Lib "dlportio.dll" (ByVal Port As Long) As Long
Public Declare Sub DlPortReadPortBufferUchar Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortReadPortBufferUshort Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortReadPortBufferUlong Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte)
Public Declare Sub DlPortWritePortUshort Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Integer)
Public Declare Sub DlPortWritePortUlong Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Long)
Public Declare Sub DlPortWritePortBufferUchar Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortBufferUshort Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortBufferUlong Lib "dlportio.dll" (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Dokumentation till varje funktion finns antagligen tillsammans med dlportio...
Postat: 6 juni 2006, 16:55:44
av larsboy
Tack för tipset. Ska titta på detta.
Om jag gör lite försök med att tända och släcka pinnar på parallellporten, går det då på något sätt att se status på dessa pinnar, utan att fysiskt behöva mäta spänningen?
Postat: 6 juni 2006, 16:57:10
av rehnmaak
Har du en ECP/EPP parallellport ska det gå att läsa tillbaka status på pinnarna.
Postat: 7 juni 2006, 01:19:14
av jojje
Jag har för mig att det är skillnad på 98 och NT/2000/XP. Men du kan iaf få dom filerna jag har, så kan du prova om det funkar med dom för 98'an, eller med den för NT och C.
Om du vill kan du skicka ett tomt mail till "
larsboy@xxxxx.xx" så skickar jag filerna i retur.
Edit1-2: Får väl göra en liten ändring då, sen tar jag iaf bort den.
Edit 3: Nu e den borta.
/// Jojje
Postat: 7 juni 2006, 01:27:58
av rehnmaak
Du är inte rädd för att få spam???
Postat: 7 juni 2006, 01:34:45
av jojje
Nä, varför skulle jag det?

Postat: 7 juni 2006, 11:27:01
av v-g
DLPortIO är det du ska använda! Funkar kalas för mig och är inga större problem att börja med heller då det finns exempel
Ladda ner
här
Postat: 7 juni 2006, 11:31:25
av jojje
OK, då har du en där. Då tar jag bort min spammottagningsadress

Postat: 7 juni 2006, 12:58:28
av vukan
jag använder inpout32.dll
dll + testapplikationer för bl.a VB6:
http://www.logix4u.net/inpout32_source_and_bins.zip
här finns exempel för VB dot NET:
http://www.lvr.com/parport.htm (en bit ner)
Postat: 20 juni 2006, 23:46:00
av Luff
Jag rekommenderar IO.DLL, enkel och snabb. Finns programmeringsexempel för Visual Basic på hemsidan:
http://www.geekhideout.com/iodll.shtml
För att se om något ändras på parallelporten kan du använda Parmon från samma sida:
http://www.geekhideout.com/parmon.shtml
Postat: 21 juni 2006, 13:36:26
av Seven11
det är stor skillnad på Win9X/WinMe och WinNT/Win2k/WinXP... Windows ME som bygger på 9x har inget direkt skydd för att skriva till I/O portar. WinXP (Windows NT 5) har däremot det, dock är jag rätt säker på att DLL filerna fixar med I/O tillstånd mot operativsystemet.
Kan rekommendera både IO.dll och inpout32.dll tycker både löser problemet jätte bra. Annars kan du ju skriva en egen DLL fil i ex NASM om det är så att du behöver fler lågnivå funktioner och inte vill ha massa krav på olika DLL:er. (Kräver dock att du kan x86 ASM, C eller liknande kan även användas dock inte till alla lågnivå funktioner).