[Catégorie modifiée .Net -> VB6] Problème d'affichage de données d'un port com
mah00
Messages postés5Date d'inscriptiondimanche 24 avril 2011StatutMembreDernière intervention28 avril 2011
-
27 avril 2011 à 12:27
mah00
Messages postés5Date d'inscriptiondimanche 24 avril 2011StatutMembreDernière intervention28 avril 2011
-
28 avril 2011 à 13:32
Bonjour,
J'ai une carte avec des interrupteurs communicant avec un port com.
Je veux savoir ce qu'envoie cette carte quand j'appuie sur un des interrupteurs, pour cela je relie la carte à l'ordinateur via un port com et j'ai écrit le code suivant sur vb6 qui est censé lire les données d'un port com:
Private Sub Form_Load()
With MSComm1
.CommPort = 1
.Handshaking = 2
.RThreshold = 1
.RTSEnable = True
.Settings = "9600,N,8,1"
.SThreshold = 1
.PortOpen = True
End With
Text1.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
MSComm1.PortOpen = False 'on ferme le port quand l'appli quitte
End Sub
Private Sub MSComm1_OnComm()
Dim InBuff As String
Select Case MSComm1.CommEvent
' On effectue la gestion des erreurs (cf. le modèle ci-dessus)
'liste des erreurs possibles
Case comEventBreak 'On a reçu un signal d’interruption (Break)
Case comEventCDTO ' Timeout de la porteuse
Case comEventCTSTO ' Timeout du signal CTS (Clear To Send)
Case comEventDSRTO ' Timeout du signal de réception
Case comEventFrame ' Erreur de trame
Case comEventOverrun ' Des données ont été perdues
Case comEventRxOver ' Tampon de réception saturé
Case comEventRxParity ' Erreur de parité
Case comEventTxFull ' Tampon d’envoi saturé
Case comEventDCB ' Erreur de réception DCB (jamais vu)
'liste des événements possibles qui sont, eux, normaux
Case comEvCD 'Changement dans la broche CD (porteuse)
Case comEvCTS 'Changement dans broche CTS
Case comEvDSR 'Changement dans broche DSR (réception)
Case comEvRing 'Changement dans broche RING (sonnerie)
Case comEvReceive
tampon = MSComm1.Input
Call Traitement(tampon) 'traitement données
End Select
End Sub
Sub Traitement(tampon As String)
'cette procédure sert à traiter l’information reçue dans le tampon
Text1.SelStart = Len(Text1.Text)
Text1.SelText = tampon 'ici, on affiche le résultat dans un champ de texte
End Sub
A la compilation, j'ai l'erreur: Type d'argument ByRef incompatible, avec tampon dans Call Traitement(tampon) surligné.
Auriez-vous une idée de quoi il s'agit?
Petite précision: j'ai besoin de lire ces données pour pouvoir envoyer les mêmes après avec le clavier de l'ordinateur. J'ai donc besoin de savoir sous quelle forme je les reçois, en gros je veux remplacer les interrupteurs par le clavier.
Merci
A voir également:
[Catégorie modifiée .Net -> VB6] Problème d'affichage de données d'un port com
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 avril 2011 à 13:53
Salut
Ça ne ressemble pas à du programme VB.Net, ça, mais plutôt du VB6, non ?
Merci de prêter attention à la catégorie de tes questions.
Câbler des interrupteurs sur un port COM ?
Quelle drôle d'idée. Comment câbles-tu ça ?
Au pire, tu grilles le Chipset du port COM en faisant un court-circuit.
Un port COM génère et reçoit une trame/suite de 0 et de 1 espacés de quelques micro-secondes.
Seule possibilités : câbler tes interrupteurs sur les entrées DSR (Data Set Ready), CTS (Clear To Send) ou (pas sûr) RI (Ring Indicator)
Ces signaux purement logiques peuvent être lus (voir DSRHolding et CTSHolding), mais ils ne déclencheront pas de réception de données. Inutile donc de vouloir capter des infos dans le .Input.
Mon projet consiste à utiliser ceci: http://www.sourceboost.com/Products/EBlocks/Overview.html en remplaçant les swtichs et l'ecran LCS par le clavier de l'ordinateur et l'écrans de l'ordinateur.
Du coup, j'ai acheté un adaptateur usb série, et je suis entrain d'essayer de voir ce que la maquette envoie à l'écran LCD et ce que les interrupteurs envoient à la maquette.
J'espère que j'ai été clair. Donc tu penses que je m'y prend mal? Comment je devrais faire?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 avril 2011 à 16:52
Ok, c'est plus clair.
Par contre, sans la doc concernant cette platine de switch, difficile de connaitre le protocole de communication utilisé.
Est-il même compatible RS232 ou faut-il un convertisseur RS485 ?
Pour ton histoire d'écran, j'ai pas tout compris.
Mais il faut impérativement les docs pour poursuivre.
J'ai fait un programme sur Flowcode qui permet d'afficher le contenu d'une carte RFID passée sur le lecteur sur l'écran LCD et qu'on peut coder grâce auw switchs.
Ce que je veux faire donc, c'est faire une appli vb qui me permettra de remplacer les switchs par le clavier de l'ordinateur et l'écran LCD par une Textbox quoi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 28 avril 2011 à 11:20
Oui, bah non (!) : Ne branche surtout pas ces blocks sur ton port série, tu risques de faire sauter l'interface/carte mère.
Ce n'est qu'une platine utilisant un connecteur SubD-9 pour transmettre 8 contacts, mais ça n'a rien à voir avec une liaison série. Ce sont des contacts avec potentiel, rien de plus.
mah00
Messages postés5Date d'inscriptiondimanche 24 avril 2011StatutMembreDernière intervention28 avril 2011 28 avril 2011 à 13:32
Du coup tu penses que c'est n'est pas du tout possible de faire ce que je veux? parce que quand je branche mon câble com sur la sortie LCD et que j'essaye de voir ce qui se passe avec l'hyperterminal, j'ai un charabia qui se répète à l'infini!