Problème réception RS232

DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007 - 10 nov. 2004 à 10:57
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012 - 12 nov. 2004 à 11:13
Bonjour.

Après multiples manipulations j'arrive à recevoir des données à partir de ma télécommande via un récepteur brancher sur port COM.

Mais cela fais 2 jours que j'essaye de récupéré le "code" envoyé par ma télécommande, mais je ne comprends pas comment je peux le faire :dissapprove)

Donc ma question est: comment afficher le code envoyé dans un textbox?

Dans un Timer j'ai mis: Text1 = Text1 & MSComm1.Input
J'ai testé en le mettant dans MSComm1_OnComm() mais pareil.
le textbox est toujours vide :sad)

Si quelqu'un pouvais prendre le temps de me répondre :)
Car je ne connais pas trop ce domaine c'est la première fois que je me sert de MSCOMM.
Merci par avance.

Amicalement, AigleNoir :)

9 réponses

gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
10 nov. 2004 à 11:18
Salut,

Premierement, tu dois initilialiser certains paramètres de MSCOM en plus de ceux que tu as mis.
With MScomm1
.RThresold = 1 'Activation de l'évènemnt ON_Com à la reception de 1 octet
End with
Ensuite dans MScomm1_OnComm() tu rajoutes

Private Sub MScomm1_OnComm()
Dim StrByte1 As String

Select Case MScomm1.CommEvent

' Errors
Case comEventBreak ' A Break was received.
Case comEventFrame ' Framing Error
Case comEventOverrun ' Data Lost.
Case comEventRxOver ' Receive buffer overflow.
Case comEventRxParity ' Parity Error.
Case comEventTxFull ' Transmit buffer full.
Case comEventDCB ' Unexpected error retrieving DCB]

' Events
Case comEvCD ' Change in the CD line.
Case comEvCTS ' Change in the CTS line.
Case comEvDSR ' Change in the DSR line.
Case comEvRing ' Change in the Ring Indicator.
Case comEvReceive ' Received RThreshold # of ' chars.
StrByte1 = COM1.Input
text1.text = text1.text & StrByte1



Case comEvSend ' There are SThreshold number of
' characters in the transmit
' buffer.
Case comEvEOF ' An EOF charater was found in
' the input stream End Select
End Select
End Sub

A+
0
DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007
10 nov. 2004 à 12:11
Malheuresement, ça ne change rien :sad)

Pour ceux qui veulent jeter un oeil sur mon schéma et ma source, moi pour le moment je suis bloqué!

MuControlIR

Voila, je doit partir, je mis remet ce soir, en attendant si quelqu'un à trouvé ce qui cloche ;)

Amicalement, AigleNoir :)
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
10 nov. 2004 à 21:38
Une chose me semble bizarre sur ton shéma, la sortie de ton module IR est connecté sur la pin DSR de ton port série qui est un signal de control alors qu'il devrais être sur le RX (receive) de ton port , en fait les signaux CTS/DSR/RI/RTS etc.. sont des sigaux de handshaking (control de flux) ils servent juste à synchroniser l'émeteur avec le recepteur pour ne pas perdre d'information. le control de flux avec ces signaux hardware étaient très utilisés du temp des teletype car c'étais des périphériques très lents entre 150 et 1200 bauds, de nos jours on a recour plus particulièrement au software handshaking ou XON/XOFF ce mode n'utilise plus les signaux de controles, mais pour les désactiver il faut néanmoins les ponter le RTS avec le CTS
et DTR - DCD - DSR ensemble. et met la sortie de ton module IR sur le RD (recieve data) assure toi aussi que ton module IR sort bien avec des signaux RS232 soit +12 -12V. Si tu as d'autres problèmes je t'aiderai volontier j'en connais pas mal sur le RS232

Pascal Laurençon
0
DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007
10 nov. 2004 à 22:09
Je voit ça :-p

Bein c'est une entreprise qui utilise ce cablage, et qui fonctionne avec son logiciel bien sur (Girder).
Girder arrive a récupéré le code hexa envoyé par ma télécommande, donc il doit y avoir une solution Software, mais si je n'y arrive pas je prendrais ta solution ;)
Je continuerais de chercher demain.

Sur ce, bonne soirée & merci pour tes renseignements.

Amicalement, AigleNoir :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
11 nov. 2004 à 10:15
A mon avis c'est impossible qu'ils puissent obtenir le code hexa de cette façon, je m'explique le signal DSR est un signal d'état (1 ou 0) le RD (receive data) est quand à lui la borne qui est utilisée pour recevoir les données selon le protocole de la liaison série c.a.d un start bit, 7 ou 8 bits de données (ton code hexa) un bit de parité (pas toujours utilisé) et 1 ou 2 stop bits quoi qu'il en soit la trame doit toujours faire 10 bits. Il ne faut pas oublié non plus d'accorder les violons du coté de la vitesse entre ton PC et ton module IR ainsi que les différents paramètres propres à la liaison série par ex. 9600 baud 8 bits de donnée sans parité. a ne pas oublié non plus ton module doit se comporter comme un DTE (data terminal equipment) puisque ton PC est considéré comme un DCE (data terminal equipment) en clair le RD (receive data) du coté PC doit être raccordé au TD (transmit data) du coté de ton module IR et inversement.

ça parait un peu technique tout ça mais rassure toi ce n'est pas si compliqué j'ai aussi pas mal bricoler du coté des liaisons série et si ces règles sont respectées ça marche à tous les coups.

Cordialement
Pascal Laurençon
0
DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007
11 nov. 2004 à 11:54
Je n'arrive pas a le faire fonctionné!
Pourtant ca fonctionne très bien avec girder, je vais allé posé une question sur le forum je pense:
http://www.alvasoft.net/main.php?p=hardware/IR
vla un site ou il y a exactement le meme schema ^^

Amicalement, AigleNoir :)
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
11 nov. 2004 à 19:39
Si ça fonctionne bien avec girder c'est qu'ils utilisent le port série d'une mannière non-conventionnel donc en abstraction du protocol RS232 soit en reprogramant l'UART, il faudrais décompiler leur code pour voir de quel mannière. Ce qui expliquerai que tu n'arrive pas à le faire fonctionner avec MSCOM

Pascal Laurençon
0
DDelec24 Messages postés 109 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 23 octobre 2007
11 nov. 2004 à 20:44
Je n'est plus qu'a me faire un nouveau circuit :-p

What you will want to do is watch the DSR line and, whenever it changes state, capture the value of the high resolution timer. If you subtract the preceeding timer value from the current timer value, you will have the duration of the pulse or space. 

Keep in mind that this is a real-time application and Windows is not a real time OS. So, you will probably get erratic results. This is why most people use microcontrollers for this type of application. 

If you want to capture the actual code sent by a remote control, you will have to know how the data is encoded into the infrared signal. I'm not familiar with Igor, but my guess is that the codes it is sending to Girder are not the actual codes that the remote control is sending. It is probably using some sort of mathmatical algorithm to produce unique codes from the captured state information. 


Voila donc comme tu dit c'est non conventionnel et comme la fréquence du récepteur est assez élevé, windows n'a pas le temps de capter quoique ce soit, Igor est un plugin qui décode la trame reçu.

En tout cas merci beaucoup de ton aide!

Amicalement, AigleNoir :)
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
12 nov. 2004 à 11:13
Vas voir ce lien c'est peut être une autre solution
http://angeliz.free.fr/electro/elec0.htm

Pascal Laurençon
0
Rejoignez-nous