Liaison serie

barnabe4 Messages postés 3 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 16 septembre 2004 - 25 août 2004 à 22:51
barnabe4 Messages postés 3 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 16 septembre 2004 - 16 sept. 2004 à 22:15
Bonjour,
J'en vois déjà qui vont me dire: "voir les posts sur le sujet car c'est un sujet récurrent!"
Je veux juste que l'on me prouve que la liason série sur Pocket PC est une liaison "fiable"..... car après qq jours d'essais, je doute vraiment!

Pour situer: j'ai un pocket PC I PAQ 3950 que je synchronise par port USB et j'utilise les visual embedded Basic et C++. La communication entre PC et pocket PC se fait bien, et les programmes crées se téléchargent bien. Le port série n'est pas activé dans activeSync car je fais les tests en questions.

Je pense que la majorité des programmeurs qui ont essayé visual basic embedded se sont aperçus que le port "comm control" est buggé dans le sens ou l'émission de données se passent bien, mais pour la réception, c'est le bide!

Maintenant pour visual C++ embedded, j'ai utilisé le programme exemple (examples.exe) du livre "Windows CE 3.0" pour tester cette fameuse liaison série:

l'application a fonctionné en émission et réception uniquement à une vitesse de 19200 bds (9600 bds pas bon!) et en utilisant RTS et DTR (câble d'origine):
dcb.BaudRate = CBR_19200; // set baud
dcb.fOutxCtsFlow = TRUE;
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE;
dcb.fDtrControl = DTR_CONTROL_ENABLE;
dcb.fOutxDsrFlow = FALSE;
dcb.fDsrSensitivity = FALSE;
dcb.fOutX = FALSE; // no XON/XOFF control
dcb.fInX = FALSE;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;

A ce sujet, quand j'ai branché la première fois, le pocket PC se connectait (synchronisait ??? car une fenêtre est apparu indiquant le branchement ) par défaut à 19200 bauds sans que je lui demande quoi que ce soit et n'a pas bronché par la suite quand j'ai ouvert le port comm

Si je modifie:
dcb.fOutxCtsFlow = FALSE;
ou bien :
dcb.BaudRate = CBR_9600;
La réception ne marche plus.

Maintenant, ça serait sympa d'avoir votre avis ou votre expérience sur ce sujet...... En fait, je voudrai que mon pocket PC puisse dialoguer avec des automates de mon cru, mais uniquement avec 3 fils (sans RTS / DTR, CTS, DSR) TXD, RXD et masse.
Pour l'émission, même visual basic embedded le fait bien, mais pour la réception........ comme si windows CE ne gérait pas l'évènement EV_RXCHAR seul (sans tenir compte de RTS,...).
Vous pouvez toujours me dire que je me suis planté qq part et me faire tourner en rond, je ne vous demande qu'une chose: que celui qui veuille bien m'aider essaye de faire communiquer son pocket PC et PC avec 3 fils (TXD, RXD et masse) de sa RS232.

Et si ça marche, ce serait encore mieux d'avoir le source pour voir où ma vigilance ;-) est passé à côté.

Encore merci d'avoir eu la patience de me lire et peut être de me répondre.

Bonne journée.

3 réponses

barnabe4 Messages postés 3 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 16 septembre 2004
4 sept. 2004 à 14:18
En fait, Je me réponds!

Problème liaison série résolu et la réponse se trouve dans le problème énnoncé.

Bye
0
seb2395 Messages postés 3 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 23 septembre 2004
16 sept. 2004 à 07:10
Salut !
Alors j'essaye de me servir de eVB 3 pour la com serie. J'ai la platforme SDK egalement. Envoi d'octet = ca a l'air OK, mais rien a la reception.... Je test avec le debugger, donc mon reel ppc n'est pas connecte. Est-ce que cela peut quand meme marche ? Sinon, que faut il que je fasse ??
J'ai pas bien compris la reponse dans ton post, peux tu me donner une source simple pour la liaison serie ?
Merciiiiiiiiiiiii !! tredejp@hotmail.com
0
barnabe4 Messages postés 3 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 16 septembre 2004
16 sept. 2004 à 22:15
Salut,
La réponse est:
- Avant que ton IPAQ (ou PPC) ne soit branché, lancez ActivSync du PPC. menu "outils" prendre options et ne validez que "synchronisation automatique avec USB" sinon, par défaut c'est la liaison série à 19400 bds"
C'était ActivSync par RS232 qui posait problème.
Depuis, elle fonctionne, mais j'ai de bien meilleurs résultats avec la "comm" faite en visual C++. En evb3, je reçois, mais c'est beaucoup plus lent!!!!
Bye
PS: Pour le source
Private Sub Comm1_OnComm()
Rem Ce n'est pas la peine de tester si un caractère est reçu (Bug de VB embeded)
Dim wchar As String

Rem récupération d' 1 caractère
Comm1.InputLen = 1
wchar = Comm1.Input

Rem que l'on renvoie en écho
Comm1.Output = wchar

Rem On affiche le caractère reçu dans la zone texte reception
T_Recept.Text = T_Recept.Text + wchar

End Sub

le compoasnt COMM avec RThreshold à 1.

Pour le connecteur, j'ai relié RTS-CTS et DTR-DCD pour ne travailler que sur 3 fils.
0
Rejoignez-nous