ECRITURE / LECTURE PORT PARALLÈLE

gaillus Messages postés 14 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 22 octobre 2013 - 19 avril 2005 à 12:43
gaillus Messages postés 14 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 22 octobre 2013 - 15 avril 2007 à 23:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30849-ecriture-lecture-port-parallele

gaillus Messages postés 14 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 22 octobre 2013
15 avril 2007 à 23:29
Salut ScripteurPermanent,

l'ensemble des fichiers de winio permette l'accès au port parallèle, pour le port série je ne suis pas sur que ça fonctionne. En cherchant tu devrais certainement trouvé un driver pour piloter le port série.
Quel système d'exploitation as-tu et quel compilateur utilises-tu?

La librairie winio fonctionne avec visual studio et permet l'accès au port parrèle avec win XP ou 2000.

Voilou.

Bonne prog.
ScripteurPermanent Messages postés 18 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 9 avril 2007
9 avril 2007 à 18:08
Salut sebseb42 et merci de ton aide,
Mais excuse moi d'être un apprentis mais chez moi ça ne marche pas ! Si je compile en C ça me met pleins d'erreures et si je mets:

extern "C"
{
...
}

il me met une erreur aussi ...
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
9 avril 2007 à 09:04
il faut que tu compile ton code en C, ou alors tu englobe ton code qui fait appel a ces 3 fonctions dans un bloque

extern "C"
{
...
}
ScripteurPermanent Messages postés 18 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 9 avril 2007
8 avril 2007 à 17:33
Bonjour,

Ca fait longtemps que je cherche à piloter mon port Série, j'ai trouvé pleins de sources que je n'ai jamais réeussi à faire marcher.
En ce qui concerne WinIo, je l'ai téléchargé, mais je n'arrive pas à l'installer sous Code::block, j'ai fais comme l'auteur a dit mais quand je compile, il me dit:

<
.objs\main.o:main.cpp:(.text+0x2b): undefined reference to `_imp__InitializeWinIo@0'
.objs\main.o:main.cpp:(.text+0x49): undefined reference to `_imp__SetPortVal@12'
.objs\main.o:main.cpp:(.text+0x53): undefined reference to `_imp__ShutdownWinIo@0'
>

Quelqu'un peut-il me dire d'où mon problème viens SVP, merci beaucoup !!
A++
gaillus Messages postés 14 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 22 octobre 2013
10 févr. 2007 à 00:08
Salut,
pour ma part, je ne connais pas Borland CBuilder.
Tu essaye d'ecrire sur le port parallele avec Borland?

Pour ma part, j'ai trouvé cette librairie qui fonctionne avec visual studio.
Le fichier d'aide fourni avec la librairie ne parle pas de Borland CBuilder, winio.dll ne fonctionera certainement pas avec ce compilateur.

Essaye d'autre recherche.

Bonne continuation.
BorlandUser Messages postés 1 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 9 janvier 2007
9 janv. 2007 à 14:33
Quelqu'un peut me conseiller quoi utiliser avec Borland CBuilder?
J'ai les mêmes problèmes que vous évidemment ...
mriviere Messages postés 17 Date d'inscription jeudi 26 janvier 2006 Statut Membre Dernière intervention 23 juin 2006
26 janv. 2006 à 17:15
Bonjour a tous, bon et bien toujours le même problème des heures a chercher comment écrire sur le port parallèle et puis... Le forum!! Je vois que ce forum est vraiment bien et qu'il y a des gens trés compétant c'est pourquoi je fais appel a vous!! J'ai télécharger le ZIP fourni par galius et mes question sont:
Faut t-il seuleument suivre ces instruction pour pouvoir utiliser inp et outp sous Borland C++??
"Place winio.dll, winio.vxd and winio.sys in the directory where your application's executable file resides.
Create a winio.lib file by running the IMPLIB utility that is bundled with C++ Builder.
Add the generated winio.lib to your project file.
Remove the WINIO_API constant from the function declarations in winio.h.
Add the "#include "winio.h" statement to your source file.
Call InitializeWinIo.
Call the library's functions to access I/O ports and physical memory.
Call ShutdownWinIo. "

Donc si j'ai bien compris une fois que j'aurais effectué toutes ces bidouille je pourrais récupérer les données qui arrivent sur mon port??? Pouvez vous me confirmer et me préciser si il y a des petits piège ou des astuce!!!!
Merci beaucoup!!

Mateo
cs_thesee Messages postés 3 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 7 juillet 2005
7 juil. 2005 à 17:12
Merci Gaillus , mais j'ai trouvé un moyen de le faire.

Sous Labview, après avoir consulté bon nombre de forums et datasheets j'ai vu que je pouvais utiliser le driver AccessHW que j'ai trouvé facilement sur le net, on lance le setup.EXE et il va se mettre la où il faut, c'est magique et simple!!!

Le problème c'est que je ne sais pas si ce driver marche avec un programme en C !! à tester .

thesee
gaillus Messages postés 14 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 22 octobre 2013
7 juil. 2005 à 11:19
Pour répondre à Thesee il faut regarder dans le fichier WinIo.chm (fichier d'aide) se trouvant dans le répertoire help pour savoir ou mettre les fichiers. La démarche est expliqué.

De mémoire (car je n'ai pas le projet sous les yeux) il faut mettre winio.dll dans windows/system32 et ensuite il suffit d'inclure a ton projet winio.h, winio.sys et de rajouter winio.vxd dans le répertoire où il y a ton executable pour un bon fonctionnement.

winio.dll libere l'acces au port car windows 2000 et XP verrouille cet acces.
Les autres fichiers permettent l'access à la dll et contienent les fonctions d'ouverture du port, de lecture et d'ecriture.

Pour LABVIEW je connais pas.

Mais sinon ya les autres drivers cité + haut qui peuvent fonctionner aussi ; à tester!

En espérant de dépanner.

Bonne prog à tous.

Gaillus.
cs_thesee Messages postés 3 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 7 juillet 2005
7 juil. 2005 à 09:53
d'ou ma question SEBSEB42, où trouver ce driver, comment s'apelle t-il ? etc, dans quel dossier le mettre ? ...

je voudrais avoir toutes ces infos pour pouvoir dialoguer avec mon port parallèle normalement, après LABVIEW est un compilateur différent des autres mais le problème reste entier , LE DRIVER !!!
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
6 juil. 2005 à 20:44
je ne connais pas LABVIEW, desoler, de plus je n'utilise pas non plus DevC++

j'ai bien compris que tu avais des problemes avec le driver du port parallele, mais sache qu'un code en C++, en C ou meme en assembleur, ne pourront ecrire sur le port si tu n'as pas un driver qui te le permet.

c'est ce qu'on appel la memoire proteger, c'est une protection au niveau du noyeau et pas au niveau du compilateur, donc meme un code en assembleur compiler avec le compilo le plus rustique que tu puisse trouver n'y changerons rien, il faut que tu fasse fonctionner le driver, apres tu ne devrais pu avoir trop de soucis
cs_thesee Messages postés 3 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 7 juillet 2005
6 juil. 2005 à 17:44
salut à tous, notamment à Gallius,

après avoir chercher pendant des heures comment faire tourner un programme permettant d'écrire sur le port //, j'ai lu votre forum,

ainsi j'ai plusieurs questions :

1) j'ai essayé de faire tourner ton programme sous DEV-C++ (ultime version) et ça ne tourne pas , je pense que je ne met pas au bon endroit les dll etc, peux-tu me dirre Gallius quels sont les fichiers importants et où je doit les mettre ?

2) je ne sais pas si vous connaissez mais je cherche à écrire sur mon port // à partir de visa créer sous LABVIEW 7.0 express et cela me retourne des erreurs, ainsi je pense que le problème réside dans le fait que XP bloque l'écriture sur les périphériques donc je voudrais essayer en c sous DEV-C++ de telle sorte qu'après je pourrais entrer ma routine en c dans mon programme labview.

merci de m'aider car je ne sais plus quoi faire !!! HELP
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
20 avril 2005 à 21:36
je n'ai jamais tester d'installer DriverLINX en user normal, je l'ai toujours fait avec un user possedant des droits admin, je ne sais pas ce que ca donne a ce niveau la.

c'est un driver qui donne access en lecture et ecriture toute la ram, ca peut etre dangereux de s'en servir a mauvaise essient, mais l'avantage c'est qu'il n'y a pas de lib avec, n'importe quel language capable d'ecrire et de lire en memoire peut acceder aux ports :)

on peut utiliser le port // meme dans un language aussi pourrit que le perl, c'est pas formidable ? :)
gaillus Messages postés 14 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 22 octobre 2013
20 avril 2005 à 21:17
Et bien je répond à mon tour.
Personnellement j'utilise winio car c'est le seul que je suis arrivé a faire fonctionner correctement et facilement.
Les autres driver j'ai essayé mais n'ayant pas pu arrivé a un resultat j'ai enfin trouvé winio.
Pour VC++, il suffit d'inclure a ton projet winio.h, winio.sys et de rajouter winio.vxd dans le répertoire où il y a ton executable pour un bon fonctionnement.
Au niveau logiciel tu appele une fonction qui libère l'acces au port ensuite tu peut lire et ecrire sur le port avec _inp() et _outp().
Mais tout cela est expliqué dans le fichier d'aide.
L'avantage (je ne sais pas si c'est vrai pour les autre) c'est que l'on peut avoir accés au port sans etre logué en admistrateur et l'on peut l'utiliser avec d'autre compilateur.

Apparament driverlinx a l'air bien aussi. j'ai du mal m'y prendre pour le faire fonctionner. De mémoire il fonctionne seulement avec c++ builder non?

Aprés chacun fait comme il veut. Je ne dit pas que c'est "LA SOLUTION ULTIME" pour lire sur le port //.
Je voulais juste apporter ma pierre a l'édifice.

Allé bonne continuation et bonne prog à tous.
samuelbrie Messages postés 35 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 20 avril 2005
20 avril 2005 à 12:19
Je n'ai utilisé que DLPortIO, je ne peux pas comparer.
bloobird0 Messages postés 30 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 23 octobre 2008
19 avril 2005 à 17:45
merci sebseb42 pour ce retour d'expérience
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
19 avril 2005 à 17:11
j'ai utiliser DLPortIO et DriverLINX

DLPortIO est bien mais le probleme c'est qu'a chaques fois que tu veux t'en servir il faut le... "reinstaller" :S et quand tu ne veux plus t'en servir, tu le decharge, si tu veux t'en reservir plus tard, tu doit rebooter ta machine.
De plus, ce que je ne comprend pas, c'est que le programme d'exemple semble avoir ete coder par un amateur de la pire espece :S

Enfin DriverLINX tu l'install, tu t'en sert, il fonctionne niquel, je n'ai pas a m'en plaindre.

Apres un driver c'est un driver, je ne pense pas qu'il y ai a chipoter de performance ou autre, mais ce qu'il faut regarder c'est ce qui gravite autour.

En admettant que tu dois deployer une application qui utilise le port // sur plein de postes differents et que ton application doit avoir un niveau de fiabiliter elever, tu peux oublier DLPortIO, pour le deployer tu va lutter car 2 fois sur 3 tu va te faire chier pour l'installer/lancer/decharger/recharger, ca t'impliquera des interventions massives, et de plus ton programme ce lance alors que le driver fait un caprice, bah ton prog plantera, ou au mieux il fonctionnera mais dans l'incapaciter a utiliser le port //

DriverLINX, tu install et c'est fini, ensuite ton prog accede ou port // sans souci.
bloobird0 Messages postés 30 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 23 octobre 2008
19 avril 2005 à 17:02
pouvez vous donner vos raisons au pourquoi vous conseillez WinIO, DLportIO ou DriverLinx: avantages, inconvénients ou bien est-ce du snobisme car vous n'avez utilisé qu'un seul parmis tous ceux qui existent?
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
19 avril 2005 à 16:08
perso je conseil DriverLINX
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
19 avril 2005 à 16:08
moi perso je conseil DriverLinx
samuelbrie Messages postés 35 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 20 avril 2005
19 avril 2005 à 12:54
Il faut mieux utiliser DLPortIO
gaillus Messages postés 14 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 22 octobre 2013
19 avril 2005 à 12:43
N'ayez pas peur en voyant tous ces fichier,il ne sont pas tous utiles pour utiliser le port //.
Il suffit seulement de : winio.dll, winio.vxd, winio.sys.
Ensuite il y a des exemples et un fichier d'aide très utile.
Le mieux c'est de prendre toute la source et regarder ce qui vous intéresse.

Bonne prog à tous.