设备Wavecom调制解调器不支持SmsSubmitPdu GSMComm命令

时间:2015-03-07 01:07:26

标签: c# sms-gateway

我正在使用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吗? 请建议我谢谢。

2 个答案:

答案 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


       } 
}

希望这有帮助