Я использую CMS-последовательный порт, управляющий gsm-модемом. В настоящее время в Mikroelectronia USART терминал после отправки:Последовательный порт не получает все данные в C#
AT + CUSD = 1, "* 778 #", 15
Он получает:
AT + CUSD = 1,» * 778 # "15
OK
+ CUSD: 0," Баланс: 0,00 Т.К. Срок действия:. 29-июля-13 Bonus:.. 0.00TK Free Min: 0. Наберите * 121 * 2092 # 3 хит песни Ashiqui-2 как ур Caller Tunetk.10" , 64
Но в C# после отправки данных
AT + CUSD = 1, "* 778 #", 15
возвращается:
AT + CUSD = 1, "* 778 #", 15
ОК
+ CUSD: 0, "Balance: 0.00 TK. Срок действия: 29-июл-13. Бонус: 0.00TK. Бесплатно Минимальный: 0. Наберите * 121 * 2092 # для 3 хитовых песен Ashiqui-2 как ur Caller Tune
Это означает, что в C# он не получает никаких данных после «Caller Tune». Почему это происходит? Часть C# код Я использовал это
private void Form1_Load(object sender, EventArgs e)
{
sp1.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
var valueOfPort = sp1.ReadExisting();
textBox1.AppendText(valueOfPort);
}
private void button1_Click(object sender, EventArgs e)
{
TextBox.CheckForIllegalCrossThreadCalls = false;
try
{
if (!sp1.IsOpen)
{
sp1.Open();
}
sp1.Write(textBox2.Text+"\r");
}
catch(Exception ex)
{
MessageBox.Show(string.Format("Exception : {0}", ex.Message), "Port Error");
}
}
TextBox.CheckForIllegalCrossThreadCalls = false; не создает никаких проблем .... Я проверил его, удалив его ... – rakib
Возможно, имеется больше доступных данных, см. Мое обновление. –