Bonjour le Forum,
Il y a peu j'utilisais un UserForm avec la dll MsCOMM mais Microsoft a déclaré cette dll indigne de confiance et elle est désactivée. NB je ne peux plus modifier la base de registre car je n'ai plus les droits puisque cette astuce fonctionnait dans mon cas !!!
Je me suis tourné vers un développemnt de Ti employant des modules de classes à savoir TiCom.
Mais j'ai un gros souci car je ne récupère pas les données comme je le souhaite.
Je vous joints le code de ma précédente appli employant MsComm en PJ, je vais tenter de vous décrire le fonctionnement du code de réception. le UserForm était lancé par un bouton sur une feuille, il configurait le port employé (COM1), le paramétrait (600 bauds, impair, 7 bits de données, 1 bit d'arrêt), ouvrait le port et se mettait à l'écoute "Do While" des chaines entrantes tant que l'opérateur ne signifiait pas manuelleent que la transmission était terminée "StopACQ" = False.
Si on entre dans le détail du code, une chaine reçue "machaine" était complète après la réception de chr(10) [/color=red] "If Right(maChaine, 1) = Chr$(10)" alors la chaine "machaine" était redistribiuée dans une feuille XL, les séparateurs étant des virgules "Comma:=True" après ce n'est que de la mise en forme dans la feuille.
Aujourd'hui avec les modules de classes de TiCom, je reçois les caractères attendus mais la longueur des chaines semble aléatoire et dépendante de la variable "delai" du module de classe. Il faudrait que le module détecte le chr(10) mais je ne sais pas où faire la modif dans les modules de classes.
Ci dessous, les données reçues dans la fenêtre d'éxécution avec TiCom. j'ai respecté les CR de la fenêtre d'éxécution
Si delai = 200ms donne
,,"T1 C","T2 C"
04-07-12
,01:10:1
9, 20.2, 20.2
,01:10:2
0, 20.2
, 20.2
*****************
delai = 500 ms donne
,,"T1 C","T2 C"
04-07-12
,01:10:19, 20.2, 20.2
,01:10:20, 20.2, 20.2
****************
On approche mais en augmentant "delai" je n'arrive pas à avoir la chaine reçue qui dans mon cas serait :
,,"T1 C","T2 C"
04-07-12, 01:10:19, 20.2, 20.2
, 01:10:20, 20.2, 20.2
En résumé savez-vous comment scruter et rechercher le CHR(10) avec les modules de classezs TiCom
Merci pour votre aide
Il y a peu j'utilisais un UserForm avec la dll MsCOMM mais Microsoft a déclaré cette dll indigne de confiance et elle est désactivée. NB je ne peux plus modifier la base de registre car je n'ai plus les droits puisque cette astuce fonctionnait dans mon cas !!!
Je me suis tourné vers un développemnt de Ti employant des modules de classes à savoir TiCom.
Mais j'ai un gros souci car je ne récupère pas les données comme je le souhaite.
Je vous joints le code de ma précédente appli employant MsComm en PJ, je vais tenter de vous décrire le fonctionnement du code de réception. le UserForm était lancé par un bouton sur une feuille, il configurait le port employé (COM1), le paramétrait (600 bauds, impair, 7 bits de données, 1 bit d'arrêt), ouvrait le port et se mettait à l'écoute "Do While" des chaines entrantes tant que l'opérateur ne signifiait pas manuelleent que la transmission était terminée "StopACQ" = False.
Si on entre dans le détail du code, une chaine reçue "machaine" était complète après la réception de chr(10) [/color=red] "If Right(maChaine, 1) = Chr$(10)" alors la chaine "machaine" était redistribiuée dans une feuille XL, les séparateurs étant des virgules "Comma:=True" après ce n'est que de la mise en forme dans la feuille.
Aujourd'hui avec les modules de classes de TiCom, je reçois les caractères attendus mais la longueur des chaines semble aléatoire et dépendante de la variable "delai" du module de classe. Il faudrait que le module détecte le chr(10) mais je ne sais pas où faire la modif dans les modules de classes.
Ci dessous, les données reçues dans la fenêtre d'éxécution avec TiCom. j'ai respecté les CR de la fenêtre d'éxécution
Si delai = 200ms donne
,,"T1 C","T2 C"
04-07-12
,01:10:1
9, 20.2, 20.2
,01:10:2
0, 20.2
, 20.2
*****************
delai = 500 ms donne
,,"T1 C","T2 C"
04-07-12
,01:10:19, 20.2, 20.2
,01:10:20, 20.2, 20.2
****************
On approche mais en augmentant "delai" je n'arrive pas à avoir la chaine reçue qui dans mon cas serait :
,,"T1 C","T2 C"
04-07-12, 01:10:19, 20.2, 20.2
, 01:10:20, 20.2, 20.2
En résumé savez-vous comment scruter et rechercher le CHR(10) avec les modules de classezs TiCom
Merci pour votre aide