begin process at 2012 05 28 05:01:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Accès direct au port série sous XP ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Accès direct au port série sous XP ?

dimanche 30 avril 2006 à 00:54:58 | Accès direct au port série sous XP ?

Doum006

Bonjour à tous !

J'essaie de communiquer avec un convertisseur analogique-numérique via un adaptateur USB->série sous Windows XP. J'avais réalisé sous Linux un programme en C qui utilisait les fonctions outb et inb (accès direct aux ports d'I/O) qui fonctionnait très bien. Sous XP la situation est plus difficile...

J'ai testé quelques librairies sensées autoriser l'accès direct aux ports d'I/O : WinIo, KPort, DLPortIO, NTPort, aucune d'entre elles n'a donné de résultats. Le programme compilé avec les fonctions fournies par ces librairies ne renvoie pas d'erreurs, mais apparemment aucun signal n'est effectivement envoyé au port série...

En QBasic par contre, ça fonctionne...!  (avec les fonctions OUT et INP)

Est-ce que l'adaptateur USB->série peut être à l'origine du problème ? Ou autre chose...?

Merci pour votre aide !
++

Dom
dimanche 30 avril 2006 à 13:05:35 | Re : Accès direct au port série sous XP ?

Doum006

Suite du message précédent...

J'ai utilisé un moniteur de port série pour vérifier le fonctionnement des fonctions d'accès au ports (citées ci-dessus). Effectivement, seuls les OUT et INP de QBasic fonctionnent, ainsi que la fonction port de TurboPascal -> en résumé, seul ntvdm.exe, la machine virtuelle 16bits d'XP, parvient à accéder directement aux ports.

Finalement, j'ai également testé une librairie Matlab, IOLib (Hardware I/O Library for Matlab/Simulink), qui fonctionne en // avec un driver en kernel mode, CrackNT. Toujours pareil, aucun résultat...
dimanche 30 avril 2006 à 15:26:36 | Re : Accès direct au port série sous XP ?
dimanche 30 avril 2006 à 16:19:24 | Re : Accès direct au port série sous XP ?

Doum006

Merci pour ton aide BruNews, mais je pense pas pouvoir m'en sortir avec l'API Windows... je m'explique :
Mon objectif n'est pas d'envoyer ou de recevoir des données avec les broches TD et RD (respectivement pins 3 et 2 sur une DB-9) mais de contrôler l'état des broches de contrôle RTS (pin 7) et DTR (pin 5) et de lire celui de CTS (pin 8). Avec des fonctions d'accès direct au port, ça se fait très facilement : par ex, pour alterner entre état haut et état bas sur RTS, en Qbasic ça donne :

B = $H3F8    -> Adresse de base du port série (COM1)
OUT B+4, 0  -> RTS état bas
OUT B+4, 2  -> RTS état haut

Même chose en TurboPascal avec la fonction port, ou sous linux avec outb(). En théorie ça devrait être pareil avec les fonctions fournies par les différentes librairies citées dans mon premier message, mais non... pourtant ces fonctions, qui renvoient généralement un booléen, indiquent que l'écriture sur le port s'est déroulée correctement ! Je précise aussi que je les utilise en tant qu'administrateur, ça ne devrait donc pas poser de problème...

++
Dom

dimanche 30 avril 2006 à 16:46:13 | Re : Accès direct au port série sous XP ?

BruNews

Administrateur CodeS-SourceS
ok, il est clair que c'est différent.
Je ne pense pas que tu passeras des commandes privilégiées (out, cli, etc...) directement, les accès directs au matériel sont interceptés par le system pour garantir sa stabilité, qu'on soit en session admin ou non n'y change rien.
Il faudrait que tu mettes ces commandes dans un driver et tu lui communiquerais ce que tu veux faire par DeviceIoControl().

ciao...
BruNews, MVP VC++
dimanche 30 avril 2006 à 22:46:59 | Re : Accès direct au port série sous XP ?

Doum006

Ok merci je vais essayer d'écrire des drivers, mais à première vue c'est pas évident... Ce qui m'étonne quand même c'est de ne pas pouvoir utiliser ces librairies (WinIO, DLPortIO, etc) qui sont apparemment conçues pour ça !

++
Dom
dimanche 30 avril 2006 à 23:06:35 | Re : Accès direct au port série sous XP ?

BruNews

Administrateur CodeS-SourceS
Jamais utilisé ces librairies.

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : port, xp, série, accès, direct


Répondre à ce message

Sujets en rapport avec ce message

comment envoyer des données sur un port série sous xp [ par tchen01 ] je voudrais envoyer des commandes hexadecimales sur un port série en c++ sous xp et les commandes outp et inp ne sont pas valables.merci d'avance programmation port série/ethernet [ par zbex ] je reçois des données provenant d'un capteur sur le port série et je voudrais les envoyer sur l'interface ethernet.Je voudrais avoir si quelqu'un a un Accès direct ??? [ par PunkDude424 ] Ma question est vraiment simple mais j'ai completement oublié comment faire un acc;es directe dans un fichier ??? quelqu'un peut m'aider?? Emuler un port série et effectuer un envoi vers un autre port série [ par Elyro ] Tout d'abord salut à toutes et à tous, voilà plusieurs années que je glanne des infos sur le site sans même avoir besoin de poser des questions, c'est Gérer le port série [ par orchis ] j'ai écris un programme en C utilisant le port série. Il fonctionne trés bien sous W98, mais il y a des problémes sous 2000 et XP. pouvez vous m'aider Communications avec le port série [ par matt5744 ] Je souhaiterais lire et écrire des données sur mon port série avec un programme en C/C++ ou VBA. Je recherche pour cela des exemples de programmes per ouvrerture d'un port de COM sur un windows en version anglaise [ par alfred ] Salut à tous !!!J'ai un petit probleme pour ouvir un port de COM sur un pc avec une version anglaise de windows XPvoici ce que j'utilise pour ouvrir l pb port série, Visual C++, bios.h [ par Amiral_tChai ] Bonjour, je dois, pour mon travail, dialoguer avec un périphérique via le port COM. J'ai déjà fait plusieurs versions de programme pour dialoguer via help accés au port paralléle sur XP [ par DJBACON_17 ] bonjour j'aurais aimé savoir comment modifier la base de registre pour pouvoir accéder au port parallèle sur windows XPOu si vous avez un meilleur moy port série [ par biscot19 ] Bonjour, Je lis des informations sur le port série venant d'une imprimante. Cependant quand mon imprimante n'est pas sous tension, elle ne renvoi rien


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales