Port Parallele avec Visual Basic

Rom31826 - 23 janv. 2013 à 14:16
 Rom31826 - 23 janv. 2013 à 15:24
[i]
Bonjour,
J'essaye de communiquer sur un port parallele qui va vers un buffer.
Pour le moment j'essaye juste d'envoyer un bit sur D0. Mais je pense que je comprends pas la fonction ElkPortNT.
Voici mon Code : /i

' Initialisation du driver
Public Declare Function InitializeElkPort Lib "ElkPortNT.dll" () As Boolean
Public Declare Sub CloseElkPort Lib "ElkPortNT.dll" ()
Public Declare Sub RemoveElkPortDriver Lib "ElkPortNT.dll" ()

'Install le driver pour un Compte administrateur ou limité
Public Declare Sub InstalElkPortDriver Lib "ElkPortNT.dll" ()

'Lire et écrire les données
Public Declare Function ReadByte Lib "ElkPortNT.dll" (ByVal Port As Integer) As Byte
Public Declare Function WriteByte Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Value As Integer) As Boolean

Public Declare Function ReadWord Lib "ElkPortNT.dll" _
(ByVal Port As Integer) As Integer
Public Declare Function WriteWord Lib "ElkPortNT.dll" _
(ByVal Port As Integer, ByVal Value As Integer) As Boolean

Public Declare Function ReadLong Lib "ElkPortNT.dll" _
(ByVal Port As Integer) As Long
Public Declare Function WriteLong Lib "ElkPortNT.dll" _
(ByVal Port As Integer, ByVal Value As Integer) As Boolean

'Cas particulier du port parallèle:
Public Enum DataPin
D0 = 0
D1 = 1
D2 = 2
D3 = 3
D4 = 4
D5 = 5
D6 = 6
D7 = 7
End Enum

Public Enum ControlPin
Strobe = 0
Autofeed = 1
Init = 2
Select_In = 3
End Enum

Public Enum StatusPin
Error_ = 3
Select_ = 4
Paper = 5
Ack = 6
Busy = 7
End Enum

'Piloter les pins du DATA (de D0 à D7):
Public Declare Function PinData_On Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As DataPin) As Boolean
Public Declare Function PinData_Off Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As DataPin) As Boolean
Public Declare Function Lire_PinData Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As DataPin) As Byte
'Lire les pins du Control:
Public Declare Function PinControl_On Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As ControlPin) As Boolean
Public Declare Function PinControl_Off Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As ControlPin) As Boolean
Public Declare Function Lire_PinControl Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As ControlPin) As Byte
'Piloter les pins du Status:
Public Declare Function Lire_PinStatus Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As StatusPin) As Byte
Public Declare Function Enable_bi_directional_ParaPort Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal bidirectional As Boolean) As Boolean


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Valid As Boolean
Dim Result As Byte
Dim Result2 As Boolean

Valid = True
Valid = PinData_On(3, DataPin.D0) 'valide le pin D0
Result2 = WriteByte(3, 55) 'écrit 55 sur le port 1
Result = Lire_PinData(3, DataPin.D0) 'lire le pin D0
MsgBox(Valid)
MsgBox(Result)
MsgBox(Result2)

Valid = PinData_Off(3, DataPin.D0) 'ferme le pin D0
MsgBox(Valid)

End Sub

Est ce que quelqu'un peut m'aider à débloquer ce code.

3 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
23 janv. 2013 à 14:44
Bonjour,

Déloque ce code, tu as donc un message d'erreur? si oui merci de l'indiquer..
PS un code présenté comme ça est illisible, merci d'indenter le code et d'utiliser la coloration syntaxique (3eme icone en partant de la droite)

L'expérience, c'est une connerie par jour, mais jamais la même..
0
' Initialisation du driver
Public Declare Function InitializeElkPort Lib "ElkPortNT.dll" () As Boolean
Public Declare Sub CloseElkPort Lib "ElkPortNT.dll" ()
Public Declare Sub RemoveElkPortDriver Lib "ElkPortNT.dll" ()

'Install le driver pour un Compte administrateur ou limité
Public Declare Sub InstalElkPortDriver Lib "ElkPortNT.dll" ()

'Lire et écrire les données
Public Declare Function ReadByte Lib "ElkPortNT.dll" (ByVal Port As Integer) As Byte
Public Declare Function WriteByte Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Value As Integer) As Boolean

Public Declare Function ReadWord Lib "ElkPortNT.dll" _
(ByVal Port As Integer) As Integer
Public Declare Function WriteWord Lib "ElkPortNT.dll" _
(ByVal Port As Integer, ByVal Value As Integer) As Boolean

Public Declare Function ReadLong Lib "ElkPortNT.dll" _
(ByVal Port As Integer) As Long
Public Declare Function WriteLong Lib "ElkPortNT.dll" _
(ByVal Port As Integer, ByVal Value As Integer) As Boolean

'Cas particulier du port parallèle:
Public Enum DataPin
D0 = 0
D1 = 1
D2 = 2
D3 = 3
D4 = 4
D5 = 5
D6 = 6
D7 = 7
End Enum

Public Enum ControlPin
Strobe = 0
Autofeed = 1
Init = 2
Select_In = 3
End Enum

Public Enum StatusPin
Error_ = 3
Select_ = 4
Paper = 5
Ack = 6
Busy = 7
End Enum

'Piloter les pins du DATA (de D0 à D7):
Public Declare Function PinData_On Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As DataPin) As Boolean
Public Declare Function PinData_Off Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As DataPin) As Boolean
Public Declare Function Lire_PinData Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As DataPin) As Byte
'Lire les pins du Control:
Public Declare Function PinControl_On Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As ControlPin) As Boolean
Public Declare Function PinControl_Off Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As ControlPin) As Boolean
Public Declare Function Lire_PinControl Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As ControlPin) As Byte
'Piloter les pins du Status:
Public Declare Function Lire_PinStatus Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal Pin As StatusPin) As Byte
Public Declare Function Enable_bi_directional_ParaPort Lib "ElkPortNT.dll" (ByVal Port As Integer, ByVal bidirectional As Boolean) As Boolean


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Valid As Boolean
Dim Result As Byte
Dim Result2 As Boolean

Valid = True
Valid = PinData_On(3, DataPin.D0) 'valide le pin D0
Result2 = WriteByte(3, 55) 'écrit 55 sur le port 1
Result = Lire_PinData(3, DataPin.D0) 'lire le pin D0
MsgBox(Valid)
MsgBox(Result)
MsgBox(Result2)

Valid = PinData_Off(3, DataPin.D0) 'ferme le pin D0
MsgBox(Valid)

End Sub 


[i]Ok, merci pour l'astuce de l'identification
en fait g pas de message d'erreur, mais il n'y a rien qui ce passe là. Je comprends pas./i
0
En fait, je cherche à envoyer un bit sur la broche D0 pour vérifier que ma carte buffer marche. Mais je comprends pas, comment on fait pour envoyer des données sur le port avec ElkPortNT
0
Rejoignez-nous