cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013
-
23 sept. 2006 à 22:05
cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013
-
28 sept. 2006 à 23:31
Bonsoir,
je me lance dans un utilitaire avec de trés grand soucis de fonctionnement, vu mon niveau car la prog c un métier. M'enfin, je remercie d'avance la personne qui va comprendre mon problème et me le résoudre. (je ne connais rien a la prog je bidouille avec toute la richesse de ce site, je suis automaticien).
j'ai récupéré et fait tourner a ma façon cette routine pour communiquer avec un automate, via je pense le protocole VT100
Private Sub Form_Load()
MSComm1.PortOpen = True
Dim InBuff As String
Select Case MSComm1.CommEvent
Case comEventBreak
Case comEventCDTO
Case comEventCTSTO
Case comEventDSRTO
Case comEventFrame
Case comEventOverrun
Case comEventRxOver
Case comEventRxParity
Case comEventTxFull
Case comEventDCB
Case comEvCD
Case comEvCTS
Case comEvDSR
Case comEvRing
Case comEvReceive
Label1.Caption = "Input"
InBuff = MSComm1.Input
Case comEvSend
Case comEvEOF
End Select
End Sub
Private Sub Lbl1_Click()
Dim Buffer As Variant
MSComm1.ParityReplace = ""
MSComm1.InputLen = 0
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
MSComm1.PortOpen = True
Timer1.Enabled = True
Timer1.Interval = 200
Buffer = Chr$(48)
MSComm1.Output = Buffer
End Sub
Private Sub Lbl10_Click()
Dim Buffer As Variant
MSComm1.ParityReplace = ""
MSComm1.InputLen = 0
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
MSComm1.PortOpen = True
Timer1.Enabled = True
Timer1.Interval = 200
Buffer = Chr$(72)
MSComm1.Output = Buffer
End Sub
Ma premier question est:
j'obtiens ça , dans le TextBox
I[HMENU =1 VISU= 2
MODIF=3
et de temps en temps
OOXXXXIIIasXX MENU =1
Il faudrait pouvoir supprimer le "I[H "et tout les trucs OOXXXX etc.. Souhait
MENU=1 VISU=2
MODIF=3
Il y a bien longtemps on ma repondu que qu'il fallait mettre CHR$(27) & "H" Ok mais ou?
Deuxieme question; je pense que les infos tournent en boucle, comment est-il possible de rafraichir en permanence pour etre toujours au meme endroit au moment de l'ouverture du port com1.
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 sept. 2006 à 13:09
Salut
Ces codes sont des balises de positionnement du curseur ou de formatage de texte.
Je suppose que tu te connectes à un Vax qui tourne sous OpenVMS ou Unix.
"Hyper Terminal" de Windows fait cela très bien.
Sinon, pour supprimer ces codes, il faut pouvoir les détecter.
Il faut donc repérer toutes les combinaisons possibles.
Pour supprimer le bout de chaine --> Replace
Exemple :
ChaineOriginale = "tralala I[HMENU=1 VISU=2"
ChaineASupprimer = "I[H"
ChaineOriginale = Replace(ChaineOriginale, ChaineASupprimer, "")
Tu n'as plus qu'à imaginer un tableau de chaines à supprimer et une boucle qui scanera chaque ligne de texte reçu avec une recherche de chaque chaine à supprimer.
La meilleure méthode serait quand même de connaître exactement la signification de ces balises.
Renseigne-toi sur le type de système d'exploitation de la machine sur laquelle tu te connectes.
Si c'est du DCL de OpenVMS, je pourrais te donner quelques infos.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013 24 sept. 2006 à 18:55
Salut
Du peut que je sais il s'agit du protocoleVT100 et les deux balises seraient
cursorhome Move cursor to upper left corner ^[H
cleareol Erase to end of current line ^[K
quand a savoir si c'estun DCL ou OpenVMS je suis incapable de repondre a cette question. Je sais en tout cas que je me suis fait un petit convertisseur RS485/RS232 pour dialoguer avec un EEprom qui se trouve sur l'automate.
J'ai besoin d'aide, je serais ravie de pouvoir repondre a d'autre questions pouvant solutionner mon soucis
Merci,
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 sept. 2006 à 19:36
Re
Regarde ce fichier Excel dans lequel j'ai regroupé ces codes VT http://www.template.fr/MVP/VT_Codes_ecran.xls Il faudra analyser ce que tu reçois, mais je pense que ce que tu écris comme un accent circonflexe ^ doit être un code escape Chr(27)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013 24 sept. 2006 à 21:08
Effectivement c'est bien "ESC" . Le codage serai CHR$(27) & "H" Seulement voila, je n'arrive pas a l'inclure dans la routine et si de plus il faut créer un additif je vais tourné en triangle bien longtemps.
J'ai cherché des exemples sur le site mais rien ni fait malgré toutes les sources.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 sept. 2006 à 23:17
"Seulement voila, je n'arrive pas a l'inclure dans la routine" Quel routine ?
Si tu veux utiliser la technique que je t'ai proposé, il suffit de dire que ChaineASupprimer = Chr$(27) & "H" , c'est tout
En cherchant "<Esc>H" dans un moteur de recherche, je suis tombé sur cette page d'info : clique ici
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013 25 sept. 2006 à 14:25
Ho la la terrible !
Comme dit Lefèvre dans « les tontons flingueurs », je me prépare à des nuits blanches, des migraines des « nervouse brékdones. Je vais faire le tour de ton SYSComPro car ce que je cherche doit y être. En ayant fait un petit tour, combien cela représente de temps passé pour faire un truc comme ça ?
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 25 sept. 2006 à 14:42
Bonjour,
Je ne peux pas vraiment quantifier le temps de dev parce-qu'il y a eu pas mal de test avant. Sinon sa represente pas mal de mois.
Je me suis remis sur SYSCom Pro depuis peu et j'ai déjà apporter quelque modification. Sinon je vais me mettre a finir le mode PlugIn qui pourrait te permettre de developper un plugin et non une source complete et ce en utilisant les fonction de SYSCom Pro.
Sinon pour un prob de comprehention po de problème faut demander
cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013 27 sept. 2006 à 00:09
Bonsoir
Effectivement dans le module "basDraw_VT100" il y de belle choses, reste a faire un assemblage.
Sinon voila ce que l'ont ma transmis <!--[if !supportLists]-->·
<!--[endif]-->Communication
Protocol
This chapter describes the communication
protocol between Subsystem and SVT II depending on the selected
compatibility mode.
<!--[if !supportLists]-->·
<!--[endif]-->Standard ASCII
Escape Sequences
Standard escape sequences are multiple
character control functions that are not displayed but control the SVT II
operation. The control functions recognized are listed.
ommand
, Sequence
, ----
Cursor
up
, ESC,
‘[‘,
Pn, ‘A’
, ----
Cursor
down
, ESC,
‘[‘,
Pn, ‘B’
, ----
Cursor
forward
, ESC,
‘[‘,
Pn, ‘C’
, ----
Cursor
backward
, ESC, ‘[‘, Pn, ‘D’
, ----
Cursor position
, ESC, ‘[‘, Pl, ‘;’, Pc, ‘H’
, ----
Cursor
home position
, ESC,
‘[‘,
‘H’
, ----
Erase
from cursor to end of line
, ESC,
‘[‘,
‘K’
, ----
Erase
from cursor to end of display
, ESC,
‘[‘,
‘J’
, ----
Erase
entire display
, ESC,
‘[‘,
‘2J’
Table ?.2: Standard ASCII escape sequences
Pn: number of movements, Pl: number of lines, Pc: number of columns,
all numbers composed of ASCII digits ‘0’ to ‘9’
The erase commands have no influence to the
cursor position.
<!--[if !supportLists]-->·
<!--[endif]-->Enhanced Escape Sequences
For future extensions a Read SVT’s SCN command is provided. This command allows the
Subsystem to identify the type and software version of the connected Service
Tool.
Command
, Sequence
, ----
Read
SVT’s SCN
, ESC,
‘[‘,
‘n’
Table.3:
Enhanced escape sequences
<!--[if !supportLists]-->·
<!--[endif]-->SVT II To
Subsystem
The SVT II can transmit codes for pressed
keys and answer messages.
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 sept. 2006 à 19:34
Re
Fais le parallèle avec ce que je t'ai envoyé (liste des codes écrans) et tu verras que c'est pratiquement la même chose.
Leur tableau n'est pas facile à interpréter.
Genre : Erase entire display :
Ta doc ESC, ?[?, ?2J?<?XML:NAMESPACE PREFIX = O /??>
Mon code ESC[2J
ou encore : Cursor position :
Ta doc ESC, ?[?, Pl, ?;?, Pc, ?H?
Mon code ESC[x;yH
Il semble suffire de supprimer les ? et les , dans leur syntaxe ...
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 sept. 2006 à 19:36
Précision : Les écrans VT100 (pas 220) sont des zones texte de 24 lignes sur 80 colonnes
Il faut donc, si tu récupères des codes de repositionnement du curseur, que tu saches où te placer.
Ce n'est pas évident.
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 27 sept. 2006 à 21:47
Bonjour
pour le module "basDraw_VT100" il fonctionne parfaitement, avec les test que j'ai fait sur Switch 3Com, TeleMaintenance, Modem et je c plus apres... Sinon pour ton assemblage tu peux toujours me demander et je connais pas mal mon code lol ;-) et j'ai une version plus ressente sur mon disque
cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013 27 sept. 2006 à 23:12
Bonsoir
Pour répondre à Jack sur le repositionnement du curseur, a priori suivant la sélection il
se positionne tout seul, je souffle pour ce point. J’aurais une autre question,
bien plus tard, sur les lignes et les colonnes.
Ex : si tu valides 3 dans
MENU=1 VISU=2
MODIF=3
Ouverture d’un nouveau menu
ECRITURE=1 EFFACE=2
1
ECRITURE 12 NOUVELLE et la tu trouves le curseur
Pour Gally : ton SYSCom fonctionne chez moi, ça c bien déjà.
Maintenant pour le reste il faut que j’arrive a inclure des morceaux de ton
code sur le mien.
Merci a vous deux
Qui c, peut-être un jour je serai a votre place a pouvoir renseigner. Au
fait, aucune formation en prog (les livres) je suis automaticien.
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 février 20182 28 sept. 2006 à 02:26
Bonjour,
Je suis un ex electicien-automaticien et c'est pour des choses comme sa à l'origine que je me suis a travailler sur le MSComm ;-) par la suite juste pour le fun...
Sinon je peu faire des découpes dans mon code source pour par exemple mettre l'affichage de VT100 (seulement) et complet...
Au sujet du VT100 n'hesite pas a me poser des questions j'ai du le comprendre avant de faire la routine d'affichage (remarque c'est mieu). La prochaine fois que j'ecrirais je ferais une petite doc d'expliquation du VT100.
<ESC>[A DEPLACE LE CURSEUR EN HAUT
<ESC>[B DEPLACE LE CURSEUR EN BAS
<ESC>[C DEPLACE LE CURSEUR A DROITE
<ESC>[D DEPLACE LE CURSEUR A GAUCHE
POSITIONNEMENT :
<ESC>[{Pc};{Pl}R REPORTE LA POSITION A {Pc} ET {Pc} DU CURSEUR
<ESC>[{Pl};{Pc}H POSITIONNEMENT DU CURSEUR A {Pc} ET {Pc}
<ESC>[{Pl};{Pc}f POSITIONNEMENT DU CURSEUR A {Pc} ET {Pc}
<ESC>[{Vn}A DEPLACEMENT DE {Vn} VERS LA HAUT
<ESC>[{Vn}B DEPLACEMENT DE {Vn} VERS LA BAS
<ESC>[{Vn}C DEPLACEMENT DE {Vn} VERS LA DROITE
<ESC>[{Vn}D DEPLACEMENT DE {Vn} VERS LA GAUCHE
<ESC>[J POSITIONNEMENT DU CURSEUR A LA FIN DE L'ECRAN
<ESC>[0J POSITIONNEMENT DU CURSEUR A LA FIN DE L'ECRAN
<ESC>[1J POSITIONNEMENT DU CURSEUR AU DEBUT DE L'ECRAN
EFFACEMENT ECRAN ET DONNEE :
<ESC>[J EFFACEMENT COMPLET DE L'ECRAN
AFFECTATION DES INFORMATIONS DE L'ECRAN :
<ESC>[{Vn};{Vn};...{Vn}m AFFECTATION DES ATTRIBUTS DE CARACTERE
VALEUR D'ATTRIBUT:
0 ATTRIBUTS PAR DEFAUT
1 MODE GRAS
4 MODE SOULIGNE
5 MODE CLIGNOTEMENT
7 MODE INVERSSE VIDEO
INFORMATION: IL Y A AUSSI LES COULEURS DE CARACTERE ET DE FOND.
SAUVEGARDE ET RESTAURATION DES DONNEES :
<ESC>7 SAUVEGARDE DU CURSEUR ET DES ATTRIBUTS
<ESC>8 RESTAURATION DE LA SAUVEGARDE DU CURSEUR ET DES ATTRIBUTS
cs_bentic
Messages postés63Date d'inscriptiondimanche 4 mai 2003StatutMembreDernière intervention11 janvier 2013 28 sept. 2006 à 23:31
OK je vais me pencher sur vos précieux renseignements, je ne cloture pas la conversation car je reviendrais avec de nouvelles questions.
Encore merci pour le coup de pouce