0

我正在尝试使用华为 e173 gsm 调制解调器发送短信。在文本模式下一切正常,但我不知道如何在 pdu 模式下发送短信。我试图发送简单的消息,会说“hellohello”。这是我在 Qt 设计器中的消息格式(与本主题无关,我遇到了错误 304 - PDU 模式参数无效的问题):

QByteArray PDUtext;
PDUtext[0] = 0x00;
PDUtext[1] = 0x11;
PDUtext[2] = 0x00;
PDUtext[3] = 0x0b; // Phone number length

PDUtext[4] = 0x91; // International

//Phone: +381 600123456 (83 61 00 21 43 65)

PDUtext[5] = 0x83;
PDUtext[6] = 0x61;
PDUtext[7] = 0x00;
PDUtext[8] = 0x21;
PDUtext[9] = 0x43;
PDUtext[10] = 0x65;

PDUtext[11] = 0x00;
PDUtext[12] = 0x00;
PDUtext[13] = 0xaa; // 4 days validity period

//E8 32 9B FD 46 97 D9 EC 37

PDUtext[14] = 0x0a; // Message length

// Message "hellohello"

PDUtext[15] = 0xe8;
PDUtext[16] = 0x32;
PDUtext[17] = 0x9b;
PDUtext[18] = 0xfd;
PDUtext[19] = 0x46;
PDUtext[20] = 0x97;
PDUtext[20] = 0xd9;
PDUtext[20] = 0xec;
PDUtext[20] = 0x37; 

这条消息有什么问题?

命令如下所示:

AT+CMGF=0<CR> // PDU mode

Modem > OK

AT+CMGS=20<CR> // Send with message length
>PDUtext<Ctrl+z>

Modem > +CMS ERROR: 304
4

1 回答 1

0

您的 PDU 中有两个错误。

1) 目的号码长度不正确

实际上你应该使用 0C 时你使用了 0x0B

2) 字节分配错误

PDUtext[20] = 0x97;
PDUtext[20] = 0xd9;
PDUtext[20] = 0xec;
PDUtext[20] = 0x37; 

应该

PDUtext[20] = 0x97;
PDUtext[21] = 0xd9;
PDUtext[22] = 0xec;
PDUtext[23] = 0x37; 
于 2014-05-21T12:28:40.263 回答