Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : problème gestion port serie [ Archives / c, c++ et asm ] (chfauve59)

jeudi 24 juin 2004 à 14:29:25 | problème gestion port serie

chfauve59

Bonjour, j'aimerai savoir comment faire pour géré le port série sous windows NT avec Builder ou VC++ sans avoir a utiliser les commandes API de windows car je veux traité la réception d'un octet dès qu'il est reçu sur le port sans attendre la suite des octets qui arrivent, je ne veu surtout pas utiliser de Buffer pour lire les octets. Mon but est de faire la transmission des caractères recus sur le port série sur réseau ethernet(100 MBits) pour le retransmettre sur le port série d'un poste distant et vice versa donc il faut que je commence a traité les infos recu sur le port série. Est-t-il possible de traité a bas niveau le port série sous Windows NT? J'ai déjà fais un programme utilisant les méthode CreateFile(), SetComm.... avec gestion de thread mais j'ai des problèmes de timing, la liaison est de type 9600 bauds 8 bits avec parité, le problème est que windows s'occupe de mettre plusieurs octet dans un buffer interne ce qui me bloque. Quelqu'un connait t il une solution pour avoir un évenement de reception que d'un seul octet ou de pouvoir réduire le buffer interne de l'API de reception a un seul octet? Merci beaucoup d'avance.

seb (chfauve59)

jeudi 24 juin 2004 à 17:46:06 | Re : problème gestion port serie

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

et ça, ça marche pas ?

BOOL SetupComm(
HANDLE hFile, // handle of communications device
DWORD dwInQueue, // size of input buffer
DWORD dwOutQueue // size of output buffer
);

@++

samedi 3 juillet 2004 à 21:54:36 | Re : problème gestion port serie

ToutEnMasm

Bonjour,
Je vois la meme question depuis bientot un mois.
Si le probleme est vraiment si pointu,il faut en passer par la gestion du port série par interruptions.Sous windows seul un vxd est capable de faire ça.Un programme normal se heurte au niveau de privilege requis pour installer une interruption.
Il faut télécharger le DDK,nécessaire a faire des drivers.
Le ddk utilise ml (masm32) comme langage.
Un exemple tout fait existe sur internet ,je l'ai vu mais je ne me rappelle plus trop ou.
Sur mon site ,a la page de lien , se rendre sur le site des auteurs de msdn,un des auteurs est spécialisé la dedans.
Avec un peu de chance ,un de ses articles fournira le source et des explications.
C'est le vxd type peu difficile à réaliser.
Une fois le vxd installé,c'est lui qui a la priorité .

ToutEnMasm



lundi 5 juillet 2004 à 10:16:22 | Re : problème gestion port serie

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

ToutEnMasm, je crois que tu n'as pas bien lu la question:
Bonjour, j'aimerai savoir comment faire pour géré le port série sous windows NT avec Builder ou VC++

kidi NT dit pas de vxd, les drivers c bien mais c pas le + portable. ( de +, j'ai fournis un exemple pour hooker le port COM par driver vxd sur ce site, le hook est une bonne solution car cela permet de charger le driver en dynamique )

@++

lundi 5 juillet 2004 à 11:30:56 | Re : problème gestion port serie

ToutEnMasm


Salut,
j'ai bien lu la question.je cite

"Quelqu'un connait t il une solution pour avoir un évenement de reception que d'un seul octet ou de pouvoir réduire le buffer interne de l'API de reception a un seul octet? "

Et la réponse c'est le vxd qui la fournit avec une éventuelle création de message windows.
Le vxd permet de créer une interruption par pic pour chaque octet reçus et de les mettre dans un tampon dimensionnable a volonté.
Le vxd remplace l'API.
A mon avis , tu ne vois pas trop comment gérer un port série.
Se renseigner sur l'uart , l'usb.
ToutEnMasm

lundi 5 juillet 2004 à 13:00:01 | Re : problème gestion port serie

patatalo

Membre Club Administrateur CodeS-SourceS

re,

je ne rentrerais pas dans ton débat car il ne m'interesse pas étant donné que nous ne parlons pas de la meme phrase.

alors demande a d'autres ...
pas de vxd dans un noyau NT, je confirme...

@++

lundi 5 juillet 2004 à 17:39:58 | Re : problème gestion port serie

ToutEnMasm


Salut,
Pour avoir des réponses dans un groupe de discussion il faut savoir poser les bonnes questions.
Je ne demande rien du tout.
Tout cela m'a l'air fort confus.
a+
ToutEnMasm

lundi 31 janvier 2005 à 19:54:28 | Re : problème gestion port serie

mitah86

moi auussi j'ai le même probleme et j'(aimes bien une reponse le plus vite possibles

mardi 1 février 2005 à 10:54:55 | Re : problème gestion port serie

patatalo

Membre Club Administrateur CodeS-SourceS
re,

le problème dans la gestion du port serie est la désynchronisation des évènements entre le driver et l'application.

les messages sont attendus par les fonctions Wait???.

il y a 2 mode de programmation:
le mode bloquant et le mode overlapped.
en mode bloquant, il est possible d'augmenter la priorité du thread qui répond aux evenements.
en mode overlap, la gestion est plus simple et non bloquante mais moins portable avec d'autres systemes d'exploitation.

dans le cas d'une gestion octet par octet, je pense qu'il faut faire une gestion bloquante en augmentant la priorité du thread ( coté applicatif ) qui gère les entrées COM.

si tu utilise le mode overlap, il faut creer une boucle de lecture octet / octet. ( en cas de reception de plusieurs octets )
sur le site de msdn, il y a un article interressant sur le port serie qui explique tout ça, j'ai plus la page en tete.

@++

samedi 11 mars 2006 à 12:56:46 | Re : problème gestion port serie

momo le bricoleur

peut être pourrai tu utiliser le port com a bas niveau, je sait pas vraiment comment tu peut le faire sur le PC, mais pour la calculatrice graphique TI89 en langage C,j'utilisais peekIO(0x60000E) pour lire l'état du port et pokeIO(60000E,...) pour ecrire.
ce n'est pas sur que ce soit la meme fonction pour un PC

donc je serai aussi intéréssé de savoir comment untiliser le port com a bas niveau (fair directement varier les état logiques sur les broches)...



Cette discussion est classé dans : problème, port, windows, série, octet


Répondre à ce message

Sujets en rapport avec ce message

Help! port série/clavier [ par projectman ] Voilà je dois réaliser un driver claiver pour pc en C++ et je ne sais pas trop comment faire et surtout par où commencer.Donc je dispose d'un clavier 512 bps port serial [ par abarbu ] est il possible sous Windows (9x ou XP) que je programme le 8253 timer pour obtenir 512 Hz e user ce frequence pour le port serialle (RS232) ?Sous DO problème avec le port 0x60 qui fait des faire des beeps [ par prunkdump ] voilà lorsque j'utilise le port I\O 0x60 pour voir l'etat du clavier d'abord tout fonctionne bien puis au bout d'un moment le pc fait des beeps, comme Creation commande port série [ par hypotamtam ] Bonjours, je suis novice dans l'electronique et je voudrais savoir si quelqu'un pourrais m'aide ou me donner des liens internet.Je souhaiterai juste s Interception d'événements sur port série [ par ffred10 ] Bonjour.Je voudrais espionner un bus I2C en le reliant sur le port série.Je n'ai pas de problème avec les connections électroniques, ni avec la techno Problème de syles Windows XP [ par Nemesis ] Suite à une mauvaise manipulation (c toujours comme ça que ça arrive), j'ai perdu le style de Windows XP (fenètres bleues, etc...) et je retrouve la v Problème d'adresse effective [ par Ihlianov ] Hi,J'ai un problème avec NASM, qui me rend cinglé.Je code un .Com (16 bits) et il me revoit une erreur sur l'instruction suivante : mov ax, [d EXE Infector [ par seboss ] Bonjour tout le monde,Je dois realiser un petit projet sympas utilisant le C++,VB et ASM... Mais l'ASm je ne connasi pas assez bien pour realiser ce q Petit problème pour le nul en assembleur que je suis Merci d'avance [ par rgc50 ] Trouver parmis les 5 nombres 67, 79, 15, e3, 72 le nombre le pls élevé, on le stockera le résultat en 0100 (en assembleur 68000 (MOTOROLA)). piloter port serie sous VCpp [ par orchis ] Bjr a tous, je voudrais pouvoir controler le port serie de mon PC sous VCpp.pourriez vous m'aider ?merci d'avance !c Urgent !!


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.