我正在使用GSMComm库和Wavecom调制解调器创建简单程序SMS Sender,当我按下按钮发送我的winform时,我的VS2010中有一条消息调试。
手机报告未指定的错误。这通常发生在设备不支持命令,命令对当前状态无效或参数不正确时。
这是我的代码
private void btnSend_Click(object sender, EventArgs e)
{
var port = "COM3"; // default port to connect modem wavecom
var baudRate = 115200;
var timeout = 300;
var comm = new GsmCommMain(port, baudRate, timeout);
try
{
var msg = txtIsiPesan.Text;
var phoneNumber = txtNoTujuan.Text;
comm.Open();
SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "");
comm.SendMessage(pdu); //debug found error here
comm.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "error");
}
}
这表明我的wavecom调制解调器不支持SmsSubmitPdu吗? 请建议我谢谢。
答案 0 :(得分:2)
我终于找到了解决方案。
budget = 50
depositAmount = input("Please enter an amount you would like to add")
if depositAmount > budget:
print("Sorry, you do not have the required funds to join. You have been exited.")
else:
#DO THE REST OF THE PROGRAM#
第三个参数应该是服务中心号码,因为我正在使用GrameenPhone +8801700000600
所以我尝试了
SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "");
并成功发送短信。顺便说一下,确保你的com端口正确,因为我的是COM5。
SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "+8801700000600");
答案 1 :(得分:2)
当comm打开时,您可以通过while循环进行长轮询,读取短信并删除短信的索引msg。在 comm.Open();
之后添加代码while(true){
DecodedShortMessage[] messages =
gsmCommMain.ReadMessages(PhoneMessageStatus.All, PhoneStorageType.Sim);
foreach (var decodedShortMessage in messages)
{
var msgData = decodedShortMessage.Data.UserDataText;
int indexP = decodedShortMessage.Index;
gsmCommMain.DeleteMessage(indexP, PhoneStorageType.Sim);
// gsmCommMain.DeleteMessages(DeleteScope.Read, PhoneStorageType.Sim); delete all msg
}
}
希望这有帮助