当前位置: 首页 > 知识库问答 >
问题:

通过AT命令发送多部分PDU SMS

松飞翮
2023-03-14

我已成功发送多部分pdu短信,

问题是,当我试图将此SMS发送到不同网络上的号码时,它会给我以下错误:

+CMGS ERROR:500

请谁能告诉我我该怎么做。

        atCommandStr = "AT+CMGF=0\r";
        comPort.WriteLine(atCommandStr + (char)13);
        Console.WriteLine(comPort.ReadExisting());

        Thread.Sleep(2000);

        for (int i = 0; i < number_of_parts; i++)
        {
            int oct = (messagesParts[i].ToCharArray().Count() / 2) -1;

            atCommandStr = "AT+CMGS=" + oct + "\r";
            comPort.WriteLine(atCommandStr + (char)13);
            Console.WriteLine(comPort.ReadExisting());

            Thread.Sleep(2000);

            string path;
            path = messagesParts[i] + Char.ConvertFromUtf32(26);
            comPort.WriteLine(path + (char)13);

            for (int a = 0; a < 100; a++)
            {
                Thread.Sleep(2000);

                string t = comPort.ReadExisting();
                Console.WriteLine(t);

                if (t != "" && t.Contains("CMGS") || t.Contains("ERROR"))
                {

                    break;
                }
            }

            //Console.WriteLine(comPort.ReadExisting());
        }

共有1个答案

丌官凯康
2023-03-14

调制解调器是否真的返回了CMGS错误:500,而不是CMS错误:500?因为在这种情况下,您的调制解调器不符合27.005标准,该标准规定发送失败时:CMS错误:

错误代码500意味着未知错误,所以这没有多大帮助。但是我想你的长度计算是错误的。从标准来看:

<length> must indicate the number of octets coded in the TP layer data unit
to be given (i.e. SMSC address octets are excluded).

除以2后再减去1对吗?尝试准确解码TP层上发送的内容。试着把长度增加/减少一点,看看是否有什么不同。

此外,由于atExpldStr已经包含\r,您不应该在其中包含(char)13

comPort.WriteLine(atCommandStr + (char)13);

 类似资料:
  • 我有一个windows应用程序发送短信连接到GSM调制解调器。我只使用AT命令连接到端口和发送文本。 下面是ExecCommand方法

  • 问题内容: 我可以将文件作为多部分发送到servlet吗?我正在制作表单并将其作为多部分提交,但是以某种方式我没有收到成功上传它的回复。我不希望刷新页面,因此它必须由ajax进行。 问题答案: 只有使用XHR API(以前称为“ XHR2”或“ XHR Level 2”的一部分,当前称为“ XHR高级功能”)才有可能。 有了这个HTML, 您可以按以下方式上传: XHR将注意适当的头和请求主体编码

  • AT 命令简介 AT 命令(AT Commands)最早是由发明拨号调制解调器(MODEM)的贺氏公司(Hayes)为了控制 MODEM 而发明的控制协议。后来随着网络带宽的升级,速度很低的拨号 MODEM 基本退出一般使用市场,但是 AT 命令保留下来。当时主要的移动电话生产厂家共同为 GSM 研制了一整套 AT 命令,用于控制手机的 GSM 模块。AT 命令在此基础上演化并加入 GSM 07.

  • 问题内容: 有人可以帮助我使用Python中的AT命令发送和接收SMS吗? 万一重要,我正在使用Fedora 8。 哪款手机搭配Linux(诺基亚,索尼爱立信,三星等)会更好?所有电话都支持使用AT命令发送和接收SMS吗? 问题答案: 以下是一些示例代码,可以帮助您入门(在Python 3000中): 您还需要做两件事: 用适当的格式编码消息(主要是GSM 03.38,unicode.org上有一

  • 我正在使用一个桌面应用程序,它应该通过串行接口发送和接收命令,固件由我的同事编程。 我们设计了一个协议,其中命令类型由ASCII字母表示,每个命令类型可能包含一个有效载荷(在命令类型之间是任意的,但是对于每种类型是固定的),并且命令被包装在方括号中。例如,我们有以下命令: - 所以我有一个接收和解析传入字节的类,每次成功解析命令时,都会引发一个事件,并带有以下暂定签名: 其中< code>Seri

  • 这是在服务器端作为接收的内容: 如何转换multipart Confont数据类型中的文章对象?我读到改造可能允许使用转换器为这个。就我对文档的理解而言,它应该是实现的东西。 多部分部件使用的转换器,或者它们可以实现来处理自己的序列化。 null