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

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

我正在尝试使用华为 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

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

最佳答案

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

gsmcomm PDUConverter 可用于执行此操作

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

关于c# - GSM 调制解调器 USSD 检查余额获取 CME 错误 100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111517/

相关文章:

c++ - Linux下使用c++进行串口通信

.net - 如何组织与串行端口设备通信的代码?

gsm:手机用什么协议(protocol)给smsc发短信?

c# - 如何为连接到 SQL 数据库的项目创建安装文件?

c# - 最近的祖先的 xs :documentation node of an xs:element

c# - Entity Framework 和模拟

c++ - 从串行端口读取而不从缓冲区中删除(linux)

c++ - asn1c 不会从 asn.1 模块中提取 OCTET STRING 的默认值

c++ - 为什么我的 AT 命令在我的 GSM 调制解调器中回显?

c# - 如何检查列表是否包含相同顺序的另一个列表