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

SmsSubmitPdu GSMComm command is not supported by the device Wavecom modem

我正在使用 GSMComm 库和 Wavecom 调制解调器来创建简单的程序 SMS 发送器,当我在我的 winform 中按下发送按钮时,我的 VS2010 中出现了一条消息调试。

phone 报告未指定的错误。这通常发生在设备不支持命令、命令对当前状态无效或参数不正确时。

这是我的代码

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? 请建议我谢谢。

我终于找到了解决办法。

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

第三个参数应该是服务中心号码因为我用的是GrameenPhone所以是+8801700000600

所以我尝试了

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 循环进行长轮询,读取短信并删除短信的索引 msg.Add 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


       } 
}

希望对您有所帮助