Je fais une application qui recoit des donnée du port serie,toutefois
l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" au tout
début et il ne rentre jamais.
Par conte je me suis fait un timer de 30ms pour verifier le port et cela
fonctionne sans probleme.
J'ai essayé desupprimer le controle et d'en refaire un nouveau mais sans
succes.Pourtant au début de mes tests l'event oncomm fonctionnait,c'est
étrange!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"Dan" a écrit dans le message de news:O9m$%
Salut
Je fais une application qui recoit des donnée du port serie,toutefois l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" au tout début et il ne rentre jamais.
Par conte je me suis fait un timer de 30ms pour verifier le port et cela fonctionne sans probleme. J'ai essayé desupprimer le controle et d'en refaire un nouveau mais sans succes.Pourtant au début de mes tests l'event oncomm fonctionnait,c'est étrange!
Hello,
Que vaut ton inputLen ? -> Si il n'est pas à 0, le mettre à 0.
Es tu sur des paramètres (ex:"9600,N,8,1") ? -> vérifier
Mets un timer à 100 millisecondes, et affiche dans un textbox multiligne la valeur de la propriété CommEvent, comme ça: text1.text = time & " : " & MSComm1.CommEvent & vbcrlf & text1.text -> étudier l'affichage et en déduire ce qui ne va pas.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Dan" <no@spam.net> a écrit dans le message de
news:O9m$%23zu7FHA.3760@TK2MSFTNGP14.phx.gbl...
Salut
Je fais une application qui recoit des donnée du port serie,toutefois
l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" au tout
début et il ne rentre jamais.
Par conte je me suis fait un timer de 30ms pour verifier le port et cela
fonctionne sans probleme.
J'ai essayé desupprimer le controle et d'en refaire un nouveau mais sans
succes.Pourtant au début de mes tests l'event oncomm fonctionnait,c'est
étrange!
Hello,
Que vaut ton inputLen ?
-> Si il n'est pas à 0, le mettre à 0.
Es tu sur des paramètres (ex:"9600,N,8,1") ?
-> vérifier
Mets un timer à 100 millisecondes, et affiche dans un textbox
multiligne la valeur de la propriété CommEvent, comme ça:
text1.text = time & " : " & MSComm1.CommEvent & vbcrlf & text1.text
-> étudier l'affichage et en déduire ce qui ne va pas.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Je fais une application qui recoit des donnée du port serie,toutefois l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" au tout début et il ne rentre jamais.
Par conte je me suis fait un timer de 30ms pour verifier le port et cela fonctionne sans probleme. J'ai essayé desupprimer le controle et d'en refaire un nouveau mais sans succes.Pourtant au début de mes tests l'event oncomm fonctionnait,c'est étrange!
Hello,
Que vaut ton inputLen ? -> Si il n'est pas à 0, le mettre à 0.
Es tu sur des paramètres (ex:"9600,N,8,1") ? -> vérifier
Mets un timer à 100 millisecondes, et affiche dans un textbox multiligne la valeur de la propriété CommEvent, comme ça: text1.text = time & " : " & MSComm1.CommEvent & vbcrlf & text1.text -> étudier l'affichage et en déduire ce qui ne va pas.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Fred
Dans : news:4382510f$0$13444$, Jean-Marc disait :
"Dan" a écrit dans le message de news:O9m$%
Salut
Je fais une application qui recoit des donnée du port serie,toutefois l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" au tout début et il ne rentre jamais.
Hello,
Que vaut ton inputLen ? -> Si il n'est pas à 0, le mettre à 0.
Es tu sur des paramètres (ex:"9600,N,8,1") ? -> vérifier
Bonjour, J'ajouterais, changer la valeur du RThreshold (nombre de caractères reçus qui déclenche l'événement). Avec une valeur de 1, l'événement sera appelé à chaque caractère arrivé sur la com.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:4382510f$0$13444$ba620e4c@news.skynet.be,
Jean-Marc disait :
"Dan" <no@spam.net> a écrit dans le message de
news:O9m$%23zu7FHA.3760@TK2MSFTNGP14.phx.gbl...
Salut
Je fais une application qui recoit des donnée du port serie,toutefois
l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint"
au tout début et il ne rentre jamais.
Hello,
Que vaut ton inputLen ?
-> Si il n'est pas à 0, le mettre à 0.
Es tu sur des paramètres (ex:"9600,N,8,1") ?
-> vérifier
Bonjour,
J'ajouterais, changer la valeur du RThreshold (nombre de caractères
reçus qui déclenche l'événement).
Avec une valeur de 1, l'événement sera appelé à chaque caractère arrivé
sur la com.
Je fais une application qui recoit des donnée du port serie,toutefois l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" au tout début et il ne rentre jamais.
Hello,
Que vaut ton inputLen ? -> Si il n'est pas à 0, le mettre à 0.
Es tu sur des paramètres (ex:"9600,N,8,1") ? -> vérifier
Bonjour, J'ajouterais, changer la valeur du RThreshold (nombre de caractères reçus qui déclenche l'événement). Avec une valeur de 1, l'événement sera appelé à chaque caractère arrivé sur la com.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dan
Salut à vous 2 ! merci bien de m'aider la seule chose qui m'a permit de faire fonctionner l'évenement oncomm est en mettant RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par contre.
Voici un exemple de trame que je recois a chaque fois, jamais plus de 16 caracteres j'envoie ceci @01100000071* +enter chr(13) et je recoie @0110000002173* +enter chr(13)
Pour ceux qui connaissent, je dois communiquer avec des controles de temperatures de marque Omron(e5ck) pour lire la temperature actuelle et changer le setpoint.
"Fred" a écrit dans le message de news: %
Dans : news:4382510f$0$13444$, Jean-Marc disait : > "Dan" a écrit dans le message de > news:O9m$% >> Salut
>> Je fais une application qui recoit des donnée du port serie,toutefois >> l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" >> au tout début et il ne rentre jamais.
> Hello, > > Que vaut ton inputLen ? > -> Si il n'est pas à 0, le mettre à 0. > > Es tu sur des paramètres (ex:"9600,N,8,1") ? > -> vérifier
Bonjour, J'ajouterais, changer la valeur du RThreshold (nombre de caractères reçus qui déclenche l'événement). Avec une valeur de 1, l'événement sera appelé à chaque caractère arrivé sur la com.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Salut à vous 2 !
merci bien de m'aider
la seule chose qui m'a permit de faire fonctionner l'évenement oncomm est en
mettant
RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par contre.
Voici un exemple de trame que je recois a chaque fois, jamais plus de 16
caracteres
j'envoie ceci @01100000071* +enter chr(13) et je recoie
@0110000002173* +enter chr(13)
Pour ceux qui connaissent, je dois communiquer avec des controles de
temperatures de marque Omron(e5ck) pour lire la temperature actuelle et
changer le setpoint.
"Fred" <foleide@libre.france> a écrit dans le message de news:
%23dXcPNy7FHA.308@TK2MSFTNGP10.phx.gbl...
Dans : news:4382510f$0$13444$ba620e4c@news.skynet.be,
Jean-Marc disait :
> "Dan" <no@spam.net> a écrit dans le message de
> news:O9m$%23zu7FHA.3760@TK2MSFTNGP14.phx.gbl...
>> Salut
>> Je fais une application qui recoit des donnée du port serie,toutefois
>> l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint"
>> au tout début et il ne rentre jamais.
> Hello,
>
> Que vaut ton inputLen ?
> -> Si il n'est pas à 0, le mettre à 0.
>
> Es tu sur des paramètres (ex:"9600,N,8,1") ?
> -> vérifier
Bonjour,
J'ajouterais, changer la valeur du RThreshold (nombre de caractères
reçus qui déclenche l'événement).
Avec une valeur de 1, l'événement sera appelé à chaque caractère arrivé
sur la com.
Salut à vous 2 ! merci bien de m'aider la seule chose qui m'a permit de faire fonctionner l'évenement oncomm est en mettant RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par contre.
Voici un exemple de trame que je recois a chaque fois, jamais plus de 16 caracteres j'envoie ceci @01100000071* +enter chr(13) et je recoie @0110000002173* +enter chr(13)
Pour ceux qui connaissent, je dois communiquer avec des controles de temperatures de marque Omron(e5ck) pour lire la temperature actuelle et changer le setpoint.
"Fred" a écrit dans le message de news: %
Dans : news:4382510f$0$13444$, Jean-Marc disait : > "Dan" a écrit dans le message de > news:O9m$% >> Salut
>> Je fais une application qui recoit des donnée du port serie,toutefois >> l'evenement "oncomm" ne s'execute jamais. J'ai mis un "breakpoint" >> au tout début et il ne rentre jamais.
> Hello, > > Que vaut ton inputLen ? > -> Si il n'est pas à 0, le mettre à 0. > > Es tu sur des paramètres (ex:"9600,N,8,1") ? > -> vérifier
Bonjour, J'ajouterais, changer la valeur du RThreshold (nombre de caractères reçus qui déclenche l'événement). Avec une valeur de 1, l'événement sera appelé à chaque caractère arrivé sur la com.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Fred
Dans le message:, Dan écrit:
Salut à vous 2 ! merci bien de m'aider la seule chose qui m'a permit de faire fonctionner l'évenement oncomm est en mettant RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par contre.
C'est comme ça ;-) Si tu le laisses à zéro, cela signifie que tu ne souhaites pas le déclenchement de l'événement oncomm sur arrivée de caractères. Pense que cet événement peut être appelé également sur erreur, ou sur changement d'état des fils de contrôle, ou même sur le départ de caractères.
Voici un exemple de trame que je recois a chaque fois, jamais plus de 16 caracteres j'envoie ceci @01100000071* +enter chr(13) et je recoie @0110000002173* +enter chr(13)
Pour ceux qui connaissent, je dois communiquer avec des controles de temperatures de marque Omron(e5ck) pour lire la temperature actuelle et changer le setpoint.
Je ne connais pas ces équipements mais je te propose une façon de procéder qui a fonctionné pour moi et que j'ai donnée il y a un moment ici :
Dans la feuille qui contient ton contrôle MSComm, tu déclares en variable de feuille une chaîne «trame»
Dans l'événement on_comm tu utilises un select case du style :
Select Case MSComm1.CommEvent Case .... Case .... Case comEvReceive Carac = MSComm1.Input If Carac = Chr$(13) Then 'Ici le traitement de la ligne reçue
trame = "" Else trame = trame & Carac End If
Case .... End Select
Carac peut être déclaré en local dans le On_Comm Et pour les paramètres RThreshold = 1 InputLen = 1 (plus les autres que tu connais) Je te laisse consulter la doc pour vérifier les constantes CommEvent (je ne suis plus sûr du comEvReceive) Et si tu veux gérer d'autres événements, tu les intègres dans les «case» qui restent. (intéressant de voir les différents événements qui surviennent lors de l'établissement de la connexion par exemple)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans le message:eM5b0Y27FHA.956@TK2MSFTNGP10.phx.gbl,
Dan écrit:
Salut à vous 2 !
merci bien de m'aider
la seule chose qui m'a permit de faire fonctionner l'évenement oncomm
est en mettant
RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par
contre.
C'est comme ça ;-)
Si tu le laisses à zéro, cela signifie que tu ne souhaites pas le
déclenchement de l'événement oncomm sur arrivée de caractères. Pense que
cet événement peut être appelé également sur erreur, ou sur changement
d'état des fils de contrôle, ou même sur le départ de caractères.
Voici un exemple de trame que je recois a chaque fois, jamais plus de
16 caracteres
j'envoie ceci @01100000071* +enter chr(13) et je recoie
@0110000002173* +enter chr(13)
Pour ceux qui connaissent, je dois communiquer avec des controles de
temperatures de marque Omron(e5ck) pour lire la temperature actuelle
et changer le setpoint.
Je ne connais pas ces équipements mais je te propose une façon de
procéder qui a fonctionné pour moi et que j'ai donnée il y a un moment
ici :
Dans la feuille qui contient ton contrôle MSComm, tu déclares en
variable de feuille une chaîne «trame»
Dans l'événement on_comm tu utilises un select case du style :
Select Case MSComm1.CommEvent
Case ....
Case ....
Case comEvReceive
Carac = MSComm1.Input
If Carac = Chr$(13) Then
'Ici le traitement de la ligne reçue
trame = ""
Else
trame = trame & Carac
End If
Case ....
End Select
Carac peut être déclaré en local dans le On_Comm
Et pour les paramètres
RThreshold = 1
InputLen = 1
(plus les autres que tu connais)
Je te laisse consulter la doc pour vérifier les constantes CommEvent (je
ne suis plus sûr du comEvReceive)
Et si tu veux gérer d'autres événements, tu les intègres dans les «case»
qui restent.
(intéressant de voir les différents événements qui surviennent lors de
l'établissement de la connexion par exemple)
Salut à vous 2 ! merci bien de m'aider la seule chose qui m'a permit de faire fonctionner l'évenement oncomm est en mettant RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par contre.
C'est comme ça ;-) Si tu le laisses à zéro, cela signifie que tu ne souhaites pas le déclenchement de l'événement oncomm sur arrivée de caractères. Pense que cet événement peut être appelé également sur erreur, ou sur changement d'état des fils de contrôle, ou même sur le départ de caractères.
Voici un exemple de trame que je recois a chaque fois, jamais plus de 16 caracteres j'envoie ceci @01100000071* +enter chr(13) et je recoie @0110000002173* +enter chr(13)
Pour ceux qui connaissent, je dois communiquer avec des controles de temperatures de marque Omron(e5ck) pour lire la temperature actuelle et changer le setpoint.
Je ne connais pas ces équipements mais je te propose une façon de procéder qui a fonctionné pour moi et que j'ai donnée il y a un moment ici :
Dans la feuille qui contient ton contrôle MSComm, tu déclares en variable de feuille une chaîne «trame»
Dans l'événement on_comm tu utilises un select case du style :
Select Case MSComm1.CommEvent Case .... Case .... Case comEvReceive Carac = MSComm1.Input If Carac = Chr$(13) Then 'Ici le traitement de la ligne reçue
trame = "" Else trame = trame & Carac End If
Case .... End Select
Carac peut être déclaré en local dans le On_Comm Et pour les paramètres RThreshold = 1 InputLen = 1 (plus les autres que tu connais) Je te laisse consulter la doc pour vérifier les constantes CommEvent (je ne suis plus sûr du comEvReceive) Et si tu veux gérer d'autres événements, tu les intègres dans les «case» qui restent. (intéressant de voir les différents événements qui surviennent lors de l'établissement de la connexion par exemple)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dan
Salut encore Je me souviens maintenant de ce parametre, j'avais oublié de le mettre à 1 Ca faisait longtemps que j'avais pas communiqué par port série :)
La chose qui m'a porté a confusion c'est qu'au tout début j'ai recu les données avec l'évenement du "oncomm" mais ce parametre était bien à zero, c'est par la suite qu'il a arreté de fonctionner :P
"Fred" a écrit dans le message de news:
Dans le message:, Dan écrit: > Salut à vous 2 ! > merci bien de m'aider > la seule chose qui m'a permit de faire fonctionner l'évenement oncomm > est en mettant > RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par > contre.
C'est comme ça ;-) Si tu le laisses à zéro, cela signifie que tu ne souhaites pas le déclenchement de l'événement oncomm sur arrivée de caractères. Pense que cet événement peut être appelé également sur erreur, ou sur changement d'état des fils de contrôle, ou même sur le départ de caractères.
> Voici un exemple de trame que je recois a chaque fois, jamais plus de > 16 caracteres > j'envoie ceci @01100000071* +enter chr(13) et je recoie > @0110000002173* +enter chr(13) > > Pour ceux qui connaissent, je dois communiquer avec des controles de > temperatures de marque Omron(e5ck) pour lire la temperature actuelle > et changer le setpoint.
Je ne connais pas ces équipements mais je te propose une façon de procéder qui a fonctionné pour moi et que j'ai donnée il y a un moment ici :
Dans la feuille qui contient ton contrôle MSComm, tu déclares en variable de feuille une chaîne «trame»
Dans l'événement on_comm tu utilises un select case du style :
Select Case MSComm1.CommEvent Case .... Case .... Case comEvReceive Carac = MSComm1.Input If Carac = Chr$(13) Then 'Ici le traitement de la ligne reçue
trame = "" Else trame = trame & Carac End If
Case .... End Select
Carac peut être déclaré en local dans le On_Comm Et pour les paramètres RThreshold = 1 InputLen = 1 (plus les autres que tu connais) Je te laisse consulter la doc pour vérifier les constantes CommEvent (je ne suis plus sûr du comEvReceive) Et si tu veux gérer d'autres événements, tu les intègres dans les «case» qui restent. (intéressant de voir les différents événements qui surviennent lors de l'établissement de la connexion par exemple)
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Salut encore
Je me souviens maintenant de ce parametre, j'avais oublié de le mettre à 1
Ca faisait longtemps que j'avais pas communiqué par port série :)
La chose qui m'a porté a confusion c'est qu'au tout début j'ai recu les
données avec l'évenement du "oncomm" mais ce parametre était bien à zero,
c'est par la suite qu'il a arreté de fonctionner :P
"Fred" <foleide@libre.france> a écrit dans le message de news:
uwjLgh27FHA.1148@tk2msftngp13.phx.gbl...
Dans le message:eM5b0Y27FHA.956@TK2MSFTNGP10.phx.gbl,
Dan écrit:
> Salut à vous 2 !
> merci bien de m'aider
> la seule chose qui m'a permit de faire fonctionner l'évenement oncomm
> est en mettant
> RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par
> contre.
C'est comme ça ;-)
Si tu le laisses à zéro, cela signifie que tu ne souhaites pas le
déclenchement de l'événement oncomm sur arrivée de caractères. Pense que
cet événement peut être appelé également sur erreur, ou sur changement
d'état des fils de contrôle, ou même sur le départ de caractères.
> Voici un exemple de trame que je recois a chaque fois, jamais plus de
> 16 caracteres
> j'envoie ceci @01100000071* +enter chr(13) et je recoie
> @0110000002173* +enter chr(13)
>
> Pour ceux qui connaissent, je dois communiquer avec des controles de
> temperatures de marque Omron(e5ck) pour lire la temperature actuelle
> et changer le setpoint.
Je ne connais pas ces équipements mais je te propose une façon de
procéder qui a fonctionné pour moi et que j'ai donnée il y a un moment
ici :
Dans la feuille qui contient ton contrôle MSComm, tu déclares en
variable de feuille une chaîne «trame»
Dans l'événement on_comm tu utilises un select case du style :
Select Case MSComm1.CommEvent
Case ....
Case ....
Case comEvReceive
Carac = MSComm1.Input
If Carac = Chr$(13) Then
'Ici le traitement de la ligne reçue
trame = ""
Else
trame = trame & Carac
End If
Case ....
End Select
Carac peut être déclaré en local dans le On_Comm
Et pour les paramètres
RThreshold = 1
InputLen = 1
(plus les autres que tu connais)
Je te laisse consulter la doc pour vérifier les constantes CommEvent (je
ne suis plus sûr du comEvReceive)
Et si tu veux gérer d'autres événements, tu les intègres dans les «case»
qui restent.
(intéressant de voir les différents événements qui surviennent lors de
l'établissement de la connexion par exemple)
Salut encore Je me souviens maintenant de ce parametre, j'avais oublié de le mettre à 1 Ca faisait longtemps que j'avais pas communiqué par port série :)
La chose qui m'a porté a confusion c'est qu'au tout début j'ai recu les données avec l'évenement du "oncomm" mais ce parametre était bien à zero, c'est par la suite qu'il a arreté de fonctionner :P
"Fred" a écrit dans le message de news:
Dans le message:, Dan écrit: > Salut à vous 2 ! > merci bien de m'aider > la seule chose qui m'a permit de faire fonctionner l'évenement oncomm > est en mettant > RThreshold à 1 comme Fred a suggeré, je comprends pas pourquoi par > contre.
C'est comme ça ;-) Si tu le laisses à zéro, cela signifie que tu ne souhaites pas le déclenchement de l'événement oncomm sur arrivée de caractères. Pense que cet événement peut être appelé également sur erreur, ou sur changement d'état des fils de contrôle, ou même sur le départ de caractères.
> Voici un exemple de trame que je recois a chaque fois, jamais plus de > 16 caracteres > j'envoie ceci @01100000071* +enter chr(13) et je recoie > @0110000002173* +enter chr(13) > > Pour ceux qui connaissent, je dois communiquer avec des controles de > temperatures de marque Omron(e5ck) pour lire la temperature actuelle > et changer le setpoint.
Je ne connais pas ces équipements mais je te propose une façon de procéder qui a fonctionné pour moi et que j'ai donnée il y a un moment ici :
Dans la feuille qui contient ton contrôle MSComm, tu déclares en variable de feuille une chaîne «trame»
Dans l'événement on_comm tu utilises un select case du style :
Select Case MSComm1.CommEvent Case .... Case .... Case comEvReceive Carac = MSComm1.Input If Carac = Chr$(13) Then 'Ici le traitement de la ligne reçue
trame = "" Else trame = trame & Carac End If
Case .... End Select
Carac peut être déclaré en local dans le On_Comm Et pour les paramètres RThreshold = 1 InputLen = 1 (plus les autres que tu connais) Je te laisse consulter la doc pour vérifier les constantes CommEvent (je ne suis plus sûr du comEvReceive) Et si tu veux gérer d'autres événements, tu les intègres dans les «case» qui restent. (intéressant de voir les différents événements qui surviennent lors de l'établissement de la connexion par exemple)