begin process at 2008 08 28 22:15:03
1 233 393 membres
485 nouveaux aujourd'hui
14 291 membres club

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)

problème gestion port serie le 24/06/2004 14:29:25

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)

Re : problème gestion port serie le 24/06/2004 17:46:06

patatalo
Membre Club
(Admin CS)

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
);

@++

Re : problème gestion port serie le 03/07/2004 21:54:36

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



Re : problème gestion port serie le 05/07/2004 10:16:22

patatalo
Membre Club
(Admin CS)

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 )

@++

Re : problème gestion port serie le 05/07/2004 11:30:56

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

Re : problème gestion port serie le 05/07/2004 13:00:01

patatalo
Membre Club
(Admin CS)

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...

@++

Re : problème gestion port serie le 05/07/2004 17:39:58

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

Re : problème gestion port serie le 31/01/2005 19:54:28

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

Re : problème gestion port serie le 01/02/2005 10:54:55

patatalo
Membre Club
(Admin CS)
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.

@++

Re : problème gestion port serie le 11/03/2006 12:56:46

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)...


Classé sous : problème, port, windows, série, octet

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS