设备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?请建议我谢谢。
我终于找到了解决方案。
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
}
}
希望这能帮助