Почему это ошибка, когда я использую "at command "в C#, но правильно ли эта команда работает в гипертерминале ?
comport.WriteLine("AT"); System.Threading.Thread.Sleep(1000); comport.WriteLine("AT+CMGF=0" + (char)13); System.Threading.Thread.Sleep(1000); string s2 = "AT+CMGS=" + messageLenght.ToString(); comport.WriteLine(s2 + (char)13); System.Threading.Thread.Sleep(1000); comport.WriteLine(pdu + (char)26 ); System.Threading.Thread.Sleep(5000); MessageBox.Show(comport.ReadExisting()); comport.Close();
Что я уже пробовал:
это мой код на языке Си# :
int messageLenght = 0; string pdu = SubmitPdu.GetPdu("destinationNumber", "Message", "ServiceCenterNumber", out messageLenght); SerialPort comport = new SerialPort(); comport.PortName = "com21"; comport.BaudRate = 921600; comport.Parity = Parity.None; comport.StopBits = StopBits.One; comport.DataBits = 8; comport.ReadBufferSize = 10000; comport.ReadTimeout = 1000; comport.WriteBufferSize = 10000; comport.WriteTimeout = 1000; comport.RtsEnable = true; if (!comport.IsOpen) comport.Open(); comport.DiscardInBuffer(); comport.DiscardOutBuffer(); comport.WriteLine("AT"); System.Threading.Thread.Sleep(1000); comport.WriteLine("AT+CMGF=0" + (char)13); System.Threading.Thread.Sleep(1000); string s2 = "AT+CMGS=" + messageLenght.ToString(); comport.WriteLine(s2 + (char)13); System.Threading.Thread.Sleep(1000); comport.WriteLine(pdu + (char)26 ); System.Threading.Thread.Sleep(5000); MessageBox.Show(comport.ReadExisting()); comport.Close();
и результат есть :
AT OK AT+CMGF=0 OK AT+CMGS=15 > 0691891901500011000*****************000A70178-> ERROR
но когда вы используете эту команду в Гипертерминале все в порядке :
at OK at+cmgf=0 OK at+cmgs=15 > 069189190150001100*****************000A70178-> +CMGS: 139 OK
где жучок?
спасибо всем
0x01AA
Попробуйте отправить "на+CMGS=в<число&ГТ;&ЛТ;КР&ГТ;&ЛТ;сообщение&ГТ;&ЛТ;сочетание клавиш Ctrl-Z и&ГТ;" как одну строку. Вы используете строку, которая делает добавление в <если&ГТ;, но вы также присоединить &ЛТ;пр> В вашем коде так, Наконец, вы посылаете что-то вроде этого:"в+CMGS=в<число&ГТ;&ЛТ;КР&ГТ;&ЛТ;если&ГТ;&ЛТ;сообщение&ГТ;&ЛТ;сочетание клавиш Ctrl-Z и&ГТ;&ЛТ;если&ГТ;"
Поскольку вы добавляете <cr> самостоятельно, я бы использовал comport.Пишите на всякий случай
mohamadMahmodi
Я использовал .write вместо .writeLine и все сделал правильно, Спасибо
0x01AA
Может быть, тогда вы примете мой ответ, чтобы вывести его из экрана ;)