gpt4 book ai didi

c# - 通过 AT 命令发送多部分 PDU 短信

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:30 31 4
gpt4 key购买 nike

我已成功发送多部分 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());
}

最佳答案

调制解调器真的返回了吗+CMGS ERROR:500而不是 +CMS ERROR: 500 ?因为在那种情况下,您的调制解调器不符合 27.005指定if sending fails: +CMS ERROR: <err>的标准.

错误代码 500 表示 unknown error ,所以这并没有多大帮助。但我猜你的长度计算是错误的。来自标准:

<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 层发送的内容。尝试稍微增加/减少长度,看看是否有任何不同。


此外,由于 atCommandStr 已经包含 \r你不应该包括 + (char)13

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

关于c# - 通过 AT 命令发送多部分 PDU 短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18419754/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com