Je développe une application qui va lire et écrire des données sur un modem gsm. Quand j'éteins le modem et que je le rallume, au démarrage je dois envoyer une commande AT pour que le modem se règle automatiquement sur les paramètres donnés pour le port. Quand je donne cette commande dans hyper terminal, elle n'est pas affichée mais la commande est envoyée au modem. et le modem se configure aux paramètres que je donne pour les paramètres de port hyperterminal. A partir de là, je peux envoyer le reste des commandes. Mais dans mon application, je suis incapable d'envoyer la première commande AT, donc je le fais manuellement via hyper terminal. Pourquoi cela ne se passe-t-il pas dans ma demande? J'ai également essayé d'envoyer cette commande en cliquant sur le bouton, mais il n'est pas encore exécuté sur le port.Problèmes d'exécution des commandes AT au démarrage du modem
port.Open();
port.DtrEnable = true;
port.RtsEnable = true;
if (port != null)
{
btn_connect.Enabled = false;
btn_disconnect.Enabled = true;
port.WriteLine("AT");
port.WriteLine("AT+CLIP=1");
port.WriteLine("AT+CMGF=1");
con_status.Text = "Connected at " + cboPortName.Text;
}
Paramètres du port que je lui ai donné dans ma demande sont:
port.PortName = cboPortName.Text;
port.BaudRate = Convert.ToInt32(this.cboBaudRate.Text); //9600
port.DataBits = Convert.ToInt32(this.cboDataBits.Text); //8
port.ReadTimeout = Convert.ToInt32(this.txtReadTimeOut.Text); //300
port.WriteTimeout = Convert.ToInt32(this.txtWriteTimeOut.Text); //300
port.StopBits = StopBits.One; //1
port.Parity = Parity.None; // None
port.Encoding = Encoding.GetEncoding("iso-8859-1");
port.Open();
port.DtrEnable = true;
port.RtsEnable = true;
pourquoi Thread.sleep fonctionne pas? – SMK
Parce thread.sleep() est exécuté avant toutes ces commandes, puis à nouveau toutes ces commandes sont exécutées successivement sans délai. – Cdeez
quel est le numéro exact de votre module GSM, Impédance de l'antenne être le problème –