[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.
lolokun
Messages postés1241Date d'inscriptionmardi 10 octobre 2006StatutMembreDernière intervention27 août 20137 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..
' 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
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