【发布时间】:2016-07-31 09:42:54
【问题描述】:
我正在为 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,但是当我正常运行它时,它只会在消息框中显示几个字符。像这样:
应该是这样的:
我发现的问题是,当调试第二张图片中显示的所有数据内容时,都保存在数据变量中,因此它完全显示在消息框中。但是在正常运行时,字符串数据中没有接收到完整的数据,这就是为什么它显示的数据较少,如第一张图片所示。如何解决这个问题。可能是什么原因。请帮忙。
【问题讨论】: