Commandes AT

cs_croll Messages postés 5 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 13 janvier 2003 - 13 janv. 2003 à 15:31
Ziosta Messages postés 1 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 19 janvier 2006 - 19 janv. 2006 à 17:52
Bonjour,
Lorsque j'envoi une commande AT à mon modem je ne parviens pas à lire la réponse. J'utilise la méthode suivante :

HANDLE hPort = CreateFile ( "com1"
, GENERIC_READ | GENERIC_WRITE
, 0
, NULL
, OPEN_EXISTING
, FILE_ATTRIBUTE_NORMAL
, NULL
);
strcpy (writeBuffer,"AT/r/n");
Err=WriteFile ( hPort
, &writeBuffer
, strlen (writeBuffer)
, &charsWritten
, NULL
);
Sleep (1000);
Err=ReadFile ( hPort
, &readBuffer
, strlen (readBuffer)
, &charsRead
, NULL
);

Dans ReadBuffer j'ai ce que j'ai envoyé c'est à dire "At" alors que je devrais avoir "ok"
Est-ce un bug de ma part ou de Windows Xp ?

4 réponses

jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
13 janv. 2003 à 17:40
Salut,

Ajoute des GetLastError et tu trouveras d'ou vient le probleme.
Le port est-il vraiment ouvert ?
0
cs_croll Messages postés 5 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 13 janvier 2003
13 janv. 2003 à 20:13
Le problème c'est que l'appel des fonctions se passe correctement sans erreur. La fonction Read renvoi simplement ce qui a été écrit à la place de "OK" !
0
Croqmort Messages postés 95 Date d'inscription mercredi 5 décembre 2001 Statut Membre Dernière intervention 27 juin 2006
14 janv. 2003 à 09:04
j'ai fait une petite recherche sur google pour voir comment s'y prennent ceux qui ont reussi a utilisé les port serie, et je remarque qu'ils utilisent :
SetupComm( HdComm, 1024, 1024 );
GetCommState( HdComm, &Dcb );
Dcb.BaudRate = BAUD_115200;
Dcb.Parity = NOPARITY;
Dcb.ByteSize = 8;
Dcb.StopBits = ONESTOPBIT;
SetCommState( HdComm, &Dcb );
HdComm etant le handle du fichier (ou port) ouvert.
et dcb etant du type : DCB Dcb;

Reference :
- http://www.fadshop.net/ben/serial1.htm
- http://www.experts-exchange.com/Programming/Programming_Languages/C/Q_10136460.html
- http://www.ff.iij4u.or.jp/~jun1/csa/wcsc11/source_win_e.html

voila j'espere que ça va t'aider
a+
Croqmort
0
Ziosta Messages postés 1 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 19 janvier 2006
19 janv. 2006 à 17:52
Bonjour,



J'ai le même problème que croll, c'est à dire que lorsque j'envoie les
commandes AT sur le port série vers un téléphone portable (dans mon
cas), avec la fonction "writefile", et qu'ensuite je vais lire la
réponse sur le port, avec la fonction "readfile", j'ai dans mon buffer
les commandes que j'ai envoyées : AT au lieu de OK.

Je précise que je n'obtiens jamais OK même si j'envoie AT\r ou AT \n ou AT\r\n.

Est-ce un bug dans le formatage de la chaîne ou autre ?

Ziosta
0
Rejoignez-nous