我使用此库开发了一个短信应用程序(使用GSM调制解调器发送/接收短信) - http://www.scampers.org/steve/sms/libraries.htm
我有一个定时器,每隔3秒检查收到的消息。 问题是每隔几分钟我就会收到这个错误:
***
at GsmComm.GsmCommunication.GsmPhone.GsmComm.GsmCommunication.IProtocol.ReceiveAnything(String pattern)
at GsmComm.GsmCommunication.GsmPhone.GsmComm.GsmCommunication.IProtocol.ReceiveMultiple()
at GsmComm.GsmCommunication.GsmPhone.GsmComm.GsmCommunication.IProtocol.ExecAndReceiveMultiple(String command)
at GsmComm.GsmCommunication.GsmPhone.ListMessages(PhoneMessageStatus status)
at GsmComm.GsmCommunication.GsmCommMain.ReadMessages(PhoneMessageStatus status, String storage)
at SMS.BL.TimerCalls_rec.recProcessTimerEvent(Object sender, EventArgs e) in D:\Csharp\SMS GSM\SMS\BL\TimerCalls_rec.cs:line 57++++++++No data received from phone after waiting for 30000 ms.
这是该代码的一部分:
try
{
// Read all SMS messages from the storage
if (CommSetting.comm.IsConnected())
{
DecodedShortMessage[] messages = CommSetting.comm.ReadMessages(PhoneMessageStatus.All, PhoneStorageType.Phone);
foreach (DecodedShortMessage message in messages)
{
ReadMessage(message.Data);
//delete message
indexP = message.Index;
CommSetting.comm.DeleteMessage(indexP, PhoneStorageType.Phone);
}
}
}
catch (Exception err)
{
RIWL.log(err.StackTrace + "++++++++" + err.Message, "Error: ");
}
这是发生错误的行:
DecodedShortMessage[] messages = CommSetting.comm.ReadMessages(PhoneMessageStatus.All, PhoneStorageType.Phone);
任何想法为什么偶尔调制解调器没有响应? 发送/接收消息是单独完成的。 发送短信时 - 暂停阅读,反之亦然。
我可以做其他事情来检查串口是否正忙?
编辑: 如果有任何帮助,在发生错误时,dllhost.exe - COM Surrogate会在进程中出现。
答案 0 :(得分:1)
调制解调器正在响应它是Scampers先生软件中的一个错误。我们之前使用GSMComm软件发送短信,但由于这个原因,我们编写了自己的gsm实现。哪个我不能分享我很抱歉。我们已移植pygsm,因此我们没有超时。