GSM 调制解调器 USSD 检查余额获取 CME 错误 100

5 c# gsm serial-port ussd at-command

我正在尝试使用华为 E1550 3G 调制解调器通过 USSD 检查 SIM 卡余额

但是当我总是发送

   AT+CUSD=1,"*100#",15
Run Code Online (Sandbox Code Playgroud)

我得到

   +CME Error: 100
Run Code Online (Sandbox Code Playgroud)

是的,我的调制解调器支持 USSD,因为我有一个用于调制解调器的仪表板应用程序,我可以检查余额并为 SIM 卡充电。

我在 C# 中使用 GSMComm 库,我也在 putty termainl 中尝试过,但一直遇到相同的错误

我搜索了错误 100,发现它是“未知错误”并没有真正的帮助:)

我也尝试在发送之前将文本模式更改为 pdu 模式,但没有任何改变

   AT+CMGF=0
Run Code Online (Sandbox Code Playgroud)

注意:我也试过

  AT+CUSD=1,"*100#"
Run Code Online (Sandbox Code Playgroud)

同样的错误

和的回应

   AT+CUSD=?
Run Code Online (Sandbox Code Playgroud)

  (0-2)
Run Code Online (Sandbox Code Playgroud)

更新

我已将请求“*100#”转换为 7 位“2A31303023”,如下所示

 AT+CUSD=1,"2A31303023" ,15
Run Code Online (Sandbox Code Playgroud)

回复

 +CUSD: 2
Run Code Online (Sandbox Code Playgroud)

我相信问题即将解决,但响应是什么意思?

Hmm*_*mmm 2

您必须将消息编码为PDU格式

gsmcomm PDUConverter 可用于执行此操作

https://github.com/welly87/GSMComm/blob/master/PDUConverter/GsmComm.PduConverter/SmsPdu.cs