RS232

Signaler
Messages postés
4
Date d'inscription
jeudi 15 août 2002
Statut
Membre
Dernière intervention
24 septembre 2007
-
Messages postés
75
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
7 janvier 2008
-
Bonjour

J'utilise depuis 8 ans une routine d'intérrogation d'un RS232 pour des balances sous un OS 95-98. Lors de l'installation du prOgramme en 2000 ou XP, cette commande ne fonctionne plus.... Qui peut m'aider ???

J'utilise un MSCOMM

Une commande qui dit d'envoyer les infos ---> MSCOMM.OUTPUT="S" & VBCRLF

Et la commande de lecture ---> sChar = MSCOMM.INPUT   ... qui ne fonctionne plus. Même en débogage, aucune entrée !!!!!!!

Le hardware marche sans problème, c'est vraiment l'OS qui me pose problème. J''ai fait les mise à jour VB SP5 et SP6 + mise à jour des MSCOMM de Microsoft

Please HELP .....

Merci

FunFun

7 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Vérifie d'abords que tu comminique bien avec ta balance, que tu es sur le bon port. Fait un test avec Hyperterminal.

Il se peut que le port est changé entre 95 et 2000

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
75
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
7 janvier 2008

Oui, le test avec Hyperteminal est tres bon pour diagnostiquer.

Jette un oeil dans la configuration des ports comm dans ton panneau de configuration, je me rappelle avoir eu des problèmes avec ca ( ca fait un bail ! )
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Tu peux aussi regarder quelles sont les valeurs des propriétés InputLen  et RThreshold  de ton objet MSCOMM

En effet car MSDN Dit:

InputLen, propriété
La valeur par défaut de la propriété InputLen est 0. Si vous attribuez
la valeur 0 à la propriété InputLen, le contrôle MSComm lit la
totalité du tampon de réception lorsque la propriété Input est
utilisée.

Si le nombre de caractères indiqué par la propriété InputLen n'est pas
disponible dans le tampon de réception, la propriété Input renvoie une
chaîne de longueur nulle (""). L'utilisateur peut éventuellement vérifier la
valeur de la propriété InBufferCount pour déterminer si le nombre de
caractères requis est disponible avant d'utiliser la propriété Input.

OnComm, événementLa propriété CommEvent contient le code numérique de l'erreur ou de
l'événement qui a généré l'événement OnComm. Notez que si la valeur 0 est
attribuée aux propriétés RThreshold ou SThreshold, la récupération
des événements comEvReceive et comEvSend, respectivement, est
désactivée.

Voila j'espère que cela peu t'aider

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
4
Date d'inscription
jeudi 15 août 2002
Statut
Membre
Dernière intervention
24 septembre 2007

Merci

Hyperterminal OK

FunFun
Messages postés
4
Date d'inscription
jeudi 15 août 2002
Statut
Membre
Dernière intervention
24 septembre 2007

J'utilise dans un programme qui envoie des sms au travers d'un modem sms les commandes InputLen, ....


J'ai testé cette programmation et effectivement je reçois dans Input === "" le vide


InBufferCount == la valeur reste à 0


En faisant tourner un émulateur 98 sur la machine 2000 ... cela marche mais en full 2000 ou XP .. RIEN


J'ai essayé sur 3 machines différentes .. 2000, XP familial et XP Pro ... rien n'y fait


C'est comme si le control utilisé (standard de VB) bloquait .... dès que je passe en 2000 mais fonctionne en 98

FunFun
Messages postés
4
Date d'inscription
jeudi 15 août 2002
Statut
Membre
Dernière intervention
24 septembre 2007

L'envoi de la commande fonctionne c'est la lecture du buffer d'entrée qui bloque

FunFun
Messages postés
75
Date d'inscription
samedi 30 août 2003
Statut
Membre
Dernière intervention
7 janvier 2008

Sur le windows pour lequel ca deconne :

Tu va dans gestionnaires de peripheriques:

Tu selectionne ton port comm puis " propriétés"

dans "parametres du port" :

Tu verifie s'il est configuré pareil que sur ton autre machine ( celle qui marche ), et surtout :
-Tu desactive le controle de flux.
-Et dans les parametres avancés tu desactive l'utilisation des tampons FIFO.