C# GSM调制解调器USSD检查余额获得CME错误100

C# GSM调制解调器USSD检查余额获得CME错误100,c#,serial-port,gsm,at-command,ussd,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,发现它是“未知错误”,没有真正的帮助:) 在发送之前,我也尝试过将文本模式更改

我正在使用华为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=?

更新

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

 AT+CUSD=1,"2A31303023" ,15
AT+CMGF=1
ATZ
At+cusd=1,"*100#",15
回应

 +CUSD: 2

我相信问题即将得到解决,但响应意味着什么?

我使用
atz
解决了这个问题,就像这样

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

它工作得很好

您必须将消息编码为格式

gsmcomm PDUConverter可用于执行此操作


AT+CUSD=,您得到了什么样的响应?您确定您的操作员支持USSD代码*100#吗?您是否尝试了AT+CUSD=1,“*100#”,即未将第三个参数设置为15?另外,我假设SIM卡已解锁。@请列出AT+CUSD=的响应?是(0-2),是的,在+cusd处尝试了一次,没有第三个参数,我确信代码是正确的supported@SList但是你说SIM卡解锁是什么意思??但我尝试了其他命令,比如发送短信,一切正常。芬迪的意思是,你已经输入了PIN码并解锁了SIM卡。只是想消除明显的原因!从这样一个问题上很难推断出人们的专业水平。并不是所有的移动运营商都使用相同的USSD字符串来检索余额,你知道吗?例如,在德国,Telekom、沃达丰和E Plus使用*100#,但O2使用另一个字符串。如果您已经知道这些点,那么这些点很烦人,但是您的AT命令是正确的,应该可以工作,因此可能是一些非常小的事情阻止了它的工作。ATZ重置为defaultPlease演示一个示例,因为我不熟悉PDU,甚至不熟悉如何运行c代码(没有main,还有很多未知)