
le Port Parallele ?
le Port Parallele ?
quelqu'un connais le truc pour ecrire et lire le port parallele ?? 

je voudrai attaquer directement l'entre et la sortie de ce port pour gerer un scanner
(le primax4800) , dont le driver est dispo pour nt et 98 et parfaitement incompatible avec XP !!
il faudrait l'equivalent de "out(port)" et "imp(port)" pour le pure , pour les bidouiles ça manque !!!!
ps !: la librairie MVcom ne gere que le serial je crois !
(le primax4800) , dont le driver est dispo pour nt et 98 et parfaitement incompatible avec XP !!

il faudrait l'equivalent de "out(port)" et "imp(port)" pour le pure , pour les bidouiles ça manque !!!!
ps !: la librairie MVcom ne gere que le serial je crois !

j'ai peut etre trouvé la soluce !!
il existe un dll qui s'apelle "IO.DLL" chercher sur google c'est facile !!
dispo ici : http://perso.easynet.fr/~chrisg/vbdll.htm
puis en pure :
cette dll permetrai d'attaquer directement tout les port du pc !! 
principe d'utilisation :
je vais essayer dans mon coin , mais tennez nous au courrant de vos essai eventuel !
reedit : ARG ! le message windows xp est clair ! , y veux pas qu'on s'amuse avec une dll qui attaques directos les ports !
il existe un dll qui s'apelle "IO.DLL" chercher sur google c'est facile !!
dispo ici : http://perso.easynet.fr/~chrisg/vbdll.htm
puis en pure :
Code : Tout sélectionner
;Further to my reply under messages "PC based Measurements"
;here is a sample of code to write to the P.Port using 'io.dll' and Purebasic.
PortNum.l = $378 ; LPT1
;- (check library file open)
LibOpen.l = OpenLibrary(1,"io.dll")
If LibOpen = 0
End
EndIf
CallFunction(1,"PortOut", PortNum,$080) ; write 80h to port 378h
End

principe d'utilisation :
Code : Tout sélectionner
Je rapelle que cette DLL contient les fonctions et procédure suivantes :
Procedure OUT(Adresse du port;Valeur a écrire sur ce port)
Function INP(Adresse du port que l'on désire lire) qui renvoie l'octet présent sur le port.
je vais essayer dans mon coin , mais tennez nous au courrant de vos essai eventuel !

reedit : ARG ! le message windows xp est clair ! , y veux pas qu'on s'amuse avec une dll qui attaques directos les ports !

develloppeur de io.dll http://www.geekhideout.com/iodll.shtml
et info sur port // ,là http://www.timgoldstein.com/CNC/ParallelPortPrimer.htm
pat
et info sur port // ,là http://www.timgoldstein.com/CNC/ParallelPortPrimer.htm
pat
Dernière modification par nico le dim. 14/nov./2004 13:25, modifié 1 fois.
pour io.dll cité par patrick88 voici un petit programme pour vos test !!
@Nico Merci ! 
tu peux rajouter un espace entre tes ":" et "http:" ?? Merci d'avance
cela crera le lien !
Code : Tout sélectionner
; doc pour io.dll
; function Descriptions
; Please refer To the prototype For the particular language you are using.
;
; PortOut
; Outputs a byte To the specified port.
;
; PortWordOut
; Outputs a word (16-bits) To the specified port.
;
; PortDWordOut
; Outputs a double word (32-bits) To the specified port.
;
; PortIn
; Reads a byte from the specified port.
;
; PortWordIn
; Reads a word (16-bits) from the specified port.
;
; PortDWordIn
; Reads a double word (32-bits) from the specified port.
;
; SetPortBit
; Sets the bit of the specified port.
;
; ClrPortBit
; Clears the bit of the specified port.
;
; NotPortBit
; Nots (inverts) the bit of the specified port.
;
; GetPortBit
; Returns the State of the specified bit.
;
; RightPortShift
; Shifts the specified port To the right. the LSB is returned, And the Value passed becomes the MSB.
;
; LeftPortShift
; Shifts the specified port To the left. the MSB is returned, And the Value passed becomes the LSB.
;
; IsDriverInstalled
; Returns non-zero If io.dll is installed And functioning. the primary purpose of this function is To ensure that the kernel mode driver For NT/2000/XP has been installed And is accessible.
PortNum.l = $378 ; LPT1 (port parallel )
LibOpen.l = OpenLibrary(1,"io.dll")
If LibOpen = 0
End
EndIf
CallFunction(1,"PortOut", PortNum,$80) ; write 80h to port 378h
Delay(1000)
End

tu peux rajouter un espace entre tes ":" et "http:" ?? Merci d'avance
cela crera le lien !

Port Parallele
J'ai absolument besoin de lire et écrire sur un port parallele.Dobro a écrit :pour io.dll cité par patrick88 voici un petit programme pour vos test !!
Depuis 2004, peut-être quelqu'un a trouvé une solution finale qui marche.
io.dll c'est bien, mais oü l'installer?
Quel est le code exact et complet pour les deux fonctionnalités. I & O?
S.V.P. En termes de débutants!
Si une solution complète est disponible, il y tout un monde qui s'ouvre à Pure Basic, le SEUL langage de programmation que je désire utiliser, par ses grandes qualités. Cependant, que c'est frustrant de se voir limité dans les applications, seulement à cause d'une petite limitation qui bloque finalement tout ce que je pourrais accomplir!
Pour moi, PB s'effondre si cette limitation n'est pas débloquée.
Merci pour l'aide!
Yves
Re: Port Parallele
Lui a écrit : io.dll c'est bien, mais oü l'installer?
Quel est le code exact et complet pour les deux fonctionnalités. I & O?
S.V.P. En termes de débutants!
ben c'est une DLL elle doit se trouver a coter de ton prg (dans le meme repertoire)
sinon tu doit préciser le chemin ou se trouve ta dll dans le " OpenLibrary(1,"io.dll") "
autre emplacement possible "c:\windows\System32"
toute les Dll du system se trouve a cette emplacement

ensuite tu appel les fonctions entree/sortie comme l'exemple que j'ai donné
Code : Tout sélectionner
PortNum.l = $378 ; LPT1 (port parallel )
LibOpen.l = OpenLibrary(1,"io.dll")
If LibOpen = 0
End
EndIf
CallFunction(1,"PortOut", PortNum,$80) ; write 80h to port 378h
Delay(1000)
End
cette exemple , par l'intermédiaire de la fonction PortOut
va envoyer la valeur (octet) $80h au port parallèle !

et attendre 1 seconde
pour lire un octet tu utilise PortIn sans argument
Code : Tout sélectionner
Resultat.b = CallFunction(1,"PortIn ")
Port Parallele
Merci Michel,
voici ce que j'ai essayé:
Le tout s'exécute sans code d'erreur, et semble fonctionner normalement du cöté software, mais le port physique ne répond pas.
Je ne sais plus quoi essayer.
Yves
voici ce que j'ai essayé:
Code : Tout sélectionner
OpenLib_ID.l=OpenLibrary(1,"io.dll")
OutPortNum=888
InPortNum=889
IsItOk=CallFunction(1,"IsDriverInstalled" )
MessageRequester("","Is it installed= "+Str(IsItOk))
;It returns -1
If OpenLib_ID.l=0
MessageRequester("","Can't open")
Else
MessageRequester("",Str(OpenLib_ID.l))
;It returns a valid ID
EndIf
For i= 1 To 10
CallFunction(1,"Port Out",OutPortNum,15)
Delay (100)
CallFunction(1,"Port Out",OutPortNum,0)
Delay (100)
Next i
;No output to the port
a=CallFunction(1,"Port In",InPortNum)
MessageRequester("","INP= "+Str(a))
;A 0 is returned
CloseLibrary(1)
End
Je ne sais plus quoi essayer.
Yves
Salut les gars, je n'avais pas vu ce post auparavant, donc désolé.
Il y a une DLL qui s'appelle WINIO. Le seul hic c'est qu'elle appartient à une entreprise donc c'est pas très légal. Je me suis dit que j'en ferai une un jour mais bon, il y a du boulot, ça ne se fait pas sans des connaissances très précises de XP, et sur ce point, je fais défaut. En attendant, si vous réussissez à vous la procurer, vous pourrez, en plus de de rentrer et de sortir des données sur les ports, déterminer le nombre de ports dispo, leur nature et leur adresse. En gros, vous faîtes une routine qui se charge de tout gérer pour qu'il n'y ait aucun problème de compatibilité et reconnaissance d'une bécane à l'autre.
ATTENTION A IO.DLL ! ! ! Elle est lente et contient une routine qui informe son créateur de votre localisation et de la fréquence d'utilisation sans votre accord.
Certains industriels vendent jusqu'à 300€ ce type de DLL.
Il y a une DLL qui s'appelle WINIO. Le seul hic c'est qu'elle appartient à une entreprise donc c'est pas très légal. Je me suis dit que j'en ferai une un jour mais bon, il y a du boulot, ça ne se fait pas sans des connaissances très précises de XP, et sur ce point, je fais défaut. En attendant, si vous réussissez à vous la procurer, vous pourrez, en plus de de rentrer et de sortir des données sur les ports, déterminer le nombre de ports dispo, leur nature et leur adresse. En gros, vous faîtes une routine qui se charge de tout gérer pour qu'il n'y ait aucun problème de compatibilité et reconnaissance d'une bécane à l'autre.
ATTENTION A IO.DLL ! ! ! Elle est lente et contient une routine qui informe son créateur de votre localisation et de la fréquence d'utilisation sans votre accord.
Certains industriels vendent jusqu'à 300€ ce type de DLL.