Le Port parallèle - C++ - Programmation
Marsh Posté le 15-02-2005 à 08:47:07
Le compilateur ou le linker ?
Et si tu nous donnais plutôt le vrai message d'erreur ?
Marsh Posté le 15-02-2005 à 09:34:43
Le linker ne connais pas les fonctions "_inp" et "_outp", ni les fonctions "outport" et "inport".
Mais je viens de découvrir qu'elles sont obsolètes pour WIN_XP.
A première vue, il faut créer une sorte de fichier avec "CreateFile".
Est-ce-que c'est bien la marche à suivre.
Je tente un essai avec C++ Builder5 mais je n'y crois pas beaucoup...
Marsh Posté le 15-02-2005 à 09:37:39
Et si tu nous donnais plutôt le vrai message d'erreur ?
(je sais pas si c'est assez visible là).
Marsh Posté le 15-02-2005 à 09:42:49
message d'erreur:
'_inp' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
Comme tout les messages d'erreur, ça n'aide pas beaucoup...
Marsh Posté le 15-02-2005 à 09:44:23
Si, il aide beaucoup.
Il te dit que ta fonction n'est pas déclarée. C'est donc pas un problème de DLL ou de linker (puisque là, il te dirait que ta fonction n'est pas définie).
Marsh Posté le 15-02-2005 à 09:49:22
Et comment je fais pour la déclarer ?
Je trouve son prototype nulle part dans les fichiers include...
Marsh Posté le 15-02-2005 à 10:16:38
"_inp" n'est pas présent dans conio.h
Et, il parait que ces fonctions sont obsolètes et qu'il faut utiliser CreateFile
Marsh Posté le 15-02-2005 à 10:20:06
T'utilises quel compilateur pour ne pas les avoir dans conio.h ?
Secondo, si tu la déclares à la main comme ça:
Code :
|
Est-ce que ça fonctionne ?
Marsh Posté le 15-02-2005 à 10:25:46
J'utilise Dev C++ v4.9.9.1
Mais je vais tenter ta méthode...
Marsh Posté le 15-02-2005 à 10:29:39
Arf, effectivement. Gcc doit être le seul compilo sous windows à ne pas avoir ces fonctions là. (Borland, Visual C++, ICC, et même Watcom l'ont).
Marsh Posté le 15-02-2005 à 10:39:07
J'utilise Borland C++ 5 pour l'interface graphique de la transmission radio, je vais regarder si ces fonctions y sont...
Marsh Posté le 15-02-2005 à 10:45:09
J'ai ajouté les déclarations indiquées dans le fichiers conio.h de DevC++. Le programme se compile, se linke mais... plante! lol
Marsh Posté le 15-02-2005 à 11:29:57
Ce qui est normal sous WinNT.
Fais une recherche sur le forum, sujet abordé X fois.
Marsh Posté le 15-02-2005 à 11:40:25
HelloWorld a écrit : Ce qui est normal sous WinNT. |
J'étais parti du principe qu'il utilisait ceci:
http://www.logix4u.net/inpout32.htm
Marsh Posté le 15-02-2005 à 12:29:51
Il serait surprenant que ta carte radio communique sur le port parallèle, ça serait pas le port série, plutôt ?
Sous Win32, ça va pas être facile d'attaquer le port série avec des "_inp, inportb, _outp, outportb", l'accès direct aux port I/O étant protégé par l'OS (si, si, on m'a dit que Windows était un OS )
Tu peux accéder aux données des ports série via des fichiers virtuels. Cherche du côté des fonctions de l'API Win32 : CreatFile, SetCommTimeouts, Get/SetCommState, Get/SetCommModemStatus, struct DCB...
Maintenant, si c'est réellement sur port parallèle, good luck. Y'a rien(?) de moins standard que la réception de données sur port //.
Marsh Posté le 15-02-2005 à 19:45:22
Pour mon info, quel est le type de l'interface physique : un bus série (synchrone) ou vraiment une liaison parallele (a)synchrone ?
Marsh Posté le 15-02-2005 à 20:07:31
lsdyoyo a écrit : Sous Win32, ça va pas être facile d'attaquer le port série avec des "_inp, inportb, _outp, outportb", l'accès direct aux port I/O étant protégé par l'OS (si, si, on m'a dit que Windows était un OS ) |
WindowsNT oui. Sous Win9x les accès directs aux ports sont autorisés.
Marsh Posté le 16-02-2005 à 09:14:06
J'utilise la DLL inpout32.dll et les fonctions associées livrées avec ("Inp32" et "Oup32" ). Les fonctions ont l'air de fonctionner...
Il faut maintenant que je teste la communication entre le robot et le PC. En fait, la liaison se fait entre un robot (le S3R1 "road runner" de serielectronique.com) et la station de controle sous WIN_XP.
La carte radio est connéctée sur le port parallèle du PC...
Marsh Posté le 16-02-2005 à 09:17:25
Extraits de la doc fournie avec le robot :
"La carte communique avec le PC via le port parallèle. Elle utilise le port DATA en entrées et le port STATUS pour les sorties."
Marsh Posté le 16-02-2005 à 09:41:39
Quelles sont les adresses des registres STATUS et DATA ?
Je sais qu'elles varient entre 0x378 et 0x380 mais l'adresse exacte, je ne la connais pas...
Marsh Posté le 16-02-2005 à 10:28:34
J'avoue, c'était une question nulle...
J'ai trouvé les adresses sur logix4u.net
Marsh Posté le 17-02-2005 à 23:24:45
Reply
Marsh Posté le 15-02-2005 à 08:37:42
Bonjour,
Je suis en deuxième année de BTS Informatique et Réseaux et je dois, pour mon projet, gérer une communication radio avec une carte radio branchée sur le port parallèle.
J'ai téléchargé le DLL inpout32.dll censé gérer les soucis de programmation du port parallèle sous WIN_XP mais le compilateur refuse mes instructions "_inp" et "_outp".
J'éssaie toutes les bibliothèques possibles mais sans résultat.
Ca m'énérve car c'est une part de mon projet et je dois la réussir.
Est-ce-qu'il me manque quelque chose?
Merci