我已经尝试了一切,并且在这个过程中已经筋疲力尽了。 我可以毫无问题地发送普通短信息。
我正在设置消息发送时我需要的所有内容。
ipairs
我正在编码我的Unicode字符,但是我的fona就是这样:
if (! sendCheckReply(F("AT+CMGF=1"), ok_reply)) return false;
if (! sendCheckReply(F("AT+CSCS=\"UCS2\""), ok_reply)) return false;
if (! sendCheckReply(F("AT+CSMP=17,168,0,8"), ok_reply)) return false;
AT + CMGS一发送,就会出错。 即使我提供UCS2 HEX格式的电话号码,它也会做同样的事情。
我假设格式/编码不符合预期。
这是Unicode编码(从另一个Stackoverflow后解决方案中提取)
+ Response: +OK SEND NUMBER
+ Response:
+ Sending: 6616634660
+ Response: +OK SEND MESSAGE
+ Response:
+ Sending: 005B004E00450058002000560041004C00450054005D00200053004D005300200073006500720076006500720020006900730020006E006F0077002000720075006E006E0069006E0067002E
+ Response: AT+CMGF=1
+ Response: OK
+ Response: AT+CSCS="UCS2"
+ Response: OK
+ Response:
+ Response: AT+CSMP=17,168,0,8
+ Response: OK
+ Response: AT+CMGS="6616634660"
+ Response:
+ Response: ERROR
+ Response: -ERROR Failed sending message
+ Response: +OK READY FOR NEXT COMMAND
+ Response:
当我拿出所有unicode的东西时,将CSMP设置回17,167,0,0
短信短信有效(仅文字)
我猜测CSMP设置不正确,但我现在只是在黑暗中投掷扳手......有人可以帮忙吗?