我正在制作GSM调制解调器的软件。它适用于使用AT命令的串行通信。我们给它AT命令,它通过串行通信进行响应。我给它一个命令来检查SIM AT+CUSD=1,"*141#"
中的余额。它的回应是这样的:消息框在调试模式下工作,但没有正常运行
+CUSD: 0, "Your balance is ... xxxxxxx "
现在我想在消息框中显示它。这是小的代码我使用:
String data = serialPort1.ReadExisting(); //to receive serial data and store it in data strig
logsTextBox.AppendText(data); // display it in text box
logsTextBox.AppendText("\n");
if (data.Contains("+CUSD:"))
{
MessageBox.Show(data);
}
现在,当我把断点和调试代码,它工作正常,并在消息框中显示完整的data
但是当我通常运行它,它显示在消息框中只是几个字符。就像这样:
相反,它应该是这样的:
调试这是在第2图像显示的所有数据内容时,我发现这个问题得到保存数据变量,因此它完全显示在消息框中。但是在正常运行时,字符串数据中没有接收到完整的数据,这就是为什么它显示的数据较少,如第一张图所示。如何解决这个问题。可能是什么原因。请帮忙。
是的,谢谢我已经通过在串行数据接收条件下解决了这个问题。如果条件满足,那么只有我处理数据。 –