Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Mscomm [ Divers / Débutants ] (bentic)

samedi 23 septembre 2006 à 22:05:36 | Mscomm

bentic

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
OOXXXXIIIasXXMENU=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.

Merci,
 

dimanche 24 septembre 2006 à 13:09:13 | Re : Mscomm

jack

Administrateur CodeS-SourceS
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

dimanche 24 septembre 2006 à 18:55:28 | Re : Mscomm

bentic

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, 

dimanche 24 septembre 2006 à 19:36:29 | Re : Mscomm

jack

Administrateur CodeS-SourceS
Re
Regarde ce fichier Excel dans lequel j'ai regroupé ces codes VT [ Lien ]
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

dimanche 24 septembre 2006 à 21:08:37 | Re : Mscomm

bentic

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.
 


dimanche 24 septembre 2006 à 23:17:55 | Re : Mscomm

jack

Administrateur CodeS-SourceS
"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

lundi 25 septembre 2006 à 00:02:57 | Re : Mscomm

bentic

j'ai passé la soirée a lire et relire c'est deux liens pour comprendre
http://www.microsoft.com/france/msdn/windows/ctlmscommtech.mspx
http://www.microsoft.com/france/msdn/windows/ctlmscomm.mspx
je vais me plongé maintenant sur celui que tu me propose
merci pour ce coup de pouce

lundi 25 septembre 2006 à 00:30:50 | Re : Mscomm

Gally

Membre Club
Bonjour,

Pour pouvoir t'aider a ton programme tu peux te referrer a un de mes codes-sources:

http://www.vbfrance.com/codes/SYSCOM-PRO-VER-BETA-HYPER-TERMINAL_25327.aspx

Ce programme est un herper-terminal et possede unr routine de decodage et d'affichage du VT100 (gestion a 85/90%)

Bonne prog
[Gally Home Corp]

lundi 25 septembre 2006 à 14:25:57 | Re : Mscomm

bentic

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 ?

Merci    

lundi 25 septembre 2006 à 14:42:36 | Re : Mscomm

Gally

Membre Club

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

A++
[Gally Home Corp]



1 2

Cette discussion est classé dans : end, case, true, mscomm1, portopen


Répondre à ce message

Sujets en rapport avec ce message

communication VB6.0 et port série [ par melimeli1 ] j'ai téléchargé le programme d'émission et de réception ci dessous et j'ai fait la communication par un cable croisés mais malheureusement la connecti Propriété personnelle [ par agparchitecture ] Bonjour, je suis en train de me créer mon control et pour cela j'utilise des propriétés avec valeurs par défaut.de type: True Scanpal2, probleme de recuperation d'informations [ par hbvb6 ] Bonjour j'ai un scanpal2 qui est lié a mon PC par un cable RS232je veux faire une application VB pour recuperer les informations de scanpal2 j'ai u pb dans le code [ par julienb25 ] re bonjourj'ai a nouveau un bout de code qui pose problème je ne connais pas la syntaxe exacte... le pb est en rougeje voudrais qu'il ne reste qu'une Problème de syntaxe [ par Hystic ] Bonjour,Je fais actuellement un stage et on m'a demandé de modifier un programme afin de lui ajouter des fonctionalité et plein d'autres trucLe hic c' MSComm caractères spéciaux [ par Marko007 ] Bonjour,je dialogue avec un PLC en "RS232 - Cnv RS485". Cela marche nickel sauf que ;o) :Je reçois par moment des caractères spéciaux type EVTS_08-06- WriteLine [ par joy11 ] Voila mon problème, c'est un script permettant de créer des utilisateurs (ici dans un fichier texte) j'aimerai pouvoir entrez un utilisateur et ensuit pb reception donnee port serie [ par jerome57440 ] je travaille actuelement sur un projet sur lequelle je dois recuperer des données d'une carte CEPR (qui sert d'interface entre le PC et un lecteur d'e Ajouter nouvel enregistrement [ par Gooms ] Bonjour. Voila je bute sur tout ceci... Le fenetre de travail s'appelle frmNew La base de donnée s'appelle GPM.mdb La table s'appelle TABLEGPM voi


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.