Visual Basic, kommunisera med parallellporten

Robot, CNC, Pneumatik, Hydraulik, mm
Användarvisningsbild
larsboy
Inlägg: 10
Blev medlem: 24 april 2005, 13:51:50

Visual Basic, kommunisera med parallellporten

Inlägg 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.
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg 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.
sodjan
EF Sponsor
Inlägg: 43243
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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...
Användarvisningsbild
larsboy
Inlägg: 10
Blev medlem: 24 april 2005, 13:51:50

Inlägg 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?
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg av rehnmaak »

Har du en ECP/EPP parallellport ska det gå att läsa tillbaka status på pinnarna.
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Inlägg 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
Senast redigerad av jojje 7 juni 2006, 11:32:56, redigerad totalt 3 gånger.
rehnmaak
Inlägg: 2204
Blev medlem: 13 december 2005, 01:43:41

Inlägg av rehnmaak »

Du är inte rädd för att få spam???
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Inlägg av jojje »

Nä, varför skulle jag det?

8)
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg 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
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Inlägg av jojje »

OK, då har du en där. Då tar jag bort min spammottagningsadress :D
vukan
Inlägg: 138
Blev medlem: 12 april 2005, 14:28:19
Ort: Huddinge

Inlägg 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)
Användarvisningsbild
Luff
Inlägg: 46
Blev medlem: 20 oktober 2003, 12:32:58

Inlägg 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
Seven11
Inlägg: 547
Blev medlem: 13 maj 2004, 23:43:33

Inlägg 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).
Skriv svar