2017-03-09 99 views
0

我试图发送命令以获得华为e3131a调制解调器的平衡,但无论我使用的配置(GSM,IRA,UCS2)如何,我总是收到“Ok”作为答案。我还尝试将操作员代码(#123#)更改为许多格式,例如十六进制PDU简单字符串,但无法获得余额。 这是我发送的命令: AT+CUSD=1,"#123#",15。 在此先感谢您的帮助。AT + CUSD无法使用调制解调器华为e3131a

注意:我使用Putty发送命令。

回答

0

根据文档,如果所有参数都正确,AT + CUSD命令将立即返回OK。如果第一个参数设置为1,当网络响应USSD请求时,将会返回一个未经请求的响应(+ CUSD:...)。

因此,您必须等待+ CUSD响应后收到一个OK。

+0

好的!但作为对我的命令的回应,我只收到 + CUSD:2 而不是我目前的余额! –

+0

我试图等待......但是回应永远不会在确定后出现....任何想法为什么 –

+0

你能告诉我你发送的命令吗? – manishg

1

我终于找到了发送USSD At命令的方法。

一些3G Modem不支持纯文本甚至十六进制格式。 因此,要发送的命令我必须做设置调制解调器IRA形式:

AT+CSCS="IRA"

后,我转换,允许我获得平衡(对我来说:#123#)命令gsm7bit形式。

做最后发送命令:

AT+CUSD=1,"A3986C3602",15

它将返回确定在第一时间和5秒后,它将返回gsm7bit形式的响应。 它正好返回:

+CUSD: 1,"4379999CA683CEECB738CCD68162351CCDC81ABFDB707AB92E07C9CB6374587E2E8362351CCD080A83C66FF7FCDD6E97E5A0B03DECA683D86510CCF682E55E3258ECE6A286E1653D080682BFEB7210BB0C2297E9E1345B470ED3CB207219640FB3D3E434BD0C2AD341EDB79B1E76D341E432688C0EC7EB65D0F8DD86D3CB75B92B5A4FD3E965B92E06",15

而要得到它以纯文本复制并转换为字符串。

感谢所有!

+0

JAVA gsm7bitEncoder:https://github.com/bsimic0001/AegisWallet/blob/master/mobile/src/main/java/com/aegiswallet/utils/MessagingUtils.java –

+0

尝试过你的方式... Itsent与确定但答复从来没有回来了...任何想法我应该做什么? –