【问题标题】:AT+CUSD command: Response encodingAT+CUSD 命令:响应编码
【发布时间】:2023-03-06 03:24:01
【问题描述】:

我正在向 gsm 调制解调器发送 AT+CUSD 命令(拨打 ussd 代码)。它工作正常。手机上的响应也是正确的。但是响应是我认为是十六进制格式或我不知道的一些编码:

GSM 调制解调器硬件:

诺基亚 C6-01

使用 USB 数据线连接到笔记本电脑。 USB模式:诺基亚套件

初始化编码的命令:

AT+CSCS=?

+CSCS: ("UCS2","GSM","PCCP437","PCDN","IRA","8859-1","HEX","UTF-8")

AT+CSCS="IRA"

AT+CSCS?

+CSCS: "IRA"

也试过了:

AT+CSCS="GSM"
AT+CSCS="UTF-8"

实际的 Ussd 命令:

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

实际反应:

+CUSD: 1,"c47258e1ad7e7f477bb2c6781e0ec72785e691d36136481593cd54f6777d8c2ecb23e1313d6dfd3d36f7764fc26974720fa1b242f8fd161f9b9cc",1

OK

预期响应:

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

+CUSD: 1,"Dear Customer.... some response in english",1

【问题讨论】:

  • +CUSD 响应的结尾以“,1”结尾是正确的吗?还是事实上是以“,15”结尾的?
  • @aldridmc 在响应中,它以 1 结尾。它是正确的,不是错字。
  • 先生,这有什么不同?
  • 最后一个逗号后面的数字定义了 USSD 的编码。通常 7 位为 15 或 UC2 为 72
  • 附带说明 AT+CMGF=1 只影响 SMS 而不是 USSD。

标签: at-command ussd


【解决方案1】:

看起来像调制解调器解码问题。应该通过使用大多数调制解调器的标准 IRA 编码来修复。

尝试使用:

AT+CSCS="IRA"

然后尝试使用 USSD 命令再次获得响应。

作为旁注,您可以通过以下方式输出调制解调器的可用编码功能:

AT+CSCS=?

USSD 编码为 7 位 GSM 或 UC2。要使用 7 位解码,请查看 3GPP ETSI 03.38。要解码 UC2,这基本上是 UTF-16,所以 2 个字节定义一个字符。

尝试 7 位:

C4    1 1000100     100 0100     D
72    01 110010     110 0101     e
58    010 11000     110 0001     a
E1    1110 0001     000 1010     <LF>
AD    10101 101     101 1110     ü
7E    011111 10     101 0101     U
7F    0111111 1     101 1111     §
47    0 1000111     011 1111     ?
7B    01 111011     100 0111     G

Dea<LF>üU§?G

开始时 7 位很好,但在 3 个字符之后就是垃圾。

尝试使用 UC2 只会产生垃圾。

结论:也许正在使用的调制解调器存在特定问题(了解它是哪个制造商型号仍然很有用)。或者您如何连接到调制解调器(考虑到 USSD 字符串不是有效的十六进制字符串,因为它的长度不均匀)。

【讨论】:

  • 设置后也一样。
  • 可以执行AT+CSCS=吗?命令并告诉我你得到了什么?您的调制解调器的制造商和型号也很有用
  • 嘿,先生,我已经添加了所需的命令。请再看看我的问题。
  • 你能说出输出字符串的编码是什么吗?这样我就可以在我的代码中处理输出字符串,将其转换为可读格式
  • 当前形式的输出字符串不是有效的任何东西。这显然是一个十六进制字符串,但长度为 117 个字符。所以它是不均匀的,因此要么你有一些复制和粘贴问题,要么是从调制解调器本身读取输出的问题。
【解决方案2】:

这个帖子有点老了,但可能会对来这里的人有所帮助!

格式显然是十六进制 UC2,16 位 par 字符!所以你应该把它转换回一个可读的字符串!如果您知道如何编程,那将是一项简单的任务!创建执行此操作的函数!采取每 4 个字符!将它们放在 $hex ==> 上将它们转换为字符! php中的例子!您可以像这样使用两个函数 chr(hexdec($hex)) 来做到这一点! 不适合程序员!看看这个页面online converter

太多太多都行不通!在所有情况下!这个不错!而且比这更好!是您可以将完整的页面保存在您的电脑中!并在您离线时使用它!他们已经用javascript实现了!它包括在内!太好了!

现在对程序员来说很好!我在 php 中创建了一个函数!我正在做某事!使用 AT 命令!在这里我创建了自己的函数!或许对你有帮助!

here is the file ! couldn't post it as code directly here! some not simple (identation thing!) => it's a doc file on my google drive

希望对你有帮助!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 1970-01-01
    • 2019-01-28
    相关资源
    最近更新 更多