bonjour
dans mon programme j'utilise la fontion mscomm.oncomm,
j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret
sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input
mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce
qui est normal apres une lecture du buffer mais ma variable est vide elle
aussi comment etre sûr de l'affectation du texte du buffer dans ma variable?
ci joint le bout de programme (rien de plus simple) et pourtant ça pose
probleme !!
Public Sub MSComm1_OnComm()
char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide )
Traitement (mon sous programme )
End Sub
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Bonjour,
Avez vous vérifier au préalable que : MSComm1.portopen = true et que la variable char_rec est déclarée qq part ? Vérifiez en outre si la propriété inputlen de l'objet MScomm1 est compatible avec la variable char-rec.
A+
Christophe
jean claude a écrit :
bonjour
dans mon programme j'utilise la fontion mscomm.oncomm,
j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret
sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input
mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce
qui est normal apres une lecture du buffer mais ma variable est vide elle
aussi comment etre sûr de l'affectation du texte du buffer dans ma variable?
ci joint le bout de programme (rien de plus simple) et pourtant ça pose
probleme !!
Public Sub MSComm1_OnComm()
char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide )
Traitement (mon sous programme )
End Sub
Bonjour,
Avez vous vérifier au préalable que :
MSComm1.portopen = true et que la variable char_rec est déclarée qq part ?
Vérifiez en outre si la propriété inputlen de l'objet MScomm1 est
compatible avec la variable char-rec.
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Bonjour,
Avez vous vérifier au préalable que : MSComm1.portopen = true et que la variable char_rec est déclarée qq part ? Vérifiez en outre si la propriété inputlen de l'objet MScomm1 est compatible avec la variable char-rec.
A+
Christophe
jean-marc
"touriste" wrote in message news:47288316$0$27394$
jean claude a écrit :
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Bonjour,
Avez vous vérifier au préalable que : MSComm1.portopen = true et que la variable char_rec est déclarée qq part ?
De préférence localement, même si on doit ensuite l'affecter à une variable de portée plus étendue.
Vérifiez en outre si la propriété inputlen de l'objet MScomm1 est compatible avec la variable char-rec.
Et réciproquement :-)
Idéalement, on devrait déclarer dans ce genre de cas Dim char_rec As String
"touriste" <touriste@g.fr> wrote in message
news:47288316$0$27394$ba4acef3@news.orange.fr...
jean claude a écrit :
bonjour
dans mon programme j'utilise la fontion mscomm.oncomm,
j'affecte le texte reçu sur la RS232 à une variable, si je produit un
arret sur cette ligne je peut visualiser le texte en info bulle dans
mscomm.input mais lorsque je passe à l'instruction suivante (F8)
mscomm.input est vide ce qui est normal apres une lecture du buffer mais
ma variable est vide elle aussi comment etre sûr de l'affectation du
texte du buffer dans ma variable?
ci joint le bout de programme (rien de plus simple) et pourtant ça pose
probleme !!
Public Sub MSComm1_OnComm()
char_rec = Form1.MSComm1.Input (char_rec variable indefiniment
vide )
Traitement (mon sous programme )
End Sub
Bonjour,
Avez vous vérifier au préalable que :
MSComm1.portopen = true et que la variable char_rec est déclarée qq part ?
De préférence localement, même si on doit ensuite l'affecter à
une variable de portée plus étendue.
Vérifiez en outre si la propriété inputlen de l'objet MScomm1 est
compatible avec la variable char-rec.
Et réciproquement :-)
Idéalement, on devrait déclarer dans ce genre de cas
Dim char_rec As String
"touriste" wrote in message news:47288316$0$27394$
jean claude a écrit :
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Bonjour,
Avez vous vérifier au préalable que : MSComm1.portopen = true et que la variable char_rec est déclarée qq part ?
De préférence localement, même si on doit ensuite l'affecter à une variable de portée plus étendue.
Vérifiez en outre si la propriété inputlen de l'objet MScomm1 est compatible avec la variable char-rec.
Et réciproquement :-)
Idéalement, on devrait déclarer dans ce genre de cas Dim char_rec As String
bien sûr mes variable sont declarées, mon port ouvert, en fait si je suis en mode pas à pas => pas d'affectation de ma variable
en mode normal, j'ai 2 text box affectées par cette variable à different endrois du prog pour verification l'une m'affiche une bonne partie du texte sans le debut, l'autre les 2 derniers caracteres et ça en partant de la variable char_rec dans laquelle je tranfere mon text reçu donc pas de possibilité de debuggage ni de fonctionnement correct !!!
bien sûr mes variable sont declarées, mon port ouvert, en fait si je suis en
mode pas à pas => pas d'affectation de ma variable
en mode normal, j'ai 2 text box affectées par cette variable à different
endrois du prog pour verification
l'une m'affiche une bonne partie du texte sans le debut, l'autre les 2
derniers caracteres
et ça en partant de la variable char_rec dans laquelle je tranfere mon text
reçu
donc pas de possibilité de debuggage ni de fonctionnement correct !!!
bien sûr mes variable sont declarées, mon port ouvert, en fait si je suis en mode pas à pas => pas d'affectation de ma variable
en mode normal, j'ai 2 text box affectées par cette variable à different endrois du prog pour verification l'une m'affiche une bonne partie du texte sans le debut, l'autre les 2 derniers caracteres et ça en partant de la variable char_rec dans laquelle je tranfere mon text reçu donc pas de possibilité de debuggage ni de fonctionnement correct !!!
jean claude
slt je viens de faire le test avec variable locale idem
Private Sub MSComm1_OnComm() Dim Toto As String
Toto = Form1.MSComm1.Input char_rec = Toto Traitement End Sub
si je fais un break sur "traitement" l'info bulle de input est tjs = à mon text en reception, char_rec et toto sont tjs egale à "" (text vide)
par contre si je place : char_rec = mscomm1.input juste apres la commande pour recevoir ce mot , je n'ai pas de probleme ex:
mais je ne peux pas fonctionner ainsi tout le temps car par la suit ce sont des valeur envoyées automatiquement à l'ordi d'ou la necessité du : "oncomm"
slt
je viens de faire le test avec variable locale idem
Private Sub MSComm1_OnComm()
Dim Toto As String
Toto = Form1.MSComm1.Input
char_rec = Toto
Traitement
End Sub
si je fais un break sur "traitement" l'info bulle de input est tjs = à mon
text en reception, char_rec et toto sont tjs egale à "" (text vide)
par contre si je place :
char_rec = mscomm1.input
juste apres la commande pour recevoir ce mot , je n'ai pas de probleme ex:
mais je ne peux pas fonctionner ainsi tout le temps car par la suit ce sont
des valeur envoyées automatiquement à l'ordi d'ou la necessité du : "oncomm"
mais je ne peux pas fonctionner ainsi tout le temps car par la suit ce sont des valeur envoyées automatiquement à l'ordi d'ou la necessité du : "oncomm"
jean claude
slt j'ai fait le test avec une variable locale : tjs pareil l'info bulle de input contient bien le text reçu mais pas mon char_rec par contre si je place l'input juste apres le output pas de probleme ex:
mais je ne peux pas fonctionner ainsi car l'ordi doit recevoir des valeurs d'ou l'utilisation de OnComm (et les prob qui vont avec)
slt
j'ai fait le test avec une variable locale :
tjs pareil l'info bulle de input contient bien le text reçu mais pas mon
char_rec
par contre si je place l'input juste apres le output pas de probleme ex:
slt j'ai fait le test avec une variable locale : tjs pareil l'info bulle de input contient bien le text reçu mais pas mon char_rec par contre si je place l'input juste apres le output pas de probleme ex:
Je suis peut-être complètement à côté de la plaque mais je crois me souvenir que le port COM se comportait dans le temps (il y a bien longtemps que je n'ai pas mis les mains dans le cambouis) comme un tampon et que la lecture ne le vidait pas. Il fallait utiliser un commande du genre flush ou dans ce genre (une sorte de bruit de chasse d'eau). Donc la lecture du port renvoyait toujours la lecture du début et il y avait même des risques de débordement dont le traitement dépendait de chaque machine. Mais peut-être que ce que je dis n'a rien à voir avec votre problème et dans ce cas mon intervention est parfaitement inutile même si elle part d'un bon sentiment.
"jean claude" a écrit dans le message de news:
bien sûr mes variable sont declarées, mon port ouvert, en fait si je suis en mode pas à pas => pas d'affectation de ma variable
en mode normal, j'ai 2 text box affectées par cette variable à different endrois du prog pour verification l'une m'affiche une bonne partie du texte sans le debut, l'autre les 2 derniers caracteres et ça en partant de la variable char_rec dans laquelle je tranfere mon text reçu donc pas de possibilité de debuggage ni de fonctionnement correct !!!
Je suis peut-être complètement à côté de la plaque mais je crois me souvenir
que le port COM se comportait dans le temps (il y a bien longtemps que je
n'ai pas mis les mains dans le cambouis) comme un tampon et que la lecture
ne le vidait pas. Il fallait utiliser un commande du genre flush ou dans ce
genre (une sorte de bruit de chasse d'eau). Donc la lecture du port
renvoyait toujours la lecture du début et il y avait même des risques de
débordement dont le traitement dépendait de chaque machine.
Mais peut-être que ce que je dis n'a rien à voir avec votre problème et
dans ce cas mon intervention est parfaitement inutile même si elle part d'un
bon sentiment.
"jean claude" <jeanclaude@discussions.microsoft.com> a écrit dans le message
de news: E6775A29-5777-4F85-BBC0-6EB34945CC1F@microsoft.com...
bien sûr mes variable sont declarées, mon port ouvert, en fait si je suis
en
mode pas à pas => pas d'affectation de ma variable
en mode normal, j'ai 2 text box affectées par cette variable à different
endrois du prog pour verification
l'une m'affiche une bonne partie du texte sans le debut, l'autre les 2
derniers caracteres
et ça en partant de la variable char_rec dans laquelle je tranfere mon
text
reçu
donc pas de possibilité de debuggage ni de fonctionnement correct !!!
Je suis peut-être complètement à côté de la plaque mais je crois me souvenir que le port COM se comportait dans le temps (il y a bien longtemps que je n'ai pas mis les mains dans le cambouis) comme un tampon et que la lecture ne le vidait pas. Il fallait utiliser un commande du genre flush ou dans ce genre (une sorte de bruit de chasse d'eau). Donc la lecture du port renvoyait toujours la lecture du début et il y avait même des risques de débordement dont le traitement dépendait de chaque machine. Mais peut-être que ce que je dis n'a rien à voir avec votre problème et dans ce cas mon intervention est parfaitement inutile même si elle part d'un bon sentiment.
"jean claude" a écrit dans le message de news:
bien sûr mes variable sont declarées, mon port ouvert, en fait si je suis en mode pas à pas => pas d'affectation de ma variable
en mode normal, j'ai 2 text box affectées par cette variable à different endrois du prog pour verification l'une m'affiche une bonne partie du texte sans le debut, l'autre les 2 derniers caracteres et ça en partant de la variable char_rec dans laquelle je tranfere mon text reçu donc pas de possibilité de debuggage ni de fonctionnement correct !!!
tking
jean claude a formulé la demande :
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Pour avoir titillé mscomm il y a quelques temps, je me range du coté de ceux qui pensent qu'il y a une histoire de buffer (ou tampon) qui ne se vide pas et qu'il faut aller lire. Sinon, as-tu regarder dans les propriétés du port com depuis le gestionnaire de périphériques de windows ?
jean claude a formulé la demande :
bonjour
dans mon programme j'utilise la fontion mscomm.oncomm,
j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret
sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input
mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce
qui est normal apres une lecture du buffer mais ma variable est vide elle
aussi comment etre sûr de l'affectation du texte du buffer dans ma variable?
ci joint le bout de programme (rien de plus simple) et pourtant ça pose
probleme !!
Public Sub MSComm1_OnComm()
char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide
) Traitement (mon sous programme )
End Sub
Pour avoir titillé mscomm il y a quelques temps, je me range du coté de
ceux qui pensent qu'il y a une histoire de buffer (ou tampon) qui ne se
vide pas et qu'il faut aller lire.
Sinon, as-tu regarder dans les propriétés du port com depuis le
gestionnaire de périphériques de windows ?
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Pour avoir titillé mscomm il y a quelques temps, je me range du coté de ceux qui pensent qu'il y a une histoire de buffer (ou tampon) qui ne se vide pas et qu'il faut aller lire. Sinon, as-tu regarder dans les propriétés du port com depuis le gestionnaire de périphériques de windows ?
Fred
"jean claude" <jean a écrit dans le message de news:
ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Poste un bloc significatif du code *et* des paramétrages (propriétés de MsComm).
"jean claude" <jean claude@discussions.microsoft.com> a écrit dans le
message de news: 64E0A758-FEEE-4B68-8850-9D478BEF24B5@microsoft.com...
ci joint le bout de programme (rien de plus simple) et pourtant ça pose
probleme !!
Poste un bloc significatif du code *et* des paramétrages (propriétés de
MsComm).
"jean claude" <jean a écrit dans le message de news:
ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Poste un bloc significatif du code *et* des paramétrages (propriétés de MsComm).
Jean-marc
jean claude wrote:
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Hello,
il faut bien lire la doc du composant. Il est facile à employer, mais il y a bcp de paramètres à prendre en compte.
Pour ce qui est de Input, la doc est claire: => Returns and removes a stream of data from the receive buffer.
La lecture est donc destructrice: après l'affectation, le buffer est vidé.
Le PLUS important: Pour que ça marche bien (dans ton cas), tu dois vérifier que la propriété InputLen est bien à zéro. Et le inputMode à "InputModeText".
Pour le reste, rien de sorcier. j'ai fait des applis RS232 à la pelle, j'ai encore fait l'autre jour un petit programme de lecture code barre avec RS232, ça fonctionne très bien pour autant qu'on soit très méthodique et surtout ==>> SURTOUT <<== d'avoir lu la doc de long en large et de comprendre parfaitement le rôle de chacune des propriétés. J'oserais dire que avec ce composant, sur base de mon expérience (+/- 15 ans) avec ce composant, 99% des ennuis rencontrés viennent d'une lecture insuffisante de la doc. Puis 0,9% viennent de problème de code (variables mal déclarées, effets de bords évènementiels, etc). Les 0,1% restants, c'est des problèmes hardware, souvent des specs constructeurs mal ficelées ou fausses.
Conseil: Faire un petit programme isolé pour bien tester la partie PURE RS232. Une fois ceci fait et maitrisé, alors tu peux intégrer dans le prog principal. Ce n'est qu'un conseil.
bonjour
dans mon programme j'utilise la fontion mscomm.oncomm,
j'affecte le texte reçu sur la RS232 à une variable, si je produit un
arret sur cette ligne je peut visualiser le texte en info bulle dans
mscomm.input mais lorsque je passe à l'instruction suivante (F8)
mscomm.input est vide ce qui est normal apres une lecture du buffer
mais ma variable est vide elle aussi comment etre sûr de
l'affectation du texte du buffer dans ma variable? ci joint le bout
de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm()
char_rec = Form1.MSComm1.Input (char_rec variable
indefiniment vide ) Traitement (mon sous
programme )
End Sub
Hello,
il faut bien lire la doc du composant. Il est facile à employer, mais
il y a bcp de paramètres à prendre en compte.
Pour ce qui est de Input, la doc est claire:
=> Returns and removes a stream of data from the receive buffer.
La lecture est donc destructrice: après l'affectation, le buffer est vidé.
Le PLUS important:
Pour que ça marche bien (dans ton cas), tu dois vérifier que la
propriété InputLen est bien à zéro.
Et le inputMode à "InputModeText".
Pour le reste, rien de sorcier. j'ai fait des applis RS232 à la pelle,
j'ai encore fait l'autre jour un petit programme de lecture code
barre avec RS232, ça fonctionne très bien pour autant qu'on soit
très méthodique et surtout ==>> SURTOUT <<== d'avoir lu la
doc de long en large et de comprendre parfaitement le rôle
de chacune des propriétés. J'oserais dire que avec ce composant,
sur base de mon expérience (+/- 15 ans) avec ce composant,
99% des ennuis rencontrés viennent d'une lecture insuffisante
de la doc. Puis 0,9% viennent de problème de code (variables
mal déclarées, effets de bords évènementiels, etc).
Les 0,1% restants, c'est des problèmes hardware, souvent des
specs constructeurs mal ficelées ou fausses.
Conseil:
Faire un petit programme isolé pour bien tester la partie PURE RS232.
Une fois ceci fait et maitrisé, alors tu peux intégrer dans le prog
principal. Ce n'est qu'un conseil.
bonjour dans mon programme j'utilise la fontion mscomm.oncomm, j'affecte le texte reçu sur la RS232 à une variable, si je produit un arret sur cette ligne je peut visualiser le texte en info bulle dans mscomm.input mais lorsque je passe à l'instruction suivante (F8) mscomm.input est vide ce qui est normal apres une lecture du buffer mais ma variable est vide elle aussi comment etre sûr de l'affectation du texte du buffer dans ma variable? ci joint le bout de programme (rien de plus simple) et pourtant ça pose probleme !!
Public Sub MSComm1_OnComm() char_rec = Form1.MSComm1.Input (char_rec variable indefiniment vide ) Traitement (mon sous programme ) End Sub
Hello,
il faut bien lire la doc du composant. Il est facile à employer, mais il y a bcp de paramètres à prendre en compte.
Pour ce qui est de Input, la doc est claire: => Returns and removes a stream of data from the receive buffer.
La lecture est donc destructrice: après l'affectation, le buffer est vidé.
Le PLUS important: Pour que ça marche bien (dans ton cas), tu dois vérifier que la propriété InputLen est bien à zéro. Et le inputMode à "InputModeText".
Pour le reste, rien de sorcier. j'ai fait des applis RS232 à la pelle, j'ai encore fait l'autre jour un petit programme de lecture code barre avec RS232, ça fonctionne très bien pour autant qu'on soit très méthodique et surtout ==>> SURTOUT <<== d'avoir lu la doc de long en large et de comprendre parfaitement le rôle de chacune des propriétés. J'oserais dire que avec ce composant, sur base de mon expérience (+/- 15 ans) avec ce composant, 99% des ennuis rencontrés viennent d'une lecture insuffisante de la doc. Puis 0,9% viennent de problème de code (variables mal déclarées, effets de bords évènementiels, etc). Les 0,1% restants, c'est des problèmes hardware, souvent des specs constructeurs mal ficelées ou fausses.
Conseil: Faire un petit programme isolé pour bien tester la partie PURE RS232. Une fois ceci fait et maitrisé, alors tu peux intégrer dans le prog principal. Ce n'est qu'un conseil.