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

本文关键字:GSMComm 命令 SmsSubmitPdu 不支持 Wavecom 调制解调器 设备 | 更新日期: 2024-10-21 05:34:29

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

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

我终于找到了解决方案。

SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "");

第三个参数应该是服务中心号码,因为我使用的是GrameenPhone,它是+88801700000600

所以我尝试了

SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "+8801700000600");

并成功发送短信。顺便说一句,确保你的com端口是正确的,因为我的是COM5。

var port = "COM5"; // default port to connect modem wavecom
            var baudRate = 115200;
            var timeout = 300;
            var comm = new GsmCommMain(port, baudRate, timeout);
            try
            {
                var msg = "TESTING";
                var phoneNumber = "+8801719461643";
                comm.Open();
                SmsSubmitPdu pdu = new SmsSubmitPdu(msg, phoneNumber, "+8801700000600");
                comm.SendMessage(pdu); //debug found error here
                comm.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "error");
            }

当comm打开时,您可以通过while循环进行长轮询,读取短信并删除短信的索引。在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

       } 
}

希望这能帮助