2010-05-07 2 views
1

Lorsque j'essaie d'écrire une commande AT sur mon modem GSM, il ne semble pas prendre la commande. J'ai utilisé PuTTY pour vérifier que les mots de commande, il le fait. J'ai vérifié pour voir si le port s'ouvre, c'est le cas.SerialPort ne prenant pas d'entrée. Il me le renvoie!

Que pourrais-je faire de mal?

REMARQUE: La partie "lol" est utilisée pour le débogage. ; 3

SerialPort sp = new SerialPort("COM3"); 
sp.BaudRate = 9600; 
sp.DataBits = 8; 
sp.StopBits = StopBits.One; 
sp.Parity = Parity.None; 
sp.Open(); 
if (sp.IsOpen == false) 
{ 
    sp.Open(); 
} 
Thread.Sleep(1000); 
sp.WriteLine("AT+CMGF=1"); 
Thread.Sleep(1000); 
string lol = sp.ReadExisting(); 
sp.Close(); 
return lol; 

Répondre

1

Le rejette? un ATE0 le désactivera en faisant écho à ce que vous lui envoyez.

Vous devrez probablement également émettre un ATQ0 pour indiquer au périphérique que vous souhaitez des réponses, sinon il n'émettra pas OK s. (un ATV1 ultérieur les rendra verbeux) émettra également un AT+CMEE=1 pour activer les réponses d'erreur.

Il ya aussi existing libraries qui sont conçus pour fonctionner avec les modems GSM qui vous épargneront des ennuis, si vous voulez le faire vous-même, un port monitor vous permettra d'économiser vos cheveux en vous montrant exactement ce qui est envoyé/reçu.

1

Quelques choses à vérifier ...

Est-ce bien NewLine correct pour votre modem? La valeur par défaut est un saut de ligne.

Comment sur les valeurs RtsEnable et DtrEnable?

La propriété Handshake est-elle correcte?

Questions connexes