【问题标题】:GSM Modem USSD Check Balance Getting CME Error 100GSM 调制解调器 USSD 检查平衡得到 CME 错误 100
【发布时间】:2013-12-05 08:45:45
【问题描述】:

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

但是当我总是发送时

   AT+CUSD=1,"*100#",15

我明白了

   +CME Error: 100

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

我在 C# 中使用 GSMComm 库,我也在 putty termainl 中尝试过,但总是遇到同样的错误

我搜索了错误 100,发现它是“未知错误”,没有什么帮助:)

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

   AT+CMGF=0

注意: 我也试过了

  AT+CUSD=1,"*100#"

同样的错误

的回应
   AT+CUSD=?

  (0-2)

更新

我已经像这样将请求“*100#”转换为7位“2A31303023”

 AT+CUSD=1,"2A31303023" ,15

回复

 +CUSD: 2

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

【问题讨论】:

  • 对 AT+CUSD= 的响应是什么?您确定您的运营商支持 USSD 代码 *100#?
  • 您是否尝试过 AT+CUSD=1,"*100#" 即没有将第三个参数设置为 15?另外,我假设 SIM 卡已解锁。
  • @SList 响应 AT+CUSD=?是 (0-2) 并且是尝试过的 at+cusd 没有第三个参数,我确定支持该代码
  • @SList 但你的意思是 SIM 卡已解锁?但我尝试了其他命令,如发送短信,一切正常
  • 我的意思是,您已经输入了 PIN 码并解锁了 SIM 卡。只是试图消除明显的原因!很难从关于 SO 的问题中推断出人们的专业水平。并非所有移动运营商都使用相同的 USSD 字符串来检索余额,您知道吗?例如,在德国,Telekom、Vodafone 和 E Plus 使用 *100#,但 O2 使用另一个字符串。如果您已经知道这些点,那么这些点很烦人,但是您的 AT 命令是正确的,并且应该可以工作,因此可能是一些非常小的事情阻止了它的工作。

标签: c# serial-port gsm at-command ussd


【解决方案1】:

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

gsmcomm PDUConverter 可以用来做这个

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

【讨论】:

  • 请举个例子,因为我不熟悉 PDU 或者如何运行那个 c# 代码(没有 main,还有很多未知数)
【解决方案2】:

我用atz解决这个问题是这样的

AT+CMGF=1
ATZ
At+cusd=1,"*100#",15

而且效果很好

【讨论】:

  • ATZ 重置为默认值
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多