c# - 使用 GSMComm 库获取 USSD 结果
问题描述
我正在尝试通过 gsm 调制解调器运行 ussd 代码以获得 sim 平衡。我正在使用 GsmComm 库、ASP.NET Web 表单、C#。下面是我的代码:
public string SendUssdRequest2(string request)
{
comm = ConnectAndGetComm();
string data = TextDataConverter.StringTo7Bit(request);
string msg = "";
var asPDUencoded = Calc.IntToHex(TextDataConverter.SeptetsToOctetsInt(data));
try
{
IProtocol protocol = comm.GetProtocol();
string gottenString = protocol.ExecAndReceiveMultiple("AT+CUSD=1," + asPDUencoded + ",15");
var re = new Regex("\".*?\"");
int i = 0;
if (!re.IsMatch(gottenString))
{
do
{
protocol.Receive(out gottenString);
++i;
} while (!(i >= 5
|| re.IsMatch(gottenString)
|| gottenString.Contains("\r\nOK")
|| gottenString.Contains("\r\nERROR")
|| gottenString.Contains("\r\nDONE")));
}
string m = re.Match(gottenString).Value.Trim('"');
return PduParts.Decode7BitText(Calc.HexToInt(m));
}
catch(Exception e)
{
msg = e.Message;
}
finally
{
comm.ReleaseProtocol();
}
return msg;
}
我调试并发现调制解调器已连接。在“ExecAndReceiveMultiple”上,我收到错误消息 - 等待 29999 / 30030 毫秒后没有从手机收到数据。代码没问题吗?可能是什么问题呢 ?任何其他建议,如其他库或代码以获得 sim balance 都会有很大帮助。谢谢你。
解决方案
推荐阅读
- laravel - 如何使用 Laravel 和 Vue js 获取完整日历事件 ID onClick?
- python - Python 3 中的 __init__ 和 self
- c++ - const char *指针问题?
- c++ - 谷物 - 无法反序列化 json 字符串 - 未处理的异常
- c# - Task.FromResult 返回 null c# 单元测试
- javascript - 如何在 react-native 中编写断言语句?
- java - 有没有办法在春天使用另一个类的方法?
- javascript - 将 Promise.all 与对 API 的限速调用相结合
- reactjs - 反应钩子useContext钩子不想工作
- bash - Docker compose 创建 kafka 主题