我正在尝试使用huawei 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
答案 0 :(得分:0)
您的PDU中有两个错误。
1)目的地号码长度不正确
当你使用0C
时,你已经使用了0x0B2)错误分配字节
PDUtext[20] = 0x97;
PDUtext[20] = 0xd9;
PDUtext[20] = 0xec;
PDUtext[20] = 0x37;
应该是
PDUtext[20] = 0x97;
PDUtext[21] = 0xd9;
PDUtext[22] = 0xec;
PDUtext[23] = 0x37;